2017-04-07 6 views
1

私は、遡及的にシンボルをpdbに付けることができるMiniDumpWriteDumpを使って最小限のMinidumpを生成しようとしています。現在、これはMiniDumpWithFullMemoryを使用して動作しますが、非常に大きなダンプファイルを生成します。Windowsでシンボルを解決するMinidump

MiniDumpNormalでダンプを生成すると、小さなファイルが生成され、オフセットのあるスタックトレースが生成されますが、Visual StudioまたはWinDbgでシンボルをロードすることはできません。 Visual Studioはちょうど

Binary was not built with debug information

WinDbgのことを私に語った私に語った:

ERROR: Symbol file could not be found. Defaulted to export symbols for app.exe.

私は、フラグのいくつかの組み合わせを試してみましたが、MiniDumpWithFullMemoryを使用せずにシンボルをロードすることはできません。スタックトレースのシンボルを解決できる最小限のダンプを生成するフラグのセットは何ですか?

実行ファイルはデバッグ情報(/ Zi/DEBUG)でビルドされ、実行プロセスにデバッガを付けるとシンボルがロードされ、デバッガがクラッシュしたプロセスに(WERトリガで)ロードされ、シンボルがロードされ、 MiniDumpWithFullMemoryもシンボルをロードしますが、他のダンプタイプはシンボルをロードしません。

+2

mfcアプリケーションで「バイナリはデバッグ情報でビルドされていません」という警告メッセージが表示される可能性があります(http://stackoverflow.com/questions/12721864/binary-was-not-built-with-debug-information-警告意味のあるアプリケーション) –

+1

これはその質問の複製ではなく、デバッグ情報で構築され、MiniDumpWithFullMemoryでダンプされたときにシンボルを読み込みます。 – tx34

+0

シンボルは遅延ロードとも呼ばれ、遅延ロードとも呼ばれません。通常のミニorrカーネルとは異なり、ロードされたモジュールリストはストリームなので、デバッグバージョンとデバッグ情報を含むリリースバージョンの両方を作成してください。あなたのprijectのコマンドラインに/ ziが表示されていることを確認してください。windbgがシンボルをエクスポートするようにデフォルト設定されていないと言った場合は、pdbが生成されます。そしてミニダンプはそのままそのままダンプしました – blabb

答えて

1

この問題の最も混乱する部分は、ミニダンプを減らした場合を除き、すべてのデバッグが正しく機能していたことです。実行ファイルを調べると、問題が明らかになりました。

symchk app.exe /v

dumpbin /headers app.exe | grep pdb

exeにpdb情報がないことが示されました。 PDB情報を引き起こしていた

MT.exe -manifest C:\app.exe.manifest -outputresource:C:\app.exe;1

を剥離得るために:私のビルドシステムの検査では私が使用してマニフェストを埋め込むた余分なビルドステップを発見しました。

このビルドステップを削除すると、デバッグ情報が保持され、シンボルをMiniDumpNormalダンプからロードできるようになります。

+0

これは驚くべき副作用ですマニフェストツールのデバッガでダンプを開こうとしたときに、同じディレクトリにexe、ミニダンプ、およびpdbを持つことを好奇心から外してみましたか?また、chkmatchを使ってexeとpdbファイルが実際にマッチしていると思っているかどうか確認するのも面白いかもしれません。 –

+0

@AdrianMcCarthy pdb/exe/dmpを同じディレクトリに置くと、マニフェストされたexeを使用してもシンボルがロードされません。Chkmatchができます: '実行可能ファイル: TimeDateStamp:58ed3297 デバッグ情報:2(のCodeView) タイムスタンプ:58ed3297特徴:0 MajorVer:0 MinorVer:0 サイズ:92 RVA:01333e28 FileOffset:01332a28 のCodeView署名:0 \ = をデバッグ情報:12(不明) タイムスタンプ:58ed3297特徴:0 MajorVer:0 MinorVer:0 サイズ:20 RVA:01333e84 FileOffset:01332a84 デバッグ情報ファイル: フォーマット:PDB 7.00 結果:比類のない(理由:互換性のないデバッグ情報フォーマット) ' – tx34

関連する問題