2

プログラムで .java ファイルを分析するために、Soot をいじり始めたところです。私が読んだ限りでは、Soot はソース コード分析用の非常に強力なツールのようですが、オンラインで見つけた資料のほとんどは、それをコマンド ライン ツールとして使用することについて述べています。

特定のディレクトリにある .java ファイルからプログラムでクラスをロードし、プログラム依存グラフ (PDG) を構築し、プログラム スライスを実行する必要があります。Soot がスライスを提供しているかどうかはまだわかりませんが、PDG があれば自分で実装できます。

まず、以下のコードを使用してみました。

Options.v().set_whole_program(true);
Options.v().set_soot_classpath("...");

SootClass c = Scene.v().loadClassAndSupport("MyClass");
c.setApplicationClass();

CHATransformer.v().transform();
CallGraph cg = Scene.v().getCallGraph();

しかし、うまくいきません。呼び出しで数秒間立ち往生し、loadClassAndSupportその後、例外などを何も与えずに、プログラムが突然存在します。

誰かがプログラムで Soot を使用しようとした場合、他に設定する必要のあるオプションはありますか? または、プログラムで最初からSoot をセットアップするチュートリアルを教えてもらえますか?

4

1 に答える 1