Breakpad:Current Implementation: Difference between revisions

Line 20: Line 20:
== Exception Handler ==
== Exception Handler ==


The exception handler is set [http://mxr.mozilla.org/seamonkey/source/toolkit/xre/nsAppRunner.cpp#2209 in XRE_Main] by calling [http://mxr.mozilla.org/seamonkey/source/toolkit/airbag/nsAirbagExceptionHandler.cpp#87 SetAirbagExceptionHandler()].  The exception handler is not actually installed unless the MOZ_AIRBAG environment variable is set to a non-zero value.  Once a profile has been found, a "minidumps" directory is located or created in the profile directory, and [http://mxr.mozilla.org/seamonkey/source/toolkit/xre/nsAppRunner.cpp#2608 this path is passed] to [http://mxr.mozilla.org/seamonkey/source/toolkit/airbag/nsAirbagExceptionHandler.cpp#128 SetAirbagMinidumpPath()] as the destination for minidump files from the exception handler.
The exception handler is set [http://mxr.mozilla.org/seamonkey/source/toolkit/xre/nsAppRunner.cpp#2209 in XRE_Main] by calling [http://mxr.mozilla.org/seamonkey/source/toolkit/airbag/nsAirbagExceptionHandler.cpp#203 SetExceptionHandler()].  The exception handler is not actually installed unless the MOZ_AIRBAG environment variable is set to a non-zero value.  The code in XRE_Main then sets some additional data (currently Vendor, ProductName, Version and BuildID) by calling [http://mxr.mozilla.org/seamonkey/source/toolkit/airbag/nsAirbagExceptionHandler.cpp#342 AnnotateCrashReport].  Once a profile has been found, a "minidumps" directory is located or created in the profile directory, and [http://mxr.mozilla.org/seamonkey/source/toolkit/xre/nsAppRunner.cpp#2622 this path is passed] to [http://mxr.mozilla.org/seamonkey/source/toolkit/airbag/nsAirbagExceptionHandler.cpp#261 SetMinidumpPath()] as the destination for minidump files from the exception handler.


Upon catching an exception, the handler [http://mxr.mozilla.org/seamonkey/source/toolkit/airbag/nsAirbagExceptionHandler.cpp#78 attempts to execute crashreporter.exe] from the same directory as the current executable.  The full path to the minidump file is passed in as a command line parameter.  The application then exits.
Upon catching an exception, the handler writes the additional data set using AnnotateCrashReport out to a file with the same base name as the minidump, but with a ".extra" extension. [http://mxr.mozilla.org/seamonkey/source/toolkit/airbag/nsAirbagExceptionHandler.cpp#78 attempts to execute crashreporter.exe] from the same directory as the current executable.  The full path to the minidump file is passed in as a command line parameter.  The application then exits.


== Crash Reporter Client ==
== Crash Reporter Client ==
Confirmed users
321

edits