2012-02-15 15 views
2

javaのメソッドで実行の流れを解析できるように、単純なコールグラフを生成したいと思います。Javaで単純な静的コールグラフを作成するには?

たとえば、コード内で、メソッドXからメソッドYに移動することができる場合は、メソッドXからメソッドYへのフローを示すコールグラフを生成したいと思います

私はSOOTを使ってみましたが、この必要なコールグラフを取得できませんでした。誰かが私はそのようなコールグラフを生成するために使用できるAPIを知っていますか?このツールは、プロジェクトの数を越えて使用する必要があるように私は

+0

こんにちは、あなたはこれのための解決策を見つけることができましたか? – ramo

答えて

0

あなたはYにでキャッチされた例外をスローする可能性があなたの助けのために、しかし、私はプラグインを使用することはできません、

おかげで多くのことをEclipseを使用していますXを分析し、例外スタックトレースを分析してください。

// in X: 
try { 
    do your calls ... 
} catch (Exception e) { 
    StackTraceElement[] elements = e.getStackTrace(); 
    for (StackTraceElement e : elements) { 
     // ... evaluate/print ... 
     System.out.println(e); 
    } 
} 
+2

私は解析しようとしているシステムのコードを変更することはできません。コールグラフは、開発中のツールの一部として使用する必要があり、与えられたプロジェクトのコードを分析するために使用されます。コードはそのまま残さなければならない – ict1991

+0

あなたの言ったような戦略はあなたのソースコードに限定されていますが、これを読んでいる誰もがこの提案を書き留めておくべきです。これまで私が見てきた最高のソリューションです。 –

3

私は、最近Javaで利用可能な静的解析ライブラリを探しています。ここに私が出会ったいくつかのものがあります:

  • Chord:まだ維持管理されている堅牢なフレームワークのようです。ここには、predefined analysis(コールグラフのものが含まれています)に関するドキュメントのリンクがあります。
  • DepFinder:このツールは、プロジェクトから依存グラフを生成するために使用されます。静的なコールグラフ情報をプロジェクトから抽出できると思います。
+0

コードが死んでしまったようです。すべての発信リンク '404' – Steen

0

JTracerは、コールグラフを生成し、可視化することにより、Javaプログラムの実行フローを理解するためのツールです。メソッドエントリやメソッド終了などのさまざまなイベントが記録され、視覚化されます。コードの変更は必要ありません。

関連する問題