Reputation: 1873
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:
ThreadReference
to set to ref
? LocatableEvent seems to be what I need, but can anyone provide an example on how to use it?Many thanks in advance!
Upvotes: 4
Views: 1285
Reputation: 24375
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.
Upvotes: 1
Reputation: 2669
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.
Upvotes: 0