82

C/C++ コードを理解する作業を容易にするツールの提案はありますか? 他の人が作成した大きなソフトウェアを継承したばかりで、すぐにそれについて理解する必要があります。このタスクを簡素化するツールに関するアドバイスはありますか?

4

16 に答える 16

27

SourceInsightC++ の理解は、フロー チャートを含む c/c++ コード分析に使用できる最良のツールです。

于 2008-09-30T13:56:10.747 に答える
9

プロファイリング ソフトウェアを使用すると、どの関数が呼び出されたかがわかります。

Linux を使用できる場合は、KCachegrindを試してください

于 2008-09-30T13:51:42.910 に答える
9

Doxygenは、EXTRACT_ALL オプションをオンにすると、マークアップを適用せずにコードから図を生成するのに非常に優れています。HAVE_DOT 設定で生成された図を取得するには、GraphVizをインストールする必要があります。インストールして DOT_PATH を空白のままにしておくと、Windows では問題なく動作しますが、OS/X では、ドット ツールの場所を直接指定する必要があります。

ACM Queue には、doxygen と DTrace の使用について詳しく説明している優れたCode Spelunking記事があります。

于 2009-01-26T04:15:09.857 に答える
8

個人的には、デバッガーを使用します。コードを実行して、何をしているのか、どこに行くのが唯一の方法なのかを確認してください。

ただし、(場合によっては)役立ついくつかのドキュメントジェネレーターを介して実行できます。良い例はdoxygenです。

于 2008-09-30T13:51:19.043 に答える
5

Linux(KDE)を使用している場合は、cscopeユーティリティに基づいて構築されたKScope。私がこれまでに使用した(そして常に使用している)最高のものは、なんらかの方法で変更する必要がある、または自分のニーズに合わせて使用​​するAPIを、見慣れないコードの巨大な部分を掘り下げるために使用しました。その機能の中には、さまざまな方法で検索できる相互参照データベースがあります。シンボルのすべての参照、そのグローバル定義、関数の呼び出し元/呼び出し先の検索などがあります。IDEが組み込まれており、コールグラフを表示する機能もあります。

于 2008-10-01T07:53:19.880 に答える
4

Doxygenは、特に準備していなくても、graphviz を使用するとクラス関係図を提供します。

于 2008-09-30T13:51:32.677 に答える
3

Egypt http://www.gson.org/egypt/egypt.htmlのように機能するツールがいくつかありますが、コードのコンパイルに使用される予想される GCC バージョンとコールグラフ ジェネレーターの正確なバージョンが一致する場合に限ります。codeviz http://www.csn.ul.ie/~mel/projects/codeviz/についても同じことが言えます。

その他のオプションは、cachegrind モードで使用される valgrind です (これは、kcachegrind プログラムから追跡できるタイプのコールグラフを生成します。

于 2008-09-30T14:05:47.650 に答える
1

しばらく前にBorland Togetherを使用しましたが、コードからモデルを生成するのに適切な仕事をしてくれました。コードからシーケンス図を生成することさえできると思います。コードが混乱している場合、モデルも混乱することに注意してください。そして、私が覚えているように、それは安くはありませんが、時には特別なものを捕まえることができます.

于 2008-09-30T14:41:26.473 に答える
1

私は個人的に Visual Studio デバッガー ツールを使用しています。

小さなボックスで内容を視覚化できる「Caller Graph」機能が付属しています。また、コール スタックと通常の監視機能だけで、通常は必要なすべての機能を利用できます。

于 2008-09-30T13:52:33.597 に答える
1

Eclipse 3.4.0 ではうまく動作しないAspectBrowserもあります。

于 2008-09-30T14:00:59.207 に答える
1

AQtimeを試してみてください。呼び出されたすべての関数 (およびかかった時間) を表示するプロファイリング ツールです。分析の開始点と終了点を設定できます。30日間のトライアルがあります。

于 2008-09-30T14:04:37.950 に答える
1

Visustin という名前のツールを試してみましたが、これはグラフィカルにはあま​​り優れていませんが、「コードからのフローチャート」ということを実行します。 http://www.aivosto.com/visustin.html

于 2011-06-30T01:39:26.893 に答える
1

Rational Quantify は、優れた呼び出しグラフも提供します。

于 2008-09-30T15:58:06.400 に答える
0

doxygenは無料のドキュメント生成ツール (Javadoc に似ています) で、関係グラフも生成します。

于 2008-09-30T13:52:29.883 に答える
0

Doxygen、それについての良いことは、クラスの循環依存性の観点から、コードが醜い/良いことを知らせることです。したがって、気に入らないかもしれませんが、コードをリファクタリングする必要があります:-)

于 2008-09-30T13:54:37.367 に答える
0

Slickedit は、知らない大きなコード ブロックをナビゲートするのに最適です。タグ機能を使用すると、どのファイルに含まれているかを気にせずに、コードを機能ベースで処理できます。

理解できないメソッド、クラス、または変数にたどり着いたときは、タグをプッシュしてそのコードに移動し、それを調べてから、タグをポップして戻します。(これらはキーストロークにバインドされているため、非常に高速です)

find-references を使用して、その関数/変数が使用されている場所を確認することもできます。

どのファイルに何かが入っているかを調べに行く必要があるため、時間を大幅に節約できます。

于 2010-12-03T20:16:21.207 に答える