Breakpad:Current Implementation

From MozillaWiki
Jump to: navigation, search

« back to Breakpad main page

This is a summary of the current state of Breakpad integration into Mozilla.

Client Side

Breakpad crash reporting is currently enabled by default on trunk builds of Firefox on Windows, Mac OS X and Linux.

Symbol Extraction/Upload

Symbol extraction and upload is done at build time. There are two targets in the top level Makefile, buildsymbols and uploadsymbols.

Exception Handler

The exception handler is set in XRE_Main, so any app using that as an entry point can use it simply by setting some values in application.ini. See the Firefox application.ini for an example.

There is an API for adding extra data to the crash report, implemented using the nsICrashReporter interface. Note that the server must be modified to handle additional data.

Upon handling an exception, a minidump is written, and then the data added using annotateCrashReport is written to a file with a .extra extension alongside the minidump. The crash reporter client is then launched with the minidump filename as the sole parameter.

Crash Reporter Client

The crash reporter client will display the contents of the .extra file for the user to view, and allow the user to submit a report. The client can also restart the crashed application. The client stores reports in a directory structure explained here. Reports that have not yet been submitted are stored in pending, and successful reports have a text file with information about the report placed in submitted.

Server Side

Information about the server can be found at the Socorro Github page. The Mozilla instance is located at http://crash-stats.mozilla.com/ .