diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Process-StateControl.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Process-StateControl.cs index b008bb1742..3903c9623b 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Process-StateControl.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Process-StateControl.cs @@ -151,16 +151,19 @@ namespace Debugger public void StepInto() { + AssertPaused(); SelectedStackFrame.StepInto(); } public void StepOver() { + AssertPaused(); SelectedStackFrame.StepOver(); } public void StepOut() { + AssertPaused(); SelectedStackFrame.StepOut(); } } 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 8066240eab..38f5f77061 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 @@ -33,7 +33,7 @@ namespace Debugger bool hasExpired = false; bool nativeThreadExited = false; - StackFrame selectedFunction; + StackFrame selectedStackFrame; public event EventHandler Expired; public event EventHandler NativeThreadExited; @@ -265,14 +265,15 @@ namespace Debugger [Debugger.Tests.ToStringOnly] public StackFrame SelectedStackFrame { get { - return selectedFunction; + // Forum-20456: Do not return expired StackFrame + if (selectedStackFrame.HasExpired) return null; + return selectedStackFrame; } set { if (value != null && !value.HasSymbols) { throw new DebuggerException("SelectedFunction must have symbols"); } - - selectedFunction = value; + selectedStackFrame = value; } }