OLD | NEW |
(Empty) | |
| 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: http://code.google.com/p/google-breakpad/ |
| 79 * Mailing lists |
| 80 * [google-breakpad-dev@googlegroups.com] |
| 81 (http://groups.google.com/group/google-breakpad-dev/) |
| 82 * [google-breakpad-discuss@googlegroups.com] |
| 83 (http://groups.google.com/group/google-breakpad-discuss/) |
| 84 * Ask me (irc.mozilla.org: mento) |
OLD | NEW |