2009-07-16 10 views
9

私は、Linuxカーネルのいくつかの非常に長い関数(linklink)に関する学術研究に取り組んでいます。良いオープンソースコードフロー可視化ソフトウェアはどこにありますか?

私は、各頂点が決定ポイントであり、各エッジが結果的に実行されるコードであるグラフをプロットすることができるコードフロー可視化ツールを使用したいと考えています。

Cコードを視覚化できる良いオープンソースプロジェクトをご存知ですか?

答えて

9

恐らくKCacheGrindのようなツールが役に立ちます。実際の呼び出しに基づいてコールグラフを生成し、実際にプログラムを実行せずにコールグラフを事前に生成することはできません。これはニーズに合わない可能性があります。

KCacheGrind Call Graph http://kcachegrind.sourceforge.net/html/pics/KcgShot3Large.gif

+0

本当に素晴らしいです。私はそれを試してみます。 –

+0

イメージが壊れています。 – mrgloom

0

DOxygen「視覚化」の量はいくらかですが、
ですが、コードを使用するにはちょっとした作業が必要です。チェックする


もう一つ興味深いのは、lxr

Linux Cross Referencerだろうインデックスとソースコードリポジトリを提示するためのソフトウェア・ツールセットです。 LXRは当初、Linuxのソースコードを対象としていましたが、幅広いソフトウェアプロジェクトに使用できることが証明されています。 lxr.linux.noは、現在、LXRソフトウェアの実験用フォークを実行しています。

1

History flow'sは複数のバージョンにまたがって変更/差分するのに非常にきれいです。

CodeplexにはCもサポートするDependency Visualizerプロジェクトがあります。

Gprof2Dotは、oprofileをレンダリングできます。これにより、動的情報も取得できます。

CodeViz(静的ツール)でも動作します。

gccを使用している場合、gcc-xmlにはintrospector pluginもあります。

1

Cソースコードのフローチャート(「決定」、「コードブロック」)を取得したいと思われます。
このようなものC flowchart

これを正しく行うには、esp。 Linuxのカーネルコードでは、マクロと条件文を取り除くためにコードを前処理しなければならないと思います。私はGCCが内部的にこのようなグラフを作成し、そのグラフを手に入れることができるはずだと仮定します。

関連する問題