diff options
author | Greg Clayton <gclayton@apple.com> | 2010-09-03 17:10:42 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2010-09-03 17:10:42 +0000 |
commit | 2cad65a595008e4c0b17ac2cfb59cadef87bfc38 (patch) | |
tree | c36d15c02e48217f109d222a05d3b4300359141e /lldb/source/Target/StackFrame.cpp | |
parent | 90ca316167817d05e22014d28f1e886e4a9d4a7a (diff) | |
download | bcm5719-llvm-2cad65a595008e4c0b17ac2cfb59cadef87bfc38.tar.gz bcm5719-llvm-2cad65a595008e4c0b17ac2cfb59cadef87bfc38.zip |
Fixed the StackFrame to correctly resolve the StackID's SymbolContextScope.
Added extra logging for stepping.
Fixed an issue where cached stack frame data could be lost between runs when
the thread plans read a stack frame.
llvm-svn: 112973
Diffstat (limited to 'lldb/source/Target/StackFrame.cpp')
-rw-r--r-- | lldb/source/Target/StackFrame.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lldb/source/Target/StackFrame.cpp b/lldb/source/Target/StackFrame.cpp index b310f25e995..5237bbe63be 100644 --- a/lldb/source/Target/StackFrame.cpp +++ b/lldb/source/Target/StackFrame.cpp @@ -163,7 +163,7 @@ StackFrame::GetStackID() if (m_flags.IsClear (RESOLVED_FRAME_ID_SYMBOL_SCOPE)) { - if (m_id.GetSymbolContextScope () == NULL) + if (m_id.GetSymbolContextScope ()) { m_flags.Set (RESOLVED_FRAME_ID_SYMBOL_SCOPE); } @@ -624,7 +624,8 @@ StackFrame::UpdateCurrentFrameFromPreviousFrame (StackFrame &prev_frame) void StackFrame::UpdatePreviousFrameFromCurrentFrame (StackFrame &curr_frame) { - assert (GetStackID() == curr_frame.GetStackID()); // TODO: remove this after some testing + assert (GetStackID() == curr_frame.GetStackID()); // TODO: remove this after some testing + m_id.SetPC (curr_frame.m_id.GetPC()); // Update the Stack ID PC value assert (&m_thread == &curr_frame.m_thread); m_frame_index = curr_frame.m_frame_index; m_unwind_frame_index = curr_frame.m_unwind_frame_index; @@ -642,3 +643,14 @@ StackFrame::UpdatePreviousFrameFromCurrentFrame (StackFrame &curr_frame) } +bool +StackFrame::HasCachedData () const +{ + if (m_variable_list_sp.get()) + return true; + if (m_variable_list_value_objects.GetSize() > 0) + return true; + if (!m_disassembly.GetString().empty()) + return true; + return false; +}
\ No newline at end of file |