diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Internal/ManagedCallback.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Internal/ManagedCallback.cs index 0962c4d717..c6c45826a0 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Internal/ManagedCallback.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Internal/ManagedCallback.cs @@ -97,11 +97,12 @@ namespace Debugger debugger.TraceMessage(" - stepper info: " + stepper.ToString()); - // There is a race condition: The tracking step out can be triggered after stepping step over - //thread.CheckExpirationOfFunctions(); - thread.Steppers.Remove(stepper); stepper.OnStepComplete(); + + // There is a race condition: The tracking step out can be triggered after stepping step over + thread.CheckExpirationOfFunctions(); + if (stepper.PauseWhenComplete) { if (debugger.SelectedThread.LastFunction.HasSymbols) { ExitCallback_Paused(); diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs index b0d9538b78..6bbc42b713 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs @@ -289,6 +289,7 @@ namespace Debugger } foreach(Function f in expiredFunctions) { + debugger.TraceMessage("Function " + f.Name + " expired. (check)"); f.OnExpired(EventArgs.Empty); } }