Confirmed users
387
edits
(Added the minidump-writer issue regarding detecting guard pages) |
(Added information about supporting inline frames) |
||
Line 137: | Line 137: | ||
=== Description === | === Description === | ||
For a long time Breakpad symbol files only included names and information for | |||
non-inlined functions. This was recently changed and now symbols files can | |||
include the name of inlined function as well as the regions of memory where | |||
they were inlined, complete with indexes to discern at what level of the stack | |||
they appeared. | |||
=== Rationale === | === Rationale === | ||
Firefox code includes heavy inlining, especially in layered Rust and C++ code. | |||
The lack of inline information has hampered us, often making interpreting | |||
crashes very much non-obvious. Adding support for inlined functions would make | |||
it easier to diagnose bugs and would significantly simplify triage of certain | |||
modules. | |||
=== Plan === | === Plan === | ||
* The first step is to introduce support in Symbolic to correctly parse these fields while reading .sym files. This will be used to later add support in the stack walker | |||
* Once Symbolic support is ready dump_syms needs to be modified to emit these directives. Symbolic already supports reading inlining information from native debuginfo so it's a matter of leveraging that information | |||
* Finally the stack walker needs to be modified to take into account the new directives and emit inlined frames in the output | |||
== Improved stack overflow detection & analysis == | == Improved stack overflow detection & analysis == |