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