When an error occurs in a client application, CrashRpt notifies the end user and allows him/her to review the report contents. CrashRpt can be configured to use multiple languages with its user interface, as described in Internationalization Support
When a crash occurs in the client application, the Error Report
dialog is displayed (see the figure below).
Error Report Dialog
User can optionally provide his/her E-mail address and a short problem description. He can do this by clicking the "Provide additional information (recommended)" link.
The user-entered E-mail address may be used later by software support staff to contact the user and ask for additional information about the problem.
Once the user is satisfied, he/she may click the 'Send report' button on the Error Report dialog. For additional information about sending error reports, please refer to Sending Error Reports page.
If the user doesn't want to send the report, the user clicks the 'Close the program' button.
The What does this report contain?
link on the Error Report dialog opens the Error Report Details dialog.
The Error Report Details dialog (see below) displays the list of files contained in the crash report. Double clicking a filename opens the file using its associated program, if an association exists for the file type.
Pressing the Export... button results in exporting the error report files as a ZIP archive. This may be useful if you want to save a local copy of the error report to disc for later use.
Error Report Details Dialog
The error report is a collection of files intended to help the developer diagnose the cause of the crash: a crash minidump file, a crash description XML file, and other optional files.
A crash minidump file (crashdump.dmp) contains operating system version, processor type, CPU registers state, local variables and call stack for each execution thread. The minidump file can be used on developer's side to determine the reason of the crash and try to fix the problem.
- The minidump file is created as follows. All the threads of the parent process are suspended, and a "snapshot" of the process is recorded. The snapshot includes the names and versions of all DLL-modules loaded into the process and the list of threads that work in the process. For each of those threads, call stack image is recorded. Also, the information about the version of the operating system, the number of CPUs and their brand names are written to minidump file.
The minidump is usually created with the help of the DbgHelp DLL's MiniDumpWriteDump() function. For additional information on the MiniDumpWriteDump() function, please refer to MSDN.
CrashRpt generates an XML crash description file (crashrpt.xml
) complementing the minidump. The XML file contains various information, such as application name and version, sender's E-mail address and geographic location, user-provided problem description, exception type and address and so on.
Custom files, for example, application log files, desktop screen shots and screen capture videos, can be included into crash report via the API functions provided by CrashRpt. For additional information, see the Using CrashRpt API page.
Further reading: Demo Applications.