summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Thread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Target/Thread.cpp')
-rw-r--r--lldb/source/Target/Thread.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index 9de1691cd47..2d6c00cf1bb 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -417,9 +417,6 @@ Thread::ShouldStop (Event* event_ptr)
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 @@ Thread::ShouldStop (Event* event_ptr)
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
OpenPOWER on IntegriCloud