aboutsummaryrefslogtreecommitdiff
path: root/src/common/dwarf/dwarf2reader.h
diff options
context:
space:
mode:
authorSterling Augustine <saugustine@google.com>2020-06-25 14:55:48 -0700
committerSterling Augustine <saugustine@google.com>2020-06-25 21:56:34 +0000
commit8efe0f1c3b45b79bab3046c0776283a2bdf6193f (patch)
treebcbd90467782fb0c0e6758414c92bc50c96008ef /src/common/dwarf/dwarf2reader.h
parentAdd and handle various dwarf5 addrx forms. (diff)
downloadbreakpad-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.h21
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_;