私のC++アプリケーションでVS2015デバッガを使用しています。私がアプリケーションを起動すると、デバッガはメッセージを返しますPDBが一致しません。
Loaded 'C:\MyDir\Working\x64\Debug\MyApp.exe'. Cannot find or open the PDB file
結果として、私はブレークポイントを設定することができません。
.exeファイルと同じディレクトリに.pdbファイルがありますが、VSデバッガによれば一致しません。また、WidDBG Symchkにも準拠しています。 Symchkは、/ vオプションを指定しても、不一致の理由を指定しません。
完全に再構築しても、この問題は解決しません。それはデバッグビルドのためだけに発生しており、今日から始まったばかりです。今日までは、pdbのミスマッチには問題はありませんでした。私が使用しています
VSのオプションは次のとおりです。
- C++:デバッグ情報の形式=プログラムデータベース(/ Zi)、プログラムデータベースファイル名= $(IntDir)%(ファイル名).PDB。
- リンカ:デバッグ情報を生成する=デバッグ用に最適化する(/ DEBUG)、プログラムデータベースファイルを生成する$(OutDir)MyApp.pdb、フルプログラムデータベースファイルを生成する=はい。
個々のオブジェクトのpdbファイルは中間ディレクトリに表示され、MyApp.pdbはMyApp.exeと共に出力ディレクトリに表示されます。
ここで奇妙な部分があります。既存のMyApp.pdbを削除してから再リンクすると、新しい.pdbファイルが出力ディレクトリに現行のmod時間で表示されます。リンカが実行されている間、pdbファイルは大きくなり(〜70 MB)、リンカが完了するとpdbファイルは突然小さくなり(〜4 MB)、今日mod時間は数時間前に変わります。これは非常に疑わしく、おそらくpdbの不一致を説明します。
リンカの最終出力ラインは
どのように私はデバッグビルドの一致と正しいPDBファイルを生成するためにVSを強制することができますか?