aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Target/StackFrame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Target/StackFrame.cpp')
-rw-r--r--lldb/source/Target/StackFrame.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/lldb/source/Target/StackFrame.cpp b/lldb/source/Target/StackFrame.cpp
index d92b7d8..bab36e9 100644
--- a/lldb/source/Target/StackFrame.cpp
+++ b/lldb/source/Target/StackFrame.cpp
@@ -1783,15 +1783,11 @@ lldb::ValueObjectSP StackFrame::GuessValueForRegisterAndOffset(ConstString reg,
return ValueObjectSP();
}
- AddressRange pc_range = function->GetAddressRange();
-
- if (GetFrameCodeAddress().GetFileAddress() <
- pc_range.GetBaseAddress().GetFileAddress() ||
- GetFrameCodeAddress().GetFileAddress() -
- pc_range.GetBaseAddress().GetFileAddress() >=
- pc_range.GetByteSize()) {
+ AddressRange unused_range;
+ if (!function->GetRangeContainingLoadAddress(
+ GetFrameCodeAddress().GetLoadAddress(target_sp.get()), *target_sp,
+ unused_range))
return ValueObjectSP();
- }
const char *plugin_name = nullptr;
const char *flavor = nullptr;
@@ -1799,8 +1795,8 @@ lldb::ValueObjectSP StackFrame::GuessValueForRegisterAndOffset(ConstString reg,
const char *features = nullptr;
const bool force_live_memory = true;
DisassemblerSP disassembler_sp = Disassembler::DisassembleRange(
- target_arch, plugin_name, flavor, cpu, features, *target_sp, pc_range,
- force_live_memory);
+ target_arch, plugin_name, flavor, cpu, features, *target_sp,
+ function->GetAddressRanges(), force_live_memory);
if (!disassembler_sp || !disassembler_sp->GetInstructionList().GetSize()) {
return ValueObjectSP();