Browse Source

Fixed Forum-8642(asl): Do not evaluate when native frame is on top of stack

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1534 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 19 years ago
parent
commit
154a9b99ec
  1. 1
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/NDebugger.cs
  2. 7
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs
  3. 9
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Evals/Eval.cs

1
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/NDebugger.cs

@ -135,6 +135,7 @@ namespace Debugger @@ -135,6 +135,7 @@ namespace Debugger
pauseSession = null;
pendingEvalsCollection.Clear();
evaluating = false;
TraceMessage("Reset done");

7
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs

@ -330,5 +330,12 @@ namespace Debugger @@ -330,5 +330,12 @@ namespace Debugger
return null;
}
}
public bool IsLastFunctionNative {
get {
process.AssertPaused();
return corThread.ActiveChain.IsManaged == 0;
}
}
}
}

9
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Evals/Eval.cs

@ -116,6 +116,15 @@ namespace Debugger @@ -116,6 +116,15 @@ namespace Debugger
{
debugger.AssertPaused();
if (targetThread.IsLastFunctionNative) {
error = "Can not evaluate because native frame is on top of stack";
evalState = EvalState.Error;
if (EvalComplete != null) {
EvalComplete(this, new EvalEventArgs(this));
}
return false;
}
ICorDebugValue[] args = getArgs();
if (args == null) {

Loading…
Cancel
Save