diff options
Diffstat (limited to 'contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp')
-rw-r--r-- | contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp b/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp index 05923d7..f2f3cad 100644 --- a/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp +++ b/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp @@ -105,9 +105,13 @@ StackFrameList::GetCurrentInlinedDepth () void StackFrameList::ResetCurrentInlinedDepth () { + Mutex::Locker locker (m_mutex); + if (m_show_inlined_frames) { GetFramesUpTo(0); + if (m_frames.size() == 0) + return; if (!m_frames[0]->IsInlined()) { m_current_inlined_depth = UINT32_MAX; @@ -362,8 +366,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 { @@ -457,9 +461,9 @@ StackFrameList::GetFramesUpTo(uint32_t end_idx) } #if defined (DEBUG_STACK_FRAMES) - s.PutCString("\n\nNew frames:\n"); - Dump (&s); - s.EOL(); + s.PutCString("\n\nNew frames:\n"); + Dump (&s); + s.EOL(); #endif } else |