2

Java バイト コード エンジニアリング ライブラリASMを使用して静的解析を実行しようとしています。フィールドに割り当てられている変数を検査したい状況があります。

私はメソッドMethodVisitorを実装していvisitFieldInsn()ます。私は特にputfieldコマンドを探しています。それは問題ありません。問題は、 に遭遇したときにputfield、フィールドに割り当てられる変数にアクセスできるようにしたいということです。具体的には、変数のに関する情報にアクセスしたいと考えています。

現時点では、スタックの一番上にあるものを確認するだけで十分ですが、より一般的な方法で検査する方法があれば、さらに優れています。

ASM を使用してスタック上の変数を検査する方法はありますか?

4

2 に答える 2

0

私は ASM には詳しくありませんが、Eclipse Java AST フレームワークと似たようなことをしたことがあります。変数について知るには、AST ビジターの適切な visitX() メソッドで自分自身で変数宣言を追跡する必要がありました。どの AST ノードが変数宣言に対応するかがわかれば、それほど難しくはありませんでした。

于 2009-12-05T17:20:56.530 に答える