テンプレート/クラス メソッドとその使用法を視覚化するツールはありますか?

StackOverflow https://stackoverflow.com/questions/35745

  •  09-06-2019
  •  | 
  •  

質問

大規模なコード ベースを引き継いだので、特定のクラスとそのメソッドがどこでどのように使用されているかの概要を知りたいと考えています。

依存関係を何らかの方法で視覚化し、優れた呼び出しツリーまたは同様のものを描画できる優れたツールはありますか?

選択を絞り込むのに役立つ場合、コードは Visual Studio の C++ で作成されます。

役に立ちましたか?

解決

以下にいくつかのオプションがあります。

最後の doxygen は、どちらかというと自動ドキュメント ツールですが、依存関係グラフと継承図を生成できます。無料ではない最初の 2 つとは異なり、GPL に基づいてライセンスされています。

他のヒント

Doxygen を使用すると、呼び出し元と呼び出し先の完全なリストが生成されました。それをオンにする必要があると思います。

デビッド、提案してくれてありがとう。私は週末をかけてプログラムを試してみました。

Doxygen は 3 つの中で最も包括的なようですが、メソッドの呼び出し元に関してはまだいくつかの点が望まれています。

3 つとも、さまざまな程度に C++ テンプレートに問題があるようです。CC-Rider は分析の途中でクラッシュしただけで、CodeDrawer は多くの関係を表示しません。Doxygen は非常にうまく機能しましたが、これもすべての関係を検索して表示するわけではなく、フィルターで除外するまで大量のマクロ参照で圧倒されました。

したがって、最終的な他の提案のために、「大規模なコードベース」について少し明確にする必要があるかもしれません。全体で 100,000 行を超えるコードが 100 を超えるテンプレート ファイルと、それらをまとめたいくつかの実際のクラス ファイルに分散されています。

他に、このタスクに対応でき、より適切に (より徹底的に) 実行できるツールはありますか?ああ、具体的には:IDL と COM インターフェイスを理解できるものはありますか?

Doxygen を使用すると、呼び出し元と呼び出し先の完全なリストが生成されました。それをオンにする必要があると思います。

もちろんそうしましたが、前述したように、doxygen は IDL で定義されているオブジェクト間のインターフェイスを考慮しません。直接の C++ 呼び出し「のみ」を示しています。

誤解しないでください。これはすでに驚くべき機能を備えていますが、すべてがどのように組み合わされるかをよく理解しようとしている私の高レベルの観点からは、まだ完全ではありません。

Java では、JDepend から始めます。.NET では、NDepend を使用します。C++ についてはわかりません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top