https://github.com/ZequanWu created https://github.com/llvm/llvm-project/pull/91343
Dwarf 5 says "There is no requirement that the entries be ordered in any particular way" in 2.17.3 Non-Contiguous Address Ranges for rnglist. Some places assume the ranges are already sorted but it's not. This fixes it. >From eb1b2faa457522e7c11fbd69acea7f7d736c7c74 Mon Sep 17 00:00:00 2001 From: Zequan Wu <zequa...@google.com> Date: Tue, 7 May 2024 10:52:59 -0400 Subject: [PATCH] [lldb][DWARF] Sort ranges list in dwarf 5. --- lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp | 1 + lldb/test/Shell/SymbolFile/DWARF/x86/debug_rnglists.s | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp index dabc595427df..3a57ec970b07 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp @@ -1062,6 +1062,7 @@ DWARFUnit::FindRnglistFromOffset(dw_offset_t offset) { ranges.Append(DWARFRangeList::Entry(llvm_range.LowPC, llvm_range.HighPC - llvm_range.LowPC)); } + ranges.Sort(); return ranges; } diff --git a/lldb/test/Shell/SymbolFile/DWARF/x86/debug_rnglists.s b/lldb/test/Shell/SymbolFile/DWARF/x86/debug_rnglists.s index 89b5d94c68c3..af8a1796f3ab 100644 --- a/lldb/test/Shell/SymbolFile/DWARF/x86/debug_rnglists.s +++ b/lldb/test/Shell/SymbolFile/DWARF/x86/debug_rnglists.s @@ -124,12 +124,12 @@ lookup_rnglists2: .Lrnglists_table_base0: .long .Ldebug_ranges0-.Lrnglists_table_base0 .Ldebug_ranges0: - .byte 4 # DW_RLE_offset_pair - .uleb128 .Lblock1_begin-rnglists # starting offset - .uleb128 .Lblock1_end-rnglists # ending offset .byte 4 # DW_RLE_offset_pair .uleb128 .Lblock2_begin-rnglists # starting offset .uleb128 .Lblock2_end-rnglists # ending offset + .byte 4 # DW_RLE_offset_pair + .uleb128 .Lblock1_begin-rnglists # starting offset + .uleb128 .Lblock1_end-rnglists # ending offset .byte 0 # DW_RLE_end_of_list .Ldebug_rnglist_table_end0: _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits