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 | llvm-2cad65a595008e4c0b17ac2cfb59cadef87bfc38.tar.gz llvm-2cad65a595008e4c0b17ac2cfb59cadef87bfc38.tar.bz2 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 b310f25e9953..5237bbe63be5 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 |
