こんにちは、ASM バイトコード Tree Api を使用して、クラスの静的分析を実行しようとしています。かなり基本的な質問があると思います。foobar() というメソッドでは、foobar 内に命令のリストがあります (リストを持つ InsnList)。ここで、命令番号 10 で関数 "barfoo(String args)" が呼び出されているかどうかを確認したいと思います。
また、個別に、特定の命令が条件付きかどうかを確認する必要があります。
ありがとう、SJ
注: すでにクラスを読み取って、関心のある特定のメソッドに到達し、そのメソッドの各命令を反復処理できます。
解決済み (グレッグのコメントを参照):
AbstractInsnNode s = ...
if(s.getType()==AbstractInsnNode.METHOD_INSN){
MethodInsnNode methodInvocationNode = (MethodInsnNode) s;
if(methodInvocationNode.name.equals("barfoo"))
{
return true;
}
}