| # Breakpad Crash Reporting for Mozilla |
| |
| * January 24, 2007 |
| * Links updated February 14, 2007 |
| * Mozilla HQ |
| * Mark Mentovai |
| * Brian Ryner |
| |
| ## What is a crash reporter? |
| |
| * Enables developers to analyze crashes that occur in the wild |
| * Produces stack backtraces that help identify how a program failed |
| * Offers higher-level data aggregation (topcrashes, MTBF statistics) |
| |
| ## Motivation |
| |
| * Talkback is proprietary and unmaintained |
| * Smaller open-source projects have few options |
| * Larger projects need flexibility and scalability |
| |
| ## Design Options |
| |
| * Stackwalking done on client |
| * Apple CrashReporter |
| * GNOME BugBuddy |
| * Client sends memory dump |
| * Talkback |
| * Windows Error Reporting |
| * Breakpad |
| |
| ## Goals |
| |
| * Provide libraries around which systems can be based |
| * Open-source |
| * Cross-platform |
| * Mac OS X x86, PowerPC |
| * Linux x86 |
| * Windows x86 |
| * No requirement to distribute symbols |
| |
| ## Client Libraries |
| |
| * Exception handler installed at application startup |
| * Spawns a separate thread |
| * Minidump file written at crash time |
| * Format used by Windows debuggers |
| * Separate application invoked to send |
| * HTTP[S](S.md) POST, can include additional parameters |
| |
| ## Symbols |
| |
| * Cross-platform symbol file format |
| * Contents |
| * Function names |
| * Source file names and line numbers |
| * Windows: Frame pointer omission data |
| * Future: parameters and local variables |
| * Symbol conversion methods |
| |
| ## Processor |
| |
| * Examines minidump file and invokes stackwalker |
| * Symbol files requested from a SymbolSupplier |
| * Produces stack trace |
| * Output may be placed where convenient |
| |
| ## Intergation |
| |
| * Breakpad client present in Gran Paradiso Alpha 1 for Windows |
| * Disabled by default |
| * Enable with `MOZ_AIRBAG` |
| * Proof-of-concept collector |
| * http://mavra.perilith.com/~luser/airbag-collector/list.pl |
| * Other platforms coming soon |
| |
| ## More Information |
| |
| * Project home: https://chromium.googlesource.com/breakpad/breakpad |
| * Mailing lists |
| * [google-breakpad-dev@googlegroups.com](http://groups.google.com/group/google-breakpad-dev/) |
| * [google-breakpad-discuss@googlegroups.com](http://groups.google.com/group/google-breakpad-discuss/) |
| * Ask me (irc.mozilla.org: mento) |