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