私は現在、プログラムの実行中にローカル変数の変数名にアクセスし、それらを外部に渡すプログラムを作成しています。デバッグモードでコンパイルしない限り、Javaはコンパイル中にローカル変数名をダンプすることを知っています。
いくつか見てみると、JDI/JPDAがこの種の仕事に行く方法のようです。ref
を参照すると仮定するとThreadReference
、これまでのところ、次のようになります。
ref.suspend();
StackFrame currentFrame = ref.frame(0);
List<LocalVariable> vars = currentFrame.visibleVariables();
ref.resume();
2つの質問:
- 私は正しい方向に進んでいますか、それともこれを行うためのより良い方法がありますか?
ThreadReference
に設定するを取得するにはどうすればよいref
ですか?LocatableEventは私が必要としているもののようですが、誰かがそれを使用する方法の例を提供できますか?
よろしくお願いします!