aboutsummaryrefslogtreecommitdiff
path: root/src/common/dwarf/dwarf2reader.h
diff options
context:
space:
mode:
authorSterling Augustine <saugustine@google.com>2019-12-13 16:54:50 -0800
committerMark Mentovai <mark@chromium.org>2019-12-19 04:44:17 +0000
commitdbd454dbe47e584571388fc3533193416bdce67f (patch)
tree21cdd287ee7b118de82efc2d22b423b699d8ab8b /src/common/dwarf/dwarf2reader.h
parentAdd new dwarf 5 enums, plus some dwarf4 enums. (diff)
downloadbreakpad-dbd454dbe47e584571388fc3533193416bdce67f.tar.xz
Add dwarf5 compilation-unit header handling.
Fix a small typo in DW_LANG__Python. Change-Id: I1fe54e501a5e8da5057ecc9ac00c7e7259a9bb3f Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/1967975 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 902d9ef1..6f1b1a4d 100644
--- a/src/common/dwarf/dwarf2reader.h
+++ b/src/common/dwarf/dwarf2reader.h
@@ -410,6 +410,21 @@ class CompilationUnit {
// Reads the DWARF2/3 abbreviations for this compilation unit
void ReadAbbrevs();
+ // Read the abbreviation offset for this compilation unit
+ int ReadAbbrevOffset(const uint8_t *headerptr);
+
+ // Read the address size for this compilation unit
+ int ReadAddressSize(const uint8_t *headerptr);
+
+ // Read the DWO id from a split or skeleton compilation unit header
+ int ReadDwoId(const uint8_t *headerptr);
+
+ // Read the type signature from a type or split type compilation unit header
+ int ReadTypeSignature(const uint8_t *headerptr);
+
+ // Read the DWO id from a split or skeleton compilation unit header
+ int 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 dieoffset,
@@ -564,6 +579,12 @@ class CompilationUnit {
// The value of the DW_AT_GNU_dwo_id attribute, if any.
uint64 dwo_id_;
+ // The value of the DW_AT_GNU_type_signature attribute, if any.
+ uint64 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_;