2011-06-18 16 views
1

リリースビルドでプログラムがクラッシュしたときに、どのようにしてdmpファイルを作成できますか?私は例外をトリガすべきだと思うが、私は知らないどのようにリリースビルドでdmpファイルを作成する

+1

何プラットフォームを? C++標準にはクラッシュダンプは含まれていませんが、OS固有のメカニズムが必要です。 –

答えて

4

Windowsでは、デバッグヘルパーAPIを使用して、任意の場所にミニダンプファイルを書き込むことができます。このファイルは、Microsoftに送信する必要はありません。

http://msdn.microsoft.com/en-us/library/ms680369(v=vs.85).aspx

他の人が述べたように、ダンプファイルが正しいビルドからPDBファイルなしで役に立たないだろう。 Microsoftのシンボルサーバーを使用してPDBファイルのインデックスと管理を検討することをお勧めします。

また、あなたに直接クライアントのエラーを報告するBreakpadを使用することもできます。

http://code.google.com/p/google-breakpad/

+0

どのようにすべての例外をトリガすることができますか?私はMiniDumpWriteDumpの使用を見ました。try-exceptブロックでコードをチェックする必要があります – Stefano

+1

コードが例外から回復できない限り、tryブロックを使用する必要はありません。 SetUnhandledExceptionFilterを見てダンプファイル[ここ](http://msdn.microsoft.com/en-us/library/ms680634(v = vs.85).aspx)を書き込むためのカスタムメソッドを登録します。 –

+0

が見つかりました、ありがとうございます – Stefano

1

Windows automatically generates a minidumpいつでもプログラムthrows(あなたがキャッチブロックを持っていない、すなわち例外)未処理の例外。 ddbファイルをデバッグできるように、(Visual Studioを使用していると仮定して)pdbファイルを作成してください。

+1

クライアントマシン上のリリースビルドで実行されているアプリケーション用にミニダンプを構築していますか? – Stefano

+0

はい、それはありますが、pdbファイルはデフォルトではリリースビルドのために作成されていません – Euqil

+1

とにかくあなたの質問に答えるのは難しいです - あなたは何のプラットフォームでビルドされているのか、どのプラットフォームのためにクライアントにインストールされているのか分かりません。 \ – Euqil

関連する問題