3

WinAPI を使用して C++/MFC でコーディングしています。私のソフトウェアは、ローカル サービスと、ログインしている Windows ユーザーにユーザー インターフェイスを提供するユーザー モード アプリで構成されています。これらのモジュールのいずれかでクラッシュが発生した場合に備えて、.dmp ファイルと .hdmp ファイルを収集する方法を探しています。WERがそれらを収集し、Microsoft に提出していると思われることは知っています。これらのファイルを収集して、ハード ドライブのどこかに保存する方法はありますか?

PS。Windows XP SP3、Vista、7、8 で動作するにはこれが必要です。

4

3 に答える 3

3

Windows 2000およびXPは、DrWatsonを使用してクラッシュダンプをすでに保存しています。実行drwtsn32.exeすると、ログおよびダンプファイルへのパスを取得/構成できます。

Windows Vista +はWERのみを使用します。これはデフォルトではダンプを保存しませんが、ユーザーモードダンプの作成を有効にすることができます。
値を2に設定して、デフォルトで( )HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\DumpTypeに保存される完全なダンプを保存します。%LOCALAPPDATA%\CrashDumpsC:\Users\dee.earley\AppData\Local\CrashDumps

WinDebugのようなデバッガーをインストールすると、ユーザーモードのアプリやサービスからの例外が発生したときにそれをキャッチすることもできます。

于 2012-08-10T08:49:21.697 に答える
0

Microsoft の DebugDiag ツールは、プロセスを監視し、例外やクラッシュ時にダンプ ファイルを出力するのに非常に役立ちます。

http://www.microsoft.com/en-us/download/details.aspx?id=26798

これを複数の顧客環境で使用して、自分の環境では再現できなかった問題を追跡しました。

于 2012-08-09T17:25:55.960 に答える
0

顧客側でクラッシュを処理する方法を探している場合、最善の解決策は google-breakpad ライブラリを使用することです。あなたの場合、例外ハンドラはディスクにダンプファイルを書き込みます。

于 2012-08-10T11:49:25.900 に答える