2016-05-27 8 views
1

私はお詫びしますが、私が言及しているシステムの正式名称はわかりません。ここではダイアログを表示したスクリーンショットです(注:Windowsシェルの場合は「シェル」、この場合は「シェル」と混同しないでください")クラッシュしている私のプロセスの名前です:Windowsクラッシュレポートをアプリケーション開発者にリダイレクトする方法はありますか?

enter image description here

つの質問:

  1. のスクリーンショットに示されたシステム/技術の名前は何ですか?クラッシュしているアプリケーションではなく、クラッシュを処理しているシステムで、ダンプファイルを収集して送信します。
  2. 何らかの理由ですべての例外を処理または処理できないアプリケーションがある場合、指定した受信者にクラッシュデータの送信をリダイレクトする方法はありますか?ハンドラか何かを登録しますか?たとえば、アプリケーションがクラッシュしていて、ユーザーが「情報を送信」ボタンをクリックすると、その情報を自分のメールアドレスまたは他のエンドポイントに送信できますか?
+0

これはWERダイアログで、クラッシュが発生したWindowsエラー報告です。マイクロソフトが作成したコンポーネントで、クラッシュ情報をRedmondのサーバーに送信します。マイクロソフトはこれを使用して、修正可能な種類のバグを修正しています。しかし、おそらくあなたの場合はあなたのバグです、彼らはそれを修正しません。しかし、あなたは[このガイドラインに従って] WERが集めた情報を入手できます(https://msdn.microsoft.com/en-us/library/windows/hardware/dn641144%28v=vs.85%29.aspx) 。あるいは、独自のサービスを作成します。これは、SetUnhandledExceptionFilter()を使用して開始する必要があるため、WERの前にクラッシュ情報を取得します。 –

+0

http://stackoverflow.com/a/1964556/17034 –

答えて

0

あなたの質問のほとんどはすでに@HansPassantによって回答されています

WERダイアログつまり、クラッシュがWindowsエラー報告を活性化しました。マイクロソフトが作成したコンポーネントで、クラッシュ情報をRedmondのサーバーに送信します。マイクロソフトはこれを使用して、修正可能な種類のバグを修正しています。しかし、おそらくあなたの場合はあなたのバグです、彼らはそれを修正しません。しかし、あなたはWERがそれに関して集めた情報をfollowing these guidelinesで得ることができます。

登録を完了するにはコード署名証明書が必要です。アプリケーションを識別するには、いくつかの手順が必要です。小さなダンプ(<〜1 MB)しか得られないことがあります。時には役に立たないこともあります。 WERが行う前に、あなたがクラッシュ情報を取得

それとも、SetUnhandledExceptionFilter()を始める必要があり、独自のサービスを、作成します。

@HansPassantもクラッシュを自分で処理する方法を指摘しました。

しかし、いくつかのより多くのオプションは、ダンプを取得するためにあります

  • あなたがローカルディスクにダンプを保存するために使用することができますLocalDumpsと呼ばれるレジストリキーが存在します。必要な場合にのみオンにすることを検討してください。それ以外の場合は、お客様のハードディスクを簡単に満たすことができます。これは、クラッシュがお客様のサイトでは再現可能で、マシン上では再現できない場合は非常にうまく動作します。

  • CrashRpt(オープンソース、licenseをご確認ください)またはDoctor Dumpのような無料のライブラリを使用してください。これはおそらく、データを収集するためにサーバーを設定する必要があるという欠点があります。

  • 私が答えで説明したHow do I take a good crash dump for .NETのオプションを参照してください。このオプションは、ネイティブアプリケーションでもうまくいきます。

関連する問題