[Lldb-commits] [lldb] 81be680 - [lldb][nfc] Simplify DebugRanges class

Felipe de Azevedo Piovezan via lldb-commits lldb-commits at lists.llvm.org
Fri May 12 05:50:38 PDT 2023


Author: Felipe de Azevedo Piovezan
Date: 2023-05-12T08:48:31-04:00
New Revision: 81be68062f49dccfb0c28b98f04d88b5343c4ae6

URL: https://github.com/llvm/llvm-project/commit/81be68062f49dccfb0c28b98f04d88b5343c4ae6
DIFF: https://github.com/llvm/llvm-project/commit/81be68062f49dccfb0c28b98f04d88b5343c4ae6.diff

LOG: [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

Added: 
    

Modified: 
    lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp
    lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h
    lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp
index 6a0f11d2a1c49..d3598de5b3d31 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 b587845a67d91..5d5ddada6c2f9 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h
@@ -22,21 +22,14 @@ class DWARFDebugRanges {
   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 bff24b1c8c0cc..91be5e5b7bb6f 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())


        


More information about the lldb-commits mailing list