From d6e64484645a817aa8d84e85c64d6ae525dc9f17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Srbeck=C3=BD?= Date: Thu, 10 Jan 2008 22:15:47 +0000 Subject: [PATCH] Forum-20456 (solodev): Only non-expired StackFrame can be selected. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2808 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Src/Debugger/Process-StateControl.cs | 3 +++ .../Debugger/Debugger.Core/Project/Src/Threads/Thread.cs | 9 +++++---- 2 files changed, 8 insertions(+), 4 deletions(-) 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; } }