dump_syms: handle forward reference DWARF attributes

DW_AT_specification and DW_AT_abstract_origin attributes carry
references to other DIEs. Nothing prevents the DIEs referred to from
appearing later in .debug_info than the DIE containing the referring
attribute, but dump_syms incompletly implemented its handling of these
references, and was only able to resolve them when they were
back-references.

This will fix the chronic warnings produced by dump_syms of the form:

dump_syms: the DIE at offset <offset> has a {DW_AT_specification,
DW_AT_abstract_origin} attribute referring to the die at offset
<offset>, which either was not marked as {a declaration, an inline}, or
comes later in the file

Patch by Greg Clayton

Bug: breakpad:441
Change-Id: I98957d64a234c22afb6d0153f1bdc09e6a600b1d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/1946706
Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Mark Mentovai 2019-12-02 13:45:36 -05:00
parent 1f1d950d6a
commit 47cd498384
2 changed files with 35 additions and 13 deletions

View file

@ -106,7 +106,7 @@ class Module {
}
// The function's name.
const string name;
string name;
// The start address and the address ranges covered by the function.
const Address address;