开发者

Java Access to Local Variable Names

I'm currently writing a program in which I would like to access the variable names of local variables during execution of a program and pass them off externally. I'm aware that Java will dump local variable names during compilation unless compiled in debug mode.

After looking around some, it seems that JDI/JPDA is the way to go for this kind of work. Assuming ref refers to a ThreadReference, the following is what I have thus far:

ref.suspend();
StackFrame currentFrame = ref.frame(0);
List<LocalVariable> vars = currentFrame.visibleVariables();
ref.resume();

Two questions:

  1. Am I on the right track, or is there a better way to do this?
  2. How do I acquire the ThreadReference to set to ref? LocatableEvent 开发者_StackOverflow中文版seems to be what I need, but can anyone provide an example on how to use it?

Many thanks in advance!


Not a lot of people have experience with this stuff.

Look elsewhere for an answer. I had links to code but they are no longer. Cannot delete this answer because it was accepted answer.


Yes, you are on the right track!

For anyone who wants to try to get started with the JDI, the "Trace" example is invaluable:

http://www.docjar.com/docs/api/com/sun/tools/example/trace/package-index.html

It's a usable backbone. It shows you how to use events, which indeed will give you a ThreadReference. It also shows you how to start up the second JVM programmatically.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜