aboutsummaryrefslogtreecommitdiff
path: root/src/common/dwarf_cu_to_module.cc
diff options
context:
space:
mode:
authorSterling Augustine <saugustine@google.com>2020-06-23 12:42:27 -0700
committerSterling Augustine <saugustine@google.com>2020-06-24 20:39:58 +0000
commit72c118f4a6dfb954a80d2f2b9a1794e13b0a8ebd (patch)
tree51858f9201d6adec0e0c0aa263b642268a643e0a /src/common/dwarf_cu_to_module.cc
parentAdd and handle new dwarf5 string-related forms. (diff)
downloadbreakpad-72c118f4a6dfb954a80d2f2b9a1794e13b0a8ebd.tar.xz
Add and handle various dwarf5 addrx forms.
Given the almost nonexistent direct dwarfreader tests, I think the best way to test these dwarf5 additions will be to add a full dwarf5 compilation unit similar to the ones used incidentally in the other tests. But I can't do that until enough dwarf5 is correctly implemented. Change-Id: I3418bda7212ae85c4b67232a2ab8fea9b9ca5d42 Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2258838 Reviewed-by: Mark Mentovai <mark@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
Diffstat (limited to 'src/common/dwarf_cu_to_module.cc')
-rw-r--r--src/common/dwarf_cu_to_module.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/common/dwarf_cu_to_module.cc b/src/common/dwarf_cu_to_module.cc
index d6e79769..24bbf83b 100644
--- a/src/common/dwarf_cu_to_module.cc
+++ b/src/common/dwarf_cu_to_module.cc
@@ -593,7 +593,12 @@ void DwarfCUToModule::FuncHandler::Finish() {
if (!ranges_) {
// Make high_pc_ an address, if it isn't already.
if (high_pc_form_ != dwarf2reader::DW_FORM_addr &&
- high_pc_form_ != dwarf2reader::DW_FORM_GNU_addr_index) {
+ high_pc_form_ != dwarf2reader::DW_FORM_GNU_addr_index &&
+ high_pc_form_ != dwarf2reader::DW_FORM_addrx &&
+ high_pc_form_ != dwarf2reader::DW_FORM_addrx1 &&
+ high_pc_form_ != dwarf2reader::DW_FORM_addrx2 &&
+ high_pc_form_ != dwarf2reader::DW_FORM_addrx3 &&
+ high_pc_form_ != dwarf2reader::DW_FORM_addrx4) {
high_pc_ += low_pc_;
}