================ @@ -243,25 +243,15 @@ bool Block::GetRangeContainingAddress(const Address &addr, AddressRange &range) { Function *function = CalculateSymbolContextFunction(); if (function) { - const AddressRange &func_range = function->GetAddressRange(); - if (addr.GetModule() == func_range.GetBaseAddress().GetModule()) { - const addr_t file_addr = addr.GetFileAddress(); - const addr_t func_file_addr = - func_range.GetBaseAddress().GetFileAddress(); - if (file_addr >= func_file_addr && - file_addr < func_file_addr + func_range.GetByteSize()) { - addr_t offset = file_addr - func_file_addr; - - const Range *range_ptr = m_ranges.FindEntryThatContains(offset); - - if (range_ptr) { - range.GetBaseAddress() = - Address(func_file_addr + range_ptr->GetRangeBase(), - addr.GetModule()->GetSectionList()); - range.SetByteSize(range_ptr->GetByteSize()); - return true; - } - } + if (uint32_t idx = GetRangeIndexContainingAddress(addr); + idx != UINT32_MAX) { + const Range *range_ptr = m_ranges.GetEntryAtIndex(idx); + assert(range_ptr); + + range.GetBaseAddress() = function->GetAddress(); + range.GetBaseAddress().Slide(range_ptr->GetRangeBase()); ---------------- DavidSpickett wrote:
`function->GetAddress()` returns the address relative to the start of the range, then you slide that address up to get the absolute address of the function, right? https://github.com/llvm/llvm-project/pull/124931 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits