[Lldb-commits] [PATCH] D52375: [WIP] Support multiple compile units per OSO entry in SymbolFileDWARFDebugMap

Greg Clayton via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Sep 24 15:14:55 PDT 2018

clayborg added inline comments.

Comment at: source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp:431
     const size_t num_ranges =
-        die->GetAttributeAddressRanges(dwarf, this, ranges, false);
+        die->GetAttributeAddressRanges(dwarf, this, ranges, check_hi_lo_pc);
     if (num_ranges > 0) {
sgraenitz wrote:
> @JDevlieghere Thanks for your feedback!
> @everyone:
> This parameter is, actually, one of the key questions in this review: If there is no DW_AT_range attribute for the compile unit, can we safely fall back to DW_AT_low/high_pc?
I have seen DWARF where the DW_AT_ranges is incorrect and I have seen cases where the low pc is just set to zero and the high pc is set to the max address. So you might have many overlapping ranges between different CUs in the latter case. We might need to be more vigilant with high/low pc values though and that was the reason that we previously ignored high/low pc values. If the stuff is missing, it should index the DWARF and generate the address ranges table manually right? What was the reasoning behind this change?


More information about the lldb-commits mailing list