1

私はかなり大きなプログラム(NS2ネットワークシミュレーター)の変更に取り組んでいますが、Eclipseでデバッグできると便利です。gccにデバッグシンボルを生成させるようにmakefilesを構成し(CFLAGSに-gを追加)、実際に生成されますが、Eclipseはそれらのシンボルに関連付けられたコードを実際に見つけることを拒否します。「既存のコードを使用したMakefileプロジェクト」を使用してソースコードの巨大なフォルダをインポートし、「デバッグ」を押すとプログラムが実行されます。デバッガーに停止するように指示すると、認識したメソッドで停止することがよくありますが、メソッドの名前をクリックすると、メソッドが定義されているソースファイルが実際には別のタブで開いていても、「ソースは利用できません」と表示されます。私はすべてのソースをプロジェクトにインポートしています。make構成に何かが欠けていますか?

^長い紛らわしい説明、私は知っています...スクリーンショットを参照してください:http: //imageshack.us/photo/my-images/651/zzz1fu.jpg/

上記のスクリーンショットのIPKTAgent::deBurst()は、integrated_agent.hで宣言されていることに注意してください。これは、他のタブで開いているファイルです。

また、プロジェクトエクスプローラーでデバッグしている実行可能ファイルのエントリを展開すると、構成されているファイルの一部のみが一覧表示されます。何が得られますか?(スクリーンショットを参照してください。リストにはさらに多くのファイルがあるはずです。私が使用しているファイルはありません)。スクリーンショット:http: //imageshack.us/photo/my-images/96/zzz2z.jpg/

4

1 に答える 1

1

ちょうどそれをテストしました。私のために働きます。-O0唯一の問題は、最適化を無効にするオプションを追加するのを忘れていたことです。あなたの場合も問題になる可能性があります。

私が提案できること:

  • 最適化を無効にしてみる
  • 使用するコンパイラ オプションが実際に適用されていることを確認します。を使用CFLAGSしていますが、タグに c++ が表示されているため、使用する必要がある可能性がありますCXXFLAGS(使用するビルド ツールに依存する可能性があります)。
  • IPKTAgent::deBurst()で宣言されていintegrated_agent.hます。しかし、それはどこに実装されていますか?ヘッダーに実装されていること、および/または実装されているソース ファイルにアクセスできることを確認してください。
  • gdb で実行可能ファイルをデバッグできることを確認します
  • シンプルな automake/autoconf ベースのプロジェクトを作成し、gdb と eclipse でデバッグできることを確認してください。あなたはできるはずです。
于 2011-06-25T12:08:49.213 に答える