xref: /aosp_15_r20/external/google-breakpad/docs/mozilla_brown_bag_talk.md (revision 9712c20fc9bbfbac4935993a2ca0b3958c5adad2)
1*9712c20fSFrederick Mayle# Breakpad Crash Reporting for Mozilla
2*9712c20fSFrederick Mayle
3*9712c20fSFrederick Mayle*   January 24, 2007
4*9712c20fSFrederick Mayle    *   Links updated February 14, 2007
5*9712c20fSFrederick Mayle*   Mozilla HQ
6*9712c20fSFrederick Mayle*   Mark Mentovai
7*9712c20fSFrederick Mayle*   Brian Ryner
8*9712c20fSFrederick Mayle
9*9712c20fSFrederick Mayle## What is a crash reporter?
10*9712c20fSFrederick Mayle
11*9712c20fSFrederick Mayle*   Enables developers to analyze crashes that occur in the wild
12*9712c20fSFrederick Mayle*   Produces stack backtraces that help identify how a program failed
13*9712c20fSFrederick Mayle*   Offers higher-level data aggregation (topcrashes, MTBF statistics)
14*9712c20fSFrederick Mayle
15*9712c20fSFrederick Mayle## Motivation
16*9712c20fSFrederick Mayle
17*9712c20fSFrederick Mayle*   Talkback is proprietary and unmaintained
18*9712c20fSFrederick Mayle*   Smaller open-source projects have few options
19*9712c20fSFrederick Mayle*   Larger projects need flexibility and scalability
20*9712c20fSFrederick Mayle
21*9712c20fSFrederick Mayle## Design Options
22*9712c20fSFrederick Mayle
23*9712c20fSFrederick Mayle*   Stackwalking done on client
24*9712c20fSFrederick Mayle    *   Apple CrashReporter
25*9712c20fSFrederick Mayle    *   GNOME BugBuddy
26*9712c20fSFrederick Mayle*   Client sends memory dump
27*9712c20fSFrederick Mayle    *   Talkback
28*9712c20fSFrederick Mayle    *   Windows Error Reporting
29*9712c20fSFrederick Mayle    *   Breakpad
30*9712c20fSFrederick Mayle
31*9712c20fSFrederick Mayle## Goals
32*9712c20fSFrederick Mayle
33*9712c20fSFrederick Mayle*   Provide libraries around which systems can be based
34*9712c20fSFrederick Mayle*   Open-source
35*9712c20fSFrederick Mayle*   Cross-platform
36*9712c20fSFrederick Mayle    *   Mac OS X x86, PowerPC
37*9712c20fSFrederick Mayle    *   Linux x86
38*9712c20fSFrederick Mayle    *   Windows x86
39*9712c20fSFrederick Mayle*   No requirement to distribute symbols
40*9712c20fSFrederick Mayle
41*9712c20fSFrederick Mayle## Client Libraries
42*9712c20fSFrederick Mayle
43*9712c20fSFrederick Mayle*   Exception handler installed at application startup
44*9712c20fSFrederick Mayle    *   Spawns a separate thread
45*9712c20fSFrederick Mayle*   Minidump file written at crash time
46*9712c20fSFrederick Mayle    *   Format used by Windows debuggers
47*9712c20fSFrederick Mayle*   Separate application invoked to send
48*9712c20fSFrederick Mayle    *   HTTP[S](S.md) POST, can include additional parameters
49*9712c20fSFrederick Mayle
50*9712c20fSFrederick Mayle## Symbols
51*9712c20fSFrederick Mayle
52*9712c20fSFrederick Mayle*   Cross-platform symbol file format
53*9712c20fSFrederick Mayle*   Contents
54*9712c20fSFrederick Mayle    *   Function names
55*9712c20fSFrederick Mayle    *   Source file names and line numbers
56*9712c20fSFrederick Mayle    *   Windows: Frame pointer omission data
57*9712c20fSFrederick Mayle    *   Future: parameters and local variables
58*9712c20fSFrederick Mayle*   Symbol conversion methods
59*9712c20fSFrederick Mayle
60*9712c20fSFrederick Mayle## Processor
61*9712c20fSFrederick Mayle
62*9712c20fSFrederick Mayle*   Examines minidump file and invokes stackwalker
63*9712c20fSFrederick Mayle*   Symbol files requested from a SymbolSupplier
64*9712c20fSFrederick Mayle*   Produces stack trace
65*9712c20fSFrederick Mayle*   Output may be placed where convenient
66*9712c20fSFrederick Mayle
67*9712c20fSFrederick Mayle## Intergation
68*9712c20fSFrederick Mayle
69*9712c20fSFrederick Mayle*   Breakpad client present in Gran Paradiso Alpha 1 for Windows
70*9712c20fSFrederick Mayle    *   Disabled by default
71*9712c20fSFrederick Mayle    *   Enable with `MOZ_AIRBAG`
72*9712c20fSFrederick Mayle*   Proof-of-concept collector
73*9712c20fSFrederick Mayle    *   http://mavra.perilith.com/~luser/airbag-collector/list.pl
74*9712c20fSFrederick Mayle*   Other platforms coming soon
75*9712c20fSFrederick Mayle
76*9712c20fSFrederick Mayle## More Information
77*9712c20fSFrederick Mayle
78*9712c20fSFrederick Mayle*   Project home: https://chromium.googlesource.com/breakpad/breakpad
79*9712c20fSFrederick Mayle*   Mailing lists
80*9712c20fSFrederick Mayle    *   [[email protected]](http://groups.google.com/group/google-breakpad-dev/)
81*9712c20fSFrederick Mayle    *   [[email protected]](http://groups.google.com/group/google-breakpad-discuss/)
82*9712c20fSFrederick Mayle*   Ask me (irc.mozilla.org: mento)
83