[英]Java Access to Local Variable Names
我正在编写一个程序,我想在程序执行期间访问局部变量的变量名,并在外部传递它们。 我知道Java会在编译期间转储本地变量名,除非在调试模式下编译。
看了一下之后,似乎JDI / JPDA就是这种工作的方式。 假设ref
引用了ThreadReference
,以下是我到目前为止的内容:
ref.suspend();
StackFrame currentFrame = ref.frame(0);
List<LocalVariable> vars = currentFrame.visibleVariables();
ref.resume();
两个问题:
ThreadReference
以设置为ref
? LocatableEvent似乎是我需要的,但任何人都可以提供一个如何使用它的例子吗? 提前谢谢了!
很多人都没有这方面的经验。
到别处寻找答案。 我有代码的链接,但他们不再。 无法删除此答案,因为它已被接受答案。
是的,你走在正确的轨道上!
对于任何想要尝试开始使用JDI的人来说,“跟踪”示例非常宝贵:
http://www.docjar.com/docs/api/com/sun/tools/example/trace/package-index.html
它是一个可用的骨干。 它向您展示了如何使用事件,这确实会给您一个ThreadReference。 它还向您展示了如何以编程方式启动第二个JVM。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.