mozilla/gecko-dev
Crash reporter
The Firefox crash reporter is a separate binary that runs out-of-process whenever Firefox crashes. It captures a minidump, lets the user submit it, and uploads to Mozilla's crash backend (Socorro / crash-stats). Source: toolkit/crashreporter/.
Components
| Path | Role |
|---|---|
toolkit/crashreporter/breakpad-client/ |
Vendored Google Breakpad client used at crash time |
toolkit/crashreporter/google-breakpad/ |
Vendored Breakpad symbol/minidump library |
toolkit/crashreporter/client/app/ |
Modern Rust crash-reporter UI app |
toolkit/crashreporter/crash_helper_server/ |
Rust helper process for crash collection |
toolkit/crashreporter/crash_helper_client/ |
Rust client library used by Firefox |
toolkit/crashreporter/minidump-analyzer/ |
Local symbolication and analysis |
toolkit/crashreporter/mozwer-rust/ |
Windows Error Reporting integration |
toolkit/crashreporter/nsExceptionHandler.{h,cpp} |
The C++ glue that integrates Breakpad with Gecko |
How it works
- At startup,
nsExceptionHandlerinstalls a Breakpad signal handler. - On crash, Breakpad writes a minidump to disk.
- The crash helper (out of process) coordinates collection and is spawned for each child-process crash to avoid re-crashing in the dying process.
- On next launch, Firefox shows the crash reporter UI (the Rust app under
client/app/), letting the user review and submit. - Submitted reports go to Mozilla's Socorro pipeline at crash-stats.mozilla.com.
Why Rust
The newer reporter components (client/app, crash_helper_server, crash_helper_client, mozwer-rust, minidump-analyzer/android/) are written in Rust because crash handling is one of the highest-stakes places in the codebase: a bug in crash code can prevent reports from arriving and hide regressions. Rust's safety properties reduce that risk.
Related
- Build system — these are workspace crates listed in
Cargo.toml. - Telemetry / Glean — crash counts and crash-related metrics flow through Glean too.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.