「このドキュメントのシンボルが読み込まれていません。」と表示される
Win32アプリ開発中、ブレークポイントが無視される状態に陥り。検索しても原因が分からず結局自力で解決した時のメモ。
デバック実行でブレークポイントが赤丸に三角のビックリマークに変化しカーソルを合わせると掲題のメッセージが表示される。
原因
この状態になる原因はいろいろあるらしいが、私の場合何の弾みで弄ってしまったのか、構成プロファイルのデバック情報の形式を**"なし"**にしていた事が原因。
解決手段
プロジェクトの「構成プロパティ>C/C++>全般>デバック情報の形式」を「エディットコンティニュのプログラムデータベース(/ZI)」に変更してクリーンビルドする。
#その他の確認項目
###構成プロファイルがDebugではない
プロジェクトの構成プロパティからDebug構成を選択する。
デバッグの種類が合っていない。
「構成プロパティ>デバック>デバッカーの種類」に間違った値を指定するとブレークポイントは通常表示されたままスルーされる。
今回の場合、Win32アプリを開発していたので「自動」または「ネイティブのみ」が正解。
###ストリップされたPDBファイルを使っている
リンカーオプション「/PDBSTRIPPED」を指定(構成プロパティ>リンカー>デバック>プライベート シンボルの除去にPDBファイルパスを指定)するとシンボル情報を持たないPDBファイルを作成できるが、このPDBファイルを使用すると掲題の問題が出るらしい。
ただし、PDBファイルが指定されたファイル名で作成されるだけなのでこのオプションを指定しただけでは問題は起きない。
/PDBSTRIPPED (プライベート シンボルの除去)
(https://docs.microsoft.com/ja-jp/cpp/build/reference/pdbstripped-strip-private-symbols?view=msvc-160)
Visual Studio デバッガーでのブレークポイントのトラブルシューティング
(https://docs.microsoft.com/ja-jp/visualstudio/debugger/troubleshooting-breakpoints?view=vs-2019)
※モジュールウィンドウはデバック実行を開始した後でないと開けないので注意。
Debug版のlibやdllファイルを使用していない。
私の場合、Release構成でビルドした外部のライブラリやDLLを使用していたのでDebug構成でビルドし直したが、そもそもデバック情報の形式が原因で掲題のエラーが発生していたので今となってはこれも原因の一旦だったのかが不明。