diff options
author | Tamas Berghammer <tberghammer@google.com> | 2015-09-07 09:58:09 +0000 |
---|---|---|
committer | Tamas Berghammer <tberghammer@google.com> | 2015-09-07 09:58:09 +0000 |
commit | 25b9f7ebd382a2b79b80c25efdd10cf26b7f3ad1 (patch) | |
tree | 011681cd6fa3cce69dda6479513eaa1de72cfd2d /lldb/source/Target/StackFrameList.cpp | |
parent | b5d5ead8c9f7d99c0e69d17693c57ede0cc181b7 (diff) | |
download | bcm5719-llvm-25b9f7ebd382a2b79b80c25efdd10cf26b7f3ad1.tar.gz bcm5719-llvm-25b9f7ebd382a2b79b80c25efdd10cf26b7f3ad1.zip |
Use eAddressClassCode for address lookup for opcodes for stack frames
It is required because of the following edge case on arm:
bx <addr> Non-tail call in a no return function
[data-pool] Marked with $d mapping symbol
The return address of the function call will point to the data pool but
we have to treat it as code so the StackFrame can calculate the symbols
correctly.
Differential revision: http://reviews.llvm.org/D12556
llvm-svn: 246958
Diffstat (limited to 'lldb/source/Target/StackFrameList.cpp')
-rw-r--r-- | lldb/source/Target/StackFrameList.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lldb/source/Target/StackFrameList.cpp b/lldb/source/Target/StackFrameList.cpp index 05923d70ce4..b93e80806de 100644 --- a/lldb/source/Target/StackFrameList.cpp +++ b/lldb/source/Target/StackFrameList.cpp @@ -362,8 +362,8 @@ StackFrameList::GetFramesUpTo(uint32_t end_idx) // adjustment it will point to an other section. In that case resolve the // address again to the correct section plus offset form. TargetSP target = m_thread.CalculateTarget(); - addr_t load_addr = curr_frame_address.GetOpcodeLoadAddress(target.get()); - curr_frame_address.SetOpcodeLoadAddress(load_addr - 1, target.get()); + addr_t load_addr = curr_frame_address.GetOpcodeLoadAddress(target.get(), eAddressClassCode); + curr_frame_address.SetOpcodeLoadAddress(load_addr - 1, target.get(), eAddressClassCode); } else { |