diff options
author | Felipe de Azevedo Piovezan <fpiovezan@apple.com> | 2023-05-11 09:14:52 -0400 |
---|---|---|
committer | Felipe de Azevedo Piovezan <fpiovezan@apple.com> | 2023-05-12 08:48:31 -0400 |
commit | 81be68062f49dccfb0c28b98f04d88b5343c4ae6 (patch) | |
tree | 39aa3fe9e504e4ef25ecb985df61e87b75246786 /lldb | |
parent | ee75422ce1854208b12eb114e62ff9e3042570c7 (diff) | |
download | llvm-81be68062f49dccfb0c28b98f04d88b5343c4ae6.tar.gz |
[lldb][nfc] Simplify DebugRanges class
Most of the code changed here dates back to 2010, when LLDB was first
introduced upstream, as such it benefits from a slight cleanup.
The method "dump" is not used anywhere nor is it tested, so this commit removes
it.
The "findRanges" method returns a boolean which is never checked and indicates
whether the method found anything/assigned a range map to the out parameter.
This commit folds the out parameter into the return type of the method.
A handful of typedefs were also never used and therefore removed.
Differential Revision: https://reviews.llvm.org/D150363
Diffstat (limited to 'lldb')
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp | 63 | ||||
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h | 13 | ||||
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp | 4 |
3 files changed, 16 insertions, 64 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp index 6a0f11d2a1c4..d3598de5b3d3 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp @@ -8,7 +8,6 @@ #include "DWARFDebugRanges.h" #include "DWARFUnit.h" -#include "lldb/Utility/Stream.h" using namespace lldb_private; @@ -72,55 +71,17 @@ bool DWARFDebugRanges::Extract(DWARFContext &context, return range_offset != *offset_ptr; } -void DWARFDebugRanges::Dump(Stream &s, - const DWARFDataExtractor &debug_ranges_data, - lldb::offset_t *offset_ptr, - dw_addr_t cu_base_addr) { - uint32_t addr_size = s.GetAddressByteSize(); - - dw_addr_t base_addr = cu_base_addr; - while ( - debug_ranges_data.ValidOffsetForDataOfSize(*offset_ptr, 2 * addr_size)) { - dw_addr_t begin = debug_ranges_data.GetMaxU64(offset_ptr, addr_size); - dw_addr_t end = debug_ranges_data.GetMaxU64(offset_ptr, addr_size); - // Extend 4 byte addresses that consists of 32 bits of 1's to be 64 bits of - // ones - if (begin == 0xFFFFFFFFull && addr_size == 4) - begin = LLDB_INVALID_ADDRESS; - - s.Indent(); - if (begin == 0 && end == 0) { - s.PutCString(" End"); - break; - } else if (begin == LLDB_INVALID_ADDRESS) { - // A base address selection entry - base_addr = end; - DumpAddress(s.AsRawOstream(), base_addr, sizeof(dw_addr_t), - " Base address = "); - } else { - // Convert from offset to an address - dw_addr_t begin_addr = begin + base_addr; - dw_addr_t end_addr = end + base_addr; - - DumpAddressRange(s.AsRawOstream(), begin_addr, end_addr, - sizeof(dw_addr_t), nullptr); - } - } -} - -bool DWARFDebugRanges::FindRanges(const DWARFUnit *cu, - dw_offset_t debug_ranges_offset, - DWARFRangeList &range_list) const { +DWARFRangeList +DWARFDebugRanges::FindRanges(const DWARFUnit *cu, + dw_offset_t debug_ranges_offset) const { dw_addr_t debug_ranges_address = cu->GetRangesBase() + debug_ranges_offset; - range_map_const_iterator pos = m_range_map.find(debug_ranges_address); - if (pos != m_range_map.end()) { - range_list = pos->second; - - // All DW_AT_ranges are relative to the base address of the compile - // unit. We add the compile unit base address to make sure all the - // addresses are properly fixed up. - range_list.Slide(cu->GetBaseAddress()); - return true; - } - return false; + auto pos = m_range_map.find(debug_ranges_address); + DWARFRangeList ans = + pos == m_range_map.end() ? DWARFRangeList() : pos->second; + + // All DW_AT_ranges are relative to the base address of the compile + // unit. We add the compile unit base address to make sure all the + // addresses are properly fixed up. + ans.Slide(cu->GetBaseAddress()); + return ans; } diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h index b587845a67d9..5d5ddada6c2f 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h @@ -22,21 +22,14 @@ public: DWARFDebugRanges(); void Extract(lldb_private::DWARFContext &context); - bool FindRanges(const DWARFUnit *cu, dw_offset_t debug_ranges_offset, - DWARFRangeList &range_list) const; - - static void Dump(lldb_private::Stream &s, - const lldb_private::DWARFDataExtractor &debug_ranges_data, - lldb::offset_t *offset_ptr, dw_addr_t cu_base_addr); + DWARFRangeList FindRanges(const DWARFUnit *cu, + dw_offset_t debug_ranges_offset) const; protected: bool Extract(lldb_private::DWARFContext &context, lldb::offset_t *offset_ptr, DWARFRangeList &range_list); - typedef std::map<dw_offset_t, DWARFRangeList> range_map; - typedef range_map::iterator range_map_iterator; - typedef range_map::const_iterator range_map_const_iterator; - range_map m_range_map; + std::map<dw_offset_t, DWARFRangeList> m_range_map; }; #endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEBUGRANGES_H diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp index bff24b1c8c0c..91be5e5b7bb6 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp @@ -1032,9 +1032,7 @@ DWARFUnit::FindRnglistFromOffset(dw_offset_t offset) { if (!debug_ranges) return llvm::make_error<llvm::object::GenericBinaryError>( "No debug_ranges section"); - DWARFRangeList ranges; - debug_ranges->FindRanges(this, offset, ranges); - return ranges; + return debug_ranges->FindRanges(this, offset); } if (!GetRnglistTable()) |