Confirmed users
424
edits
(Added information on the minidump_stackwalker project, fixed a few typos and added new project entries) |
(Added information about the minidump-analyzer project) |
||
| Line 18: | Line 18: | ||
== minidump-analyzer == | == minidump-analyzer == | ||
Status: not started<br> | |||
Developer(s): | |||
Source code: https://github.com/luser/rust-minidump/<br> | |||
Original source code:<br> | |||
* https://chromium.googlesource.com/breakpad/breakpad/ | |||
* https://hg.mozilla.org/mozilla-central/file/6f0a8dddad51/toolkit/crashreporter/minidump-analyzer | |||
Bugs:<br> | |||
* {{bug|1743983}} | |||
=== Description === | |||
The minidump-analyzer tool is similar to the [[#minidump_stackwalker]] in that | |||
it processes minidumps and emits stack traces in Socorro-compatible JSON | |||
format. The main differences between the tools are that minidump-analyzer runs | |||
on client machines rather than on our servers, it uses native debug information | |||
where possible to unwind stacks instead of Breakpad symbol files and it doesn't | |||
symbolicate its output. minidump-analyzer is run on a client machine for every | |||
crash that generated a valid minidump and its output is used to populate the | |||
contents of the | |||
[https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/data/crash-ping.html crash ping]. | |||
=== Rationale === | |||
The minidump-analyzer suffers from many of the same problems as the | |||
[[#minidump_stackwalker]] with regards to stability, maintenance burden and | |||
lack of automated testing. It is yet another Breakpad-based stack walker that | |||
produces slightly different results than the others. Additionally support for | |||
using native unwinding information was never fully implemented. We only ever | |||
implemented support for the Windows x86-64 platform and we would have to | |||
implement support for other platforms from scratch in order to make it fully | |||
functional. | |||
We'd like to replace this tool with one which re-uses the same code as | |||
Socorro's [[#minidump_stackwalker]] in order to reduce maintenance and keep | |||
results consistent between Socorro and crash telemetry. Additionally we'd like | |||
to add support for all missing platforms (Linux and macOS, as well as | |||
Windows/AArch64). | |||
=== Plan === | |||
We plan on reusing the stackwalker developed as part of the | |||
[[#minidump_stackwalker]] project using Sentry's | |||
[https://github.com/getsentry/symbolic symbolic] crate to parse the native | |||
debug information. This will require a few changes to the | |||
[https://github.com/luser/rust-minidump rust-minidump] crate: | |||
* We need to add support for fetching unwinding directives from native debug information via the symbolic crate | |||
* We need to add machinery to find the appropriate files on the client machine instead of fetching them from a symbol server | |||
* We don't need to wire up the symbolicator to the native debug information as the stack traces we emit are raw and will be symbolicated later | |||
* We'll have to vendor rust-minidump and its dependencies into mozilla-central | |||
* We'll have to build and package the tool like we do with the existing one | |||
* Finally we should remove Breakpad's processor sources from the build as they won't be needed anymore | |||
Sentry is already working on integrating symbolic with rust-minidump so we're | |||
currently waiting it out. This might require very little work in the end. | |||
= Server-side tools and components = | = Server-side tools and components = | ||
| Line 228: | Line 283: | ||
== Telemetry-based dashboards == | == Telemetry-based dashboards == | ||
=== Overview === | |||
Status: not started<br> | |||
Developer(s): | |||
Source code: | |||
Original source code:<br> | |||
* https://mathies.com/mozilla/crashes/ | |||
=== Description === | |||
=== Rationale === | |||
=== Plan === | |||