Linuxカーネルの非常に長い関数( link、link )に関する学術研究に取り組んでいます。
その研究では、各頂点が決定点であり、各エッジが結果として実行されるコードの一部であるグラフをプロットできるコードフロー視覚化ツールを使用したいと思います。
Cコードを視覚化できる優れたオープンソースプロジェクトを知っていますか?
Linuxカーネルの非常に長い関数( link、link )に関する学術研究に取り組んでいます。
その研究では、各頂点が決定点であり、各エッジが結果として実行されるコードの一部であるグラフをプロットできるコードフロー視覚化ツールを使用したいと思います。
Cコードを視覚化できる優れたオープンソースプロジェクトを知っていますか?
おそらく、KCacheGrindのようなツールが役立つでしょう。実際の呼び出しに基づいてコール グラフを生成し、プログラムを実際に実行せずにコール グラフを事前に生成することはできません。
履歴フローは、複数のバージョン間での変更/差分に非常に適しています。
Codeplexには、CもサポートするDependencyVisualizerというプロジェクトがあります。
Gprof2Dotはoprofileをレンダリングできます。これにより、動的な情報も取得できます。
CodeViz(静的ツール)も機能します。
gccを使用している場合、gcc-xmlにはこれを行うためのイントロスペクタープラグインもあります。
あなたは、C ソース コード (「決定」、「コード ブロック」) のフローチャートを取得したいようです。
このCフローチャートのようなもの?
これを正しく行うには、特に。Linuxカーネルコードの場合、マクロと条件を取り除くために、最初にコードを前処理する必要があると思います. GCC はそのようなグラフを内部的に構築し、そのグラフを手に入れることができるはずだと思います。
Doxygenはある程度の「視覚化」を行い
ますが、コードを使用できるようにするには、コードに少し取り組む必要があります。
チェックするもう1つの興味深いことはlxrです
Linux Cross Referencerは、ソースコードリポジトリのインデックスを作成して表示するためのソフトウェアツールセットです。LXRは当初Linuxソースコードを対象としていましたが、幅広いソフトウェアプロジェクトで使用できることが証明されています。lxr.linux.noは現在、LXRソフトウェアの実験的なフォークを実行しています。