2013-12-08 29 views
5

clangとgraphvizを使って、C/C++コードas explained in this answerの呼び出しグラフを生成できます。clangや他のツールを使用してデータフローグラフを生成するにはどうすればよいですか?

本当に大きなコードベース(大部分はC)で計算されたデータフローダイアグラムが必要です。このコードベースは、cmakeがビルドツールとして使用されるソフトウェアです。

私の問題は、データ構造の名前を考えれば、この構造体を使用して/関数を使用してファイルの名前を取得することができますか?

打ち鳴らすプロジェクトからLibtool内のいくつかのデータ・フロー・マイニング・アルゴリズムにはいくつかのまばらな参照がありますが、私はclang自体またはscan-buildには何も見つからなかった(それが安定または開発中の何かがいた場合でも、わかりません)。

この情報はどのように生成できますか?私が本当に必要とするのは、コード内のどこで使用されているかを調べたいという名前があるからです。私が調べた静的解析ツールのほとんどは関数とメソッドに焦点を当てています。clangでデータ構造の使用をチェックする必要があります。

EDIT:

私もドキュメントについてはdoxygenのを使用して検討しているので、doxygenをのXML出力は、いくつかのツールのために役立つことができれば、私はそれを使用することができます。

+0

これはちょっと変わったかもしれませんが、コードベース全体をEclipseに読み込んだ後、Eclipseの検索機能を使ってコードベース全体を読み込むことを検討しましたか? – slugonamission

+0

@slugonamissionよく、私は何も動作するものが見つからないので...; Eclipseでどのツールを使用すればよいかわかりますが、CDTはCおよびC++用のEclipseスイートですが、この種の解析には何が使用されているのか分かりません。 – algl

+0

これはデータフローのためのものではありませんが、データ構造がどこで使われているかを確認するだけです。 CDT + Eclipseを使用することで、少なくともDFGではなく、どこかの検索メニューのどこでデータ構造が使用されているかをグラフィカルに見つけることができます。 – slugonamission

答えて

-1

あなたはシンボルへ

  • すべての参照
  • グローバル定義
  • 関数にファイル
  • および多くを含む
  • ファイルを呼び出す
  • 機能関数によって呼び出される関数を照会することができます。

cscope

+0

視覚的に機能するものは何もありません。このプロジェクトは本当に大きいので、端末からの簡単なテキストのリストは、間もなく実用的な方法で管理するのが本当に複雑になります。そのページに外部ビルディングツールについての言葉もありません。私は、コードベースのサイズと構築プロセスのために、そのような協力が必要です。 – algl

+1

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 –

+0

@ JohnDoyleのように、この質問はリンクのみの削除としてマークされています。より包括的な回答を再投稿することをお勧めします。 –

関連する問題