Windowsプログラミング環境を初めて使用しています。あなたが私を助けることができれば感謝します:pdbが一致していないか見つからない - ウィンドウでのデバッグ
私はTeamCity
ビルドサーバーで構築しているController.exe
というアプリケーションがあります。アプリケーションのビルドは、exe
ファイルとpdb
ファイルを生成します。
デプロイメントマシンでController.exe
を実行すると、クラッシュしてダンプが生成されます。アプリケーションで
私は次のようにダンピングクラッシュを有効にしている:
unsigned long stackSize = 16384;
SetThreadStackGuarantee(&stackSize);
SetUnhandledExceptionFilter(WriteLargeMiniDump);
機能WriteLargeMiniDump()
が正常にダンプを書き込みます。私はこれを知っています。Controller.exe
を私の開発マシンで実行すると、ダンプが生成され、正常にオープンしてソースコードのクラッシュラインを見ることができるからです。
TeamCityサーバーで生成されたexe
とpdb
の場合、ダンプをデバッグできません。ダンプファイルをvisual studio 2015
で開き、Debug with Native Only
を試してみると、pdb
がロードされていません。
pdb
ファイルが正しいかどうかを調べてみました。そこで私はDebugging Tools for windows
をsymchk.exe
としてダウンロードしました。
私はsymchk.exe
を実行すると、それは次のエラーを与える:
SYMCHK: Controller.exe FAILED - Controller.pdb mismatched or not found
SYMCHK: FAILED files = 1
SYMCHK: PASSED + IGNORED files = 0
Controller.pdb
は私がTeamCity
サーバーから生成exe
をコピーした同じディレクトリにあります。
ここに何か不足していますか?
何バイナリのファイルサイズはありますか?ここでネイティブのC++または.NETアセンブリについて話していますか?これは、コピーエラーやデュアル書き込みエラーのために.pdbが途切れてしまったような奇妙なエラーです。 –
@ justin.m.chase 'exe'は約2MB、' pdb'は約15MBです – Monku
タイムスタンプも見てください。ビルドがデバッグデータベースを生成しないように変更され、古いpdbをコピーしている可能性があります。 – IInspectable