2010-12-27 11 views
5

私は#ifdefの魔法が続いているかなり大きなコードベースで作業しています。私は1つのファイルを見て、タイプが定義されている場所を判断しようとしています。残念なことに、多くのファイル(多数のファイルを含む)を含む多くのファイルが含まれています。その中には、使用する定義に影響を及ぼすマクロを定義するものがあります。構造は十分に複雑で、10分のグロッピングとインクルードチェーンの後に、どの定義が使用されているのかまだ分かりません。私は、ビジュアルスタジオは、タイプを右クリックすることができ、タイプがどこに定義されているかを示す素晴らしい機能を持っていることを思い出してください。それは、ファイルを作るなど、Linux用の同等の素晴らしいツールはありますか?私はそこにいると確信していますが、私はまだ開発環境にvim + grepを使用しています。タイプが定義されている場所を特定する

+0

なぜそれがオプションである場合、私はVimはどこかに存在するで追加しない限り、VSのようなオプションが用意されていないと思うので、GDBを使用していませんか? NetBeansのようなIDEを使用してください。関連する質問、重複ではありません。http://stackoverflow.com/questions/559274/any-program-or-trick-to-find-the-definition-of-a-variable – DumbCoder

+0

定義を追跡する時間と労力を無駄にするのではなくその変数の中で、それをした人の殺人を計画するためにあなたのリソースをいつもよりよく使うことができます。 –

答えて

4

複雑な定義と依存関係では、この機能はVisual Studioでも必ずしも機能しません。

解決方法:コードを前処理した後にダンプするようにコンパイラに依頼し、#lineと#fileのディレクティブを出力するよう依頼してください。結果のファイルをタイプ別に検索し、最も近い#fileディレクティブを見て、どこから来たのかを確認します。

(GCCであなたは-Eスイッチを使用することができます)

+0

これはうまくいった。プリプロセッサマクロよりもプリプロセッサマクロを解析する方が良いでしょうか? –

+0

場合によっては、プロジェクトと同じオプションとライブラリを使用して短いプログラムを作成し、使用可能な場合は表示ルーチンを活用して、構造の定義を使用するかどうかを判断するのに役立ちます。 – Sparky

関連する問題