diff options
author | Sterling Augustine <saugustine@google.com> | 2020-06-25 14:55:48 -0700 |
---|---|---|
committer | Sterling Augustine <saugustine@google.com> | 2020-06-25 21:56:34 +0000 |
commit | 8efe0f1c3b45b79bab3046c0776283a2bdf6193f (patch) | |
tree | bcbd90467782fb0c0e6758414c92bc50c96008ef /src/common/dwarf/dwarf2reader.h | |
parent | Add and handle various dwarf5 addrx forms. (diff) | |
download | breakpad-8efe0f1c3b45b79bab3046c0776283a2bdf6193f.tar.xz |
Read dwarf5 compilation unit headers.
Change-Id: Ia85b2fb7b3cb821ad353a0003223d8b8465e792d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2265259
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Diffstat (limited to 'src/common/dwarf/dwarf2reader.h')
-rw-r--r-- | src/common/dwarf/dwarf2reader.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/common/dwarf/dwarf2reader.h b/src/common/dwarf/dwarf2reader.h index 593f5c0c..cd91b107 100644 --- a/src/common/dwarf/dwarf2reader.h +++ b/src/common/dwarf/dwarf2reader.h @@ -411,6 +411,21 @@ class CompilationUnit { // Reads the DWARF2/3 abbreviations for this compilation unit void ReadAbbrevs(); + // Read the abbreviation offset for this compilation unit + size_t ReadAbbrevOffset(const uint8_t* headerptr); + + // Read the address size for this compilation unit + size_t ReadAddressSize(const uint8_t* headerptr); + + // Read the DWO id from a split or skeleton compilation unit header + size_t ReadDwoId(const uint8_t* headerptr); + + // Read the type signature from a type or split type compilation unit header + size_t ReadTypeSignature(const uint8_t* headerptr); + + // Read the DWO id from a split or skeleton compilation unit header + size_t ReadTypeOffset(const uint8_t* headerptr); + // Processes a single DIE for this compilation unit and return a new // pointer just past the end of it const uint8_t *ProcessDIE(uint64_t dieoffset, @@ -603,6 +618,12 @@ class CompilationUnit { // The value of the DW_AT_GNU_dwo_id attribute, if any. uint64_t dwo_id_; + // The value of the DW_AT_GNU_type_signature attribute, if any. + uint64_t type_signature_; + + // The value of the DW_AT_GNU_type_offset attribute, if any. + size_t type_offset_; + // The value of the DW_AT_GNU_dwo_name attribute, if any. const char* dwo_name_; |