mozilla / dump_syms

Rewrite of breakpad dump_syms tools in Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Emit INLINE and INLINE_ORIGIN directives

gabrielesvelto opened this issue · comments

Breakpad added support for inlined functions in revision 4f5b8147, we should support it too. Note that in breakpad's dump_syms INLINE and INLINE_ORIGIN directives are emitted conditionally because they increase the size of the output significantly (they use the -d flag for it).

If I wanted to implement this today, what would be the blockers? Which downstream consumers of .sym files exist and which of them would we need to make compatible with the new format first (e.g. by teaching them to ignore the new lines)?

This is the list:

Once these workarounds are in place, this issue will be unblocked.

To actually make use of the data, we have getsentry/symbolic#432 and rust-minidump/rust-minidump#239.

The Tecken bug (1731368) is straight-forward: ignore all the INLINE lines. (Edit: turned out it already ignores INLINE lines--so we'rd good here.)

The other two are more complicated because we effectively have to convert from the sym-with-inlines to sym-without-inlines format to maintain the "we've got the line at the outermost level" thing.

I can fix Eliot, but probably won't get to it until after I've got it in prod.

I don't think I can fix the current stackwalker any time soon. I'm hoping that we can switch to rust-minidump and then not do it. But that means we'd have to implement ignoring INLINE lines in rust-minidump until it's supported in symbolic.

If we implement support here behind a flag like Google did we can start testing it without having to immediately introduce the functionality in our crash reporting pipeline.

Note: upstream breakpad just changed the format again. I had the feeling that the feature had been rushed and this somewhat confirms my feeling. I'll update the description of the format above but let's wait for this to cook up a bit before we jump on it.

Alright, I've updated getsentry/symbolic#432 to reflect the changes

I've started working on this.

We can't use this in production until we know that all the downstream users of sym files can handle these lines.

It will be hidden behind a non-default --inlines command line argument.

We can't know that all downstream users of sym files can handle these lines until we have example .sym files with them.

That works for me! I just panicked because you said "I've started working on this." and I had no idea what that entailed I know I've got downstream stuff that will die and I can't get to fixing it any time soon.