[llvm-branch-commits] [GSYM] Include end_sequence debug_line rows in Dwarf transform (PR #90535)

Greg Clayton via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed May 1 09:50:28 PDT 2024


================
@@ -321,7 +321,10 @@ static void convertFunctionLineTable(OutputAggregator &Out, CUInfo &CUI,
       StartAddress, object::SectionedAddress::UndefSection};
 
 
-  if (!CUI.LineTable->lookupAddressRange(SecAddress, RangeSize, RowVector)) {
+  // end_sequence markers can be located at RangeSize position,
+  // lookupAddressRange search up to RangeSize not inclusive, to include
+  // end_sequence markers it is necessary to lookup until RangeSize+1
+  if (!CUI.LineTable->lookupAddressRange(SecAddress, RangeSize + 1, RowVector)) {
----------------
clayborg wrote:

If a line table has two functions that share the same address range within the same line table, this call currently will return only matches from the first sequence that contains an address. So we won't get all rows from all sequences that match. I checked the `DWARFDebugLine::LineTable::lookupAddressRangeImpl(...)` function to verify.

https://github.com/llvm/llvm-project/pull/90535


More information about the llvm-branch-commits mailing list