|
|
@ -71,6 +71,8 @@ namespace Debugger |
|
|
|
{ |
|
|
|
{ |
|
|
|
EnterCallback(pausedReason, name, pThread.Process); |
|
|
|
EnterCallback(pausedReason, name, pThread.Process); |
|
|
|
debugger.SelectedProcess.SelectedThread = debugger.GetThread(pThread); |
|
|
|
debugger.SelectedProcess.SelectedThread = debugger.GetThread(pThread); |
|
|
|
|
|
|
|
// Remove expired functions from the callstack cache
|
|
|
|
|
|
|
|
debugger.SelectedProcess.SelectedThread.CheckExpirationOfFunctions(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void ExitCallback_Continue() |
|
|
|
void ExitCallback_Continue() |
|
|
@ -115,9 +117,6 @@ namespace Debugger |
|
|
|
thread.Steppers.Remove(stepper); |
|
|
|
thread.Steppers.Remove(stepper); |
|
|
|
stepper.OnStepComplete(); |
|
|
|
stepper.OnStepComplete(); |
|
|
|
|
|
|
|
|
|
|
|
// There is a race condition: The tracking step out can be triggered after stepping step over
|
|
|
|
|
|
|
|
thread.CheckExpirationOfFunctions(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (stepper.PauseWhenComplete) { |
|
|
|
if (stepper.PauseWhenComplete) { |
|
|
|
if (debugger.SelectedThread.LastFunction.HasSymbols) { |
|
|
|
if (debugger.SelectedThread.LastFunction.HasSymbols) { |
|
|
|
ExitCallback_Paused(); |
|
|
|
ExitCallback_Paused(); |
|
|
|