Browse Source

Tracking stepper is reset after evaluation

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1406 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 20 years ago
parent
commit
d3ca1e2e04
  1. 5
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Function.cs
  2. 2
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Stepper.cs
  3. 1
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs
  4. 3
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Evals/Eval.cs

5
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Function.cs

@ -132,6 +132,11 @@ namespace Debugger
methodProps = module.MetaData.GetMethodProps(corFunction.Token); methodProps = module.MetaData.GetMethodProps(corFunction.Token);
AddTrackingStepper();
}
internal void AddTrackingStepper()
{
// Expiry the function when it is finished // Expiry the function when it is finished
stepOutStepper = new Stepper(this, "Function Tracker"); stepOutStepper = new Stepper(this, "Function Tracker");
stepOutStepper.StepOut(); stepOutStepper.StepOut();

2
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Stepper.cs

@ -94,7 +94,7 @@ namespace Debugger
public void StepOut() public void StepOut()
{ {
operation = StepperOperation.StepOut; operation = StepperOperation.StepOut;
// corStepper.StepOut(); Don't! see note // corStepper.StepOut(); // Don't! see note
corStepper.StepRange(false, new int[] {0, int.MaxValue}); corStepper.StepRange(false, new int[] {0, int.MaxValue});
} }

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

@ -253,6 +253,7 @@ namespace Debugger
// NOTE: When two events are invoked, step outs ocurr at once when all is done // NOTE: When two events are invoked, step outs ocurr at once when all is done
// NOTE: Step out works properly for exceptions // NOTE: Step out works properly for exceptions
// NOTE: Step over works properly for exceptions // NOTE: Step over works properly for exceptions
// NOTE: Evaluation kills stepper overs on active frame
internal void CheckExpirationOfFunctions() internal void CheckExpirationOfFunctions()
{ {
if (debugger.Evaluating) return; if (debugger.Evaluating) return;

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

@ -145,6 +145,9 @@ namespace Debugger
OnEvalStarted(new EvalEventArgs(this)); OnEvalStarted(new EvalEventArgs(this));
// Stepper needs to be reset after evaluation
targetThread.LastFunction.AddTrackingStepper();
evalState = EvalState.Evaluating; evalState = EvalState.Evaluating;
return true; return true;
} }

Loading…
Cancel
Save