Dwarf5 fixes [4 of 5]: Skip processing Dwarf5 type units.

Fourth of 5 small patches to fix various breakpad issues found
while testing dump_syms on DWARF v5 in ChromeOS.

Dwarfv5 adds many new Type Unit sections to debug information. Since
these only contain type information, they are of no interest to
dump_syms.  This CL gets dump_syms to skip trying to process the
type unit sections.  Without this CL, dump_syms takes ~ 3 hours to
process the DWARF v5 Chrome binary.  With this CL, dump_syms takes
~ 8 minutes to process the DWARF v5 Chrome binary (about the same
time as it takes for DWARF v4).

This CL also adds a test case to verify that type units are being
skipped.

Change-Id: Ie0bb2d675718f7041b8e9b3186ed44f80a3ad39c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2634549
Reviewed-by: Sterling Augustine <saugustine@google.com>
This commit is contained in:
Caroline Tice 2021-01-16 17:05:32 -08:00 committed by Sterling Augustine
parent 646f0f4920
commit 3c528da94c
4 changed files with 128 additions and 63 deletions

View file

@ -714,6 +714,9 @@ class CompilationUnit {
// associated with the skeleton compilation unit.
bool is_split_dwarf_;
// Flag indicating if it's a Type Unit (only applicable to DWARF v5).
bool is_type_unit_;
// The value of the DW_AT_GNU_dwo_id attribute, if any.
uint64_t dwo_id_;