[Lldb-commits] [lldb] r163244 - /lldb/trunk/source/Target/Thread.cpp

Jim Ingham jingham at apple.com
Wed Sep 5 14:12:49 PDT 2012

Author: jingham
Date: Wed Sep  5 16:12:49 2012
New Revision: 163244

URL: http://llvm.org/viewvc/llvm-project?rev=163244&view=rev
Move calculating the CurrentInlinedDepth to AFTER the synchronous breakpoint callback gets a chance to run.
If the stopped event comes in with the Restarted bit set, don't try to hand that to the plans, but just return ShouldStop = false.  There's nothing useful the plans can do, since the target is already running.


Modified: lldb/trunk/source/Target/Thread.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Thread.cpp?rev=163244&r1=163243&r2=163244&view=diff
--- lldb/trunk/source/Target/Thread.cpp (original)
+++ lldb/trunk/source/Target/Thread.cpp Wed Sep  5 16:12:49 2012
@@ -417,9 +417,6 @@
         return false;
-    // Adjust the stack frame's current inlined depth if it is needed.
-    GetStackFrameList()->CalculateCurrentInlinedDepth();
     if (log)
         log->Printf ("Thread::%s for tid = 0x%4.4llx, pc = 0x%16.16llx", 
@@ -447,6 +444,13 @@
         return false;
+    // If we've already been restarted, don't query the plans since the state they would examine is not current.
+    if (Process::ProcessEventData::GetRestartedFromEvent(event_ptr))
+        return false;
+    // Before the plans see the state of the world, calculate the current inlined depth.
+    GetStackFrameList()->CalculateCurrentInlinedDepth();
     // If the base plan doesn't understand why we stopped, then we have to find a plan that does.
     // If that plan is still working, then we don't need to do any more work.  If the plan that explains 
     // the stop is done, then we should pop all the plans below it, and pop it, and then let the plans above it decide

More information about the lldb-commits mailing list