2

I apologize but I don't know the official name of the system I'm referring to, here is a screen shot showing the dialogs (note: Don't confuse "Shell" w/ Windows Shell, in this case "Shell" is the name of the my process that is crashing):

enter image description here

Two questions:

  1. What is the name of the system/technology shown in the screen shot? Not the application that is crashing, but the system that is handling the crash, collecting the dump file and sending it.
  2. If I have an application that for some reason I can't handle or catch all exceptions for, is there a way to redirect the sending of the crash data to a recipient I specify? Or register a handler or something? For example, if it were my application crashing and the user clicks the ''Send information'' button can I send that info to my email address or some other endpoint?
scubasteve
  • 2,718
  • 4
  • 38
  • 49
  • That is the WER dialog, the crash activated Windows Error Reporting. A component written by Microsoft, it sends crash info to a server in Redmond. Microsoft uses it to fix the kind of bugs that they can fix. But most likely in your case it is your bug, they won't fix it. But you can get the info that WER gathered about it by [following these guidelines](https://msdn.microsoft.com/en-us/library/windows/hardware/dn641144%28v=vs.85%29.aspx). Or you create your own service, that must get started with SetUnhandledExceptionFilter() so you get the crash info before WER does. – Hans Passant May 28 '16 at 00:25
  • http://stackoverflow.com/a/1964556/17034 – Hans Passant May 28 '16 at 00:27

1 Answers1

2

Most of your question has already been answered by @HansPassant:

That is the WER dialog, the crash activated Windows Error Reporting. A component written by Microsoft, it sends crash info to a server in Redmond. Microsoft uses it to fix the kind of bugs that they can fix. But most likely in your case it is your bug, they won't fix it. But you can get the info that WER gathered about it by following these guidelines.

Note that you need a code signing certificate to complete the registration and you need a few extra steps to identify your application. You'll only get small dumps (< ~1 MB), which sometimes don't help (often don't help for .NET).

@HansPassant also pointed out how to handle a crash yourself:

Or you create your own service, that must get started with SetUnhandledExceptionFilter() so you get the crash info before WER does.

However, there are a few more options to get the dump:

  • there is a Registry key called LocalDumps, which you can use to save dumps on a local disk. Please consider turning that on only if you need it, otherwise it'll easily fill your customer's hard disk. This works very fine if the crash is reproducible at the customer's site but not on your machine.

  • use a free library like CrashRpt (open source; please check the license) or Doctor Dump. This perhaps has the disadvantage that you need to set up a server to collect the data.

  • see more options which I described in the answer How do I take a good crash dump for .NET, which also works well for native applications.

Community
  • 1
  • 1
Thomas Weller
  • 55,411
  • 20
  • 125
  • 222