メソッド呼び出しの引数を表示したい。したがって、foo を呼び出すと、次のようになります。
x = 4;
y = 5;
...
foo(x, y, 20, 25);
引数 (4,5,20,25) を出力したい メソッドが呼び出される前に、これらの引数がスタックにプッシュされることを理解しています。メソッドのローカル変数配列から値 (初期化または定数の場合) を取得するにはどうすればよいですか?
visitVarInsn() と VarInsnNode には、配列から実際の値を検索する方法がありません。
これを行うには、Analyzer と Interpreter を使用する必要がありますか? または、より簡単な方法はありますか?
編集:これを行う方法を考え出しました。バイトコード命令の引数を考慮して BasicValue と BasicInterpreter を変更しました。したがって、BIPUSH などの命令を表す値には、型情報だけでなく、プッシュされる値に関する情報が含まれます。フレームはアナライザーと同じ方法で検査されます