[Lldb-commits] [PATCH] D87626: Fix .debug_aranges parsing.

Greg Clayton via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Sep 14 12:27:13 PDT 2020


clayborg created this revision.
clayborg added reviewers: labath, aprantl, JDevlieghere.
Herald added a project: LLDB.
clayborg requested review of this revision.

Code was added that used llvm error checking to parse .debug_aranges, but the error check after parsing the DWARFDebugArangesSet was reversed and was causing no error to be returned with no valid address ranges being actually used. This meant we always would fall back onto creating out own address ranges by parsing the compile unit's ranges. This was causing problems for cases where the DW_TAG_compile_unit had a single address range by using a DW_AT_low_pc and DW_AT_high_pc attribute pair (not using a DW_AT_ranges attribute), but the .debug_aranges had correct split ranges. In this case we would end up using the single range for the compile unit that encompassed all of the ranges from the .debug_aranges section and would cause address resolving issues in LLDB where address lookups would fail for certain addresses.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D87626

Files:
  lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp
  lldb/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D87626.291649.patch
Type: text/x-patch
Size: 9784 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20200914/3f48e35e/attachment.bin>


More information about the lldb-commits mailing list