don't emit unnecessary PUBLIC lines in breakpad symbol files for Linux/Android
Categories
(Toolkit :: Crash Reporting, enhancement)
Tracking
()
Tracking | Status | |
---|---|---|
firefox68 | --- | fixed |
People
(Reporter: froydnj, Assigned: froydnj)
Details
Attachments
(1 file, 1 obsolete file)
We already emit FUNC lines for all of these, so the PUBLIC lines are just wasting space.
Assignee | ||
Comment 1•5 years ago
|
||
Module::AddFunction assumes that any time we add a function, it is
preferable to use that instead of the corresponding external
symbol (which could be anything). The former show up in Breakpad symbol
files as FUNC lines, and the latter as PUBLIC lines.
For Module::AddFunction to be effective, we have to parse all the
external symbols for a module first, and then discover all the actual
functions. But the Linux symbol dumping code does the reverse: it first
parses all the DWARF information (including .debug_info, which adds any
relevant functions) and then parses the ELF symbol table. This ordering
means that we wind up emitting PUBLIC lines for which corresponding FUNC
lines already exist. These duplicate PUBLIC lines take up roughly 10%
of the size of a libxul symbol file (~30MB), and are completely unnecessary.
The fix is simple: we should reverse the order in which we parse ELF
symbols and DWARF debug information.
Updated•5 years ago
|
Pushed by nfroyd@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/15c4fae5d559 parse ELF symbols before DWARF symbols in dump_syms; r=gsvelto
Comment 3•5 years ago
|
||
bugherder |
Comment 4•5 years ago
|
||
Moved changes to the non-forked part of breakpad living under
toolkit/crashreporter/google-breakpad into separate patches that are applied
by update-breakpad.sh when syncrhonizing with upstream breakpad. Because we
landed the commits directly to the sources every time we called
update-breakpad.sh those changes would be reverted.
Comment 5•5 years ago
|
||
Comment on attachment 9058566 [details]
Bug 1539574 - Turn the fixes in bug 1539574 and bug 524410 into breakpad patches
I put the wrong number in arcanist message :-/ Sorry for the spam.
Description
•