summaryrefslogtreecommitdiff
path: root/lldb
diff options
context:
space:
mode:
authorFelipe de Azevedo Piovezan <fpiovezan@apple.com>2023-05-11 09:14:52 -0400
committerFelipe de Azevedo Piovezan <fpiovezan@apple.com>2023-05-12 08:48:31 -0400
commit81be68062f49dccfb0c28b98f04d88b5343c4ae6 (patch)
tree39aa3fe9e504e4ef25ecb985df61e87b75246786 /lldb
parentee75422ce1854208b12eb114e62ff9e3042570c7 (diff)
downloadllvm-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.cpp63
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h13
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp4
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())