web-dev-qa-db-ja.com

デバッグできないのはなぜですか?

VS2005でC++プログラムをデバッグしようとしたとき、プログラムはブレークポイントで停止しませんでした。

VSは、「どのコールスタックフレームにもシンボルがロードされていません。ソースコードを表示できません」と述べました。

私に何ができる?

17
MainID

みんなありがとう。

最後に、私は解決策を見つけました ここ

デバッグを有効にするには:

1)プロジェクトに移動-> HelloWorldプロパティ

2)左側の[構成プロパティ]を展開します

3)「C/C++」を展開します

4)左側で、「一般」を選択します

5)右側で、[デバッグ情報の形式]を[編集して続行するためのプログラムデータベース(/ ZI)]に変更します。

5)左側で、「最適化」を選択します

6)右側で、「最適化」を「無効(/ Od)」に変更します。

7)左側で、[リンカー]を展開します

8)左側で、[デバッグ]を選択します

9)右側で、[デバッグ情報の生成]を[はい]に変更します

10)[OK]をクリックします

11)ブレークポイントを設定します

12)アプリケーションを再構築します

また、アプリケーションを実行するときは、Ctrl + F5を使用してアプリケーションをビルドおよび実行します。これにより、出力が表示されるのに十分な時間、コンソールウィンドウが開いたままになります。

20
MainID

試すためのいくつかのステップ:

  1. Debug-> Step Into(これにより、開始直後に確実に停止します)
  2. デバッグ->ウィンドウズ->モジュール
  3. リストでfoo.exeを探します。
  4. シンボルステータスを確認してください。ロードされていると言っていますか?
  5. そうでない場合は、パスに移動して、次のことを確認します。a)foo.pdbというファイルがそこにあるb)foo.pdbのタイムスタンプがfoo.exeと一致する(または実際に近い)
4
Steve Rowe

何らかの理由で、シンボルパスに適切なシンボル(.pdbファイル)がありません。これにはいくつかの理由が考えられます。

1)バイナリは.pdbファイルよりも最近コンパイルされました。すべてを再コンパイルしてみてください。

2).dllをデバッグしようとしていて、.pdbファイルをコピーするのを忘れました。それらのファイルもコピーします。

コードが思ったように実行されていない可能性もあります。

3
Steve Rowe

従来のデバッグセッションを実行するのではなく、プロセスに接続しているように聞こえますか?実際にプロセスに接続している場合は、デバッグしようとしているバイナリが、現在IDEで開いているのと同じソースコードでビルドされていることを確認することが重要です。

1
jpoh

.pdbが作成されていることを確認して、完全にクリーンアップして再構築しますか?

1
annakata

MainIDでまだカバーされていない別の可能性を追加するだけです。

デバッグするとき、私は実際に、デバッグしたいクラスを呼び出すプログラムを開始しました(これはある種のアドオンです)。呼び出されたプログラムの一部は、アンマネージC++で記述されています。 「アンマネージコードのデバッグを有効にする」をチェックすると、プログラムにデバッグ情報がないため、エラーが発生しました(その後、プログラムがクラッシュしました)。

0
mort

私はこれを行うことによってWP7でこの問題を解決しました:

  1. ソリューションエクスプローラーからプロジェクトを右クリックします(Ctrl+W+S
  2. [再構築]を選択します。
  3. もう一度、プロジェクトを選択し、右クリックして「デプロイ」を選択します。
  4. デバッグの開始(F5)

お役に立てば幸いです。

0
creativemujahid

単体テストをデバッグしようとしたときに、この問題が発生しました(VSでc#を使用)。

次のコードを追加して、デバッガーの新しいインスタンスを起動し、通常のようにコードをステップ実行できるようにします。

System.Diagnostics.Debugger.Launch();
System.Diagnostics.Debugger.Break();
0
Stephen Curial