1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?

2022-01-01 06:21:32

質問

C#のデスクトップアプリケーション(Visual Studio Express/Community Edition上)が動作したが、5秒後に動作しなくなった。

以下を試してみました。

  • すべてのアセンブリでデバッグ設定、デバッグフラグ、および完全なデバッグ情報が設定されていることを確認する。
  • {を使用します。 私のマシン全体から、プロジェクトに関連するすべてのbin、objフォルダとすべてのDLLファイルを削除してください。 {を使用します。 問題のあるプロジェクトを一から作り直す。
  • リブートする。 {再起動する。

ソリューションに2つのWindows Formsプロジェクトがあります。そのうちの1つはデバッグ情報を読み込み、もう1つは読み込みません。どちらもプロジェクトファイルの中で、デバッグ情報を取得しようとしているアセンブリを全く同じように参照しています。何かアイデアはありますか?


シンボルはアセンブリがロードされるまでロードされず、アセンブリは必要になるまでロードされないことを、この質問を見直すためにここに付け加えておきたいと思います。ブレークポイントがメインアセンブリの1つの関数でしか使用されないライブラリにある場合、その関数が呼び出されるまでシンボルはロードされません(そしてブレークポイントがヒットしていないことが示されます)。

どのように解決するのですか?

ブレークポイントに到達したら、すぐにデバッグを開始する。 {コード を使用します。 The breakpoint will not currently be hit. No symbols have been loaded for this document.. プロセスにロードされているすべてのアセンブリのリストが表示されます。 デバッグ情報を取得したいアセンブリを見つけます。 それを右クリックして、[Symbol Load Information]を選択します。 アセンブリの .pdb ファイルを探したすべてのディレクトリをリストアップするダイアログが表示されます。 そのリストと実際の.pdbの場所を照合してください。 古いものが見つかっていないことを確認してください。

通常のプロジェクトでは、アセンブリとその .pdb ファイルは常に .exe と同じフォルダ、つまりプロジェクトの binDebug フォルダに IDE によってコピーされているはずです。 弄ってしまった場合はGACから1つ削除しておいてください。