2011-06-25 15 views
1

かなり大きなプログラム(NS2ネットワークシミュレータ)を修正しています。Eclipseでデバッグすることができればいいです。 gccがデバッグシンボルを生成するようにMakefile(CFLAGSに-gを追加)を設定しましたが、実際には生成されますが、Eclipseはこれらのシンボルに関連付けられたコードを実際に見つけることを拒否します。私は "Makefile Project with Existing Code"を使ってソースコードのHUGEフォルダをインポートし、 "debug"を押すとプログラムを実行します。私がデバッガを停止するように指示すると、私は認識する方法で停止することがよくありますが、メソッドの名前をクリックすると、メソッドが定義されているソースファイルが実際に別のタブで開いていても "ソースが利用できません"私はすべてのソースをプロジェクトにインポートしました。 makeの設定で何か不足していますか?シンボルはデバッグ中ですが、eclipseはソースコードと関連付けません

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

注IPKTAgent :: deBurst()上のスクリーンショットからはintegrated_agent.hに宣言されていること - それは私が持っているファイルであります他のタブで開きます。

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

答えて

1

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

  • は、最適化に使用するコンパイラオプションが本当にが適用されていること
  • チェックを無効にしてください。 CFLAGSを使用していますが、タグにC++があるので、CXXFLAGS(使用するビルドツールによって異なる場合があります)を使用する必要があります。
  • IPKTAgent::deBurst()integrated_agent.hで宣言されています。しかし、それはどこに実装されていますか?ヘッダに実装されているか、実装されているソースファイルにアクセスできるかを確認してください。
  • gdbで実行可能ファイルをデバッグできることを確認してください
  • 単純なautomake/autoconfベースのプロジェクトを作成し、gdbとeclipseでデバッグできることを確認してください。 でなければなりません。
+0

提案に感謝します。私はそれらを試してアップデートを投稿して、それがCXXFLAGSのものか最適化されているかのように感じます。 – Dmitri

+0

私の問題は、最初はうまくやってみることでしたが、configスクリプトを--enable-debugオプションで呼び出すことでこれをやってみました。これはうまくいくようですが、明らかにそうではありませんでした。だから、私はそれを騒がし、makefileを "CXX = g ++ -O0 -g"とgccのようなものに変更しました。私はそのような喉の下にオプションを押し込んだので、それは素晴らしい...実際にはブレークポイントやすべてで停止します。私はこのようなクルージングのことを軽くするように人々にアドバイスするつもりはありませんが、今回は私にとってはうまくいったのです... – Dmitri

関連する問題