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:
- Am I on the right track, or is there a better way to do this?
- How do I acquire the
ThreadReference
to set toref
? LocatableEvent seems to be what I need, but can anyone provide an example on how to use it?
Many thanks in advance!