Breakpad: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (Airbag moved to Breakpad: Google renamed it, so we will too)
(update this insanely old page)
 
(30 intermediate revisions by 14 users not shown)
Line 1: Line 1:
= What's Airbag? =
= Breakpad Integration into Mozilla =
Airbag is a crash reporting tool.  This page talks about its implementation for Mozilla.


[http://groups.google.com/group/google-breakpad-discuss/browse_thread/thread/4f40867980fe7452 Airbag is now Breakpad]. This is going to require some cleanup here and elsewhere.
Breakpad is a set of libraries for client-side crash reporting.  This page talks about integrating breakpad with Mozilla products. [http://groups.google.com/group/google-breakpad-discuss/browse_thread/thread/4f40867980fe7452 Breakpad was formerly called airbag]. The libraries are being developed as a [http://groups.google.com/group/google-breakpad-discuss/browse_thread/thread/2a082e9c8636031c narrowly scoped] Google code project. The breakpad libraries do not provide any crash-reporting UI, nor do they provide a server.


Our implementation has two parts:
Our implementation has multiple parts:
* Client integration to handle crash reporting so a central server can aggregate crash data to help improve our products.
* crash reporter: Client integration to handle crash reporting so a central server can aggregate crash data to help improve our products.
* A web interface for viewing and parsing Airbag reports.  We don't have a name yet for this project -- stay tuned (no, Airbag Server System is not an option).
* crash ingestion pipeline:
** collector (Antenna) that collects incoming crash reports
** processor (Socorro) that processes crash reports including walking the stack in the minidump and symbolicating it
* crash analysis tools
** Crash Stats webapp (Socorro) for searching, viewing, and investigating crash reports
** myriad of other tools based that use the Crash Stats API and Telemetry tools


More information about Airbag itself can be found at:
More information, source code, and mailing lists for breakpad library development can be found at the
* [http://code.google.com/p/airbag/ Airbag Project Site]
[http://code.google.com/p/google-breakpad/ Breakpad Project Site].
* [http://code.google.com/p/airbag/ Airbag Source]
* [http://groups.google.com/group/airbag-discuss Airbag Discussion Newsgroup]
* [http://groups.google.com/group/airbag-dev Airbag Dev Newsgroup]


= Pages =
See [[Socorro]] for more information on Crash Stats, the crash ingestion pipeline, and Socorro.
* [[Breakpad:Current_Implementation|Current Implementation]] -- The status of what has been implemented so far.
* [[Airbag:Feature_List|Feature List]] -- What do we want our Airbag web interface to do?
* [[Airbag:Server_Requirements|Server Requirements]] -- How to set up the web app.
** [[Airbag:Development Planning & Design | Development Planning & Design]]
* [http://zenit.senecac.on.ca/wiki/index.php/Airbag_development_and_server_operation Seneca College Airbag Page] -- Read about Seneca's awesome work with Airbag.
* [[Airbag:Name_Ideas|Name Ideas]] -- Suggest a name for Airbag's web interface.
* [[Airbag/Symbol_Server|Airbag Symbol Server]]


= What's Going On =


Just a braindump on what we'll need to replace Talkback with [http://code.google.com/p/airbag/ Airbag].  There's a tracking bug on this now, [https://bugzilla.mozilla.org/show_bug.cgi?id=360327 bug 360327].
= Integration Team =


# Client-side exception handler - win32 work done ([https://bugzilla.mozilla.org/show_bug.cgi?id=354980 bug 354980]).
Contact the team on #breakpad channel on Matrix.
# Client-side minidump sender - win32 work done ([https://bugzilla.mozilla.org/show_bug.cgi?id=354980 bug 354980]).
# Server-side minidump collector, CGI to accept POSTed minidump data.  Current plans are just to call the minidump processor directly from this CGI. [http://mavra.perilith.com/~luser/airbag-collector/index.txt My simplistic collector].  [https://bugzilla.mozilla.org/show_bug.cgi?id=358302 bug 358302] covers setting up an official server.
# Server-side minidump processor - Mostly implemented by [http://airbag.googlecode.com/svn/trunk/src/processor/ airbag processor], in the minidump_stackwalk example program, we will probably want to modify that a bit to make the output more machine readable, so we can store it in a DB.
# Build-time symbol extractor - Provided by [http://airbag.googlecode.com/svn/trunk/src/tools/windows/dump_syms/ airbag tools] - win32 work and tinderbox integration done ([https://bugzilla.mozilla.org/show_bug.cgi?id=359151 bug 359151]), and([https://bugzilla.mozilla.org/show_bug.cgi?id=362970 bug 362970]
# [[Airbag/Symbol Server|Server-side symbol store]] - For matching up stackdumps with symbols.
# Server-side webapp to show details of crash reports, like talkback-public currently, will need a database backend
 
[http://groups.google.com/group/airbag-discuss/browse_thread/thread/2a082e9c8636031c Mento's post] outlines the Airbag project's proposed scope.
 
Win32 trunk nightlies currently include the airbag code, but it's disabled at runtime by default.  To test it, you will need to set the environment variable <code>MOZ_AIRBAG=1</code>.  Crash reports are currently collected at:
http://mavra.perilith.com/~luser/airbag-collector/list.pl
 
Some of the Seneca students are [http://zenit.senecac.on.ca/wiki/index.php/Airbag_development_and_server_operation looking into this].
 
http://benjamin.smedbergs.us/blog/2006-09-12/deploying-the-airbag/

Latest revision as of 17:43, 17 April 2020

Breakpad Integration into Mozilla

Breakpad is a set of libraries for client-side crash reporting. This page talks about integrating breakpad with Mozilla products. Breakpad was formerly called airbag. The libraries are being developed as a narrowly scoped Google code project. The breakpad libraries do not provide any crash-reporting UI, nor do they provide a server.

Our implementation has multiple parts:

  • crash reporter: Client integration to handle crash reporting so a central server can aggregate crash data to help improve our products.
  • crash ingestion pipeline:
    • collector (Antenna) that collects incoming crash reports
    • processor (Socorro) that processes crash reports including walking the stack in the minidump and symbolicating it
  • crash analysis tools
    • Crash Stats webapp (Socorro) for searching, viewing, and investigating crash reports
    • myriad of other tools based that use the Crash Stats API and Telemetry tools

More information, source code, and mailing lists for breakpad library development can be found at the Breakpad Project Site.

See Socorro for more information on Crash Stats, the crash ingestion pipeline, and Socorro.


Integration Team

Contact the team on #breakpad channel on Matrix.