forked from OSchip/llvm-project
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. llvm-svn: 163244
This commit is contained in:
parent
994f4040f5
commit
bad39e47cd
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue