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

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

@ -94,7 +94,7 @@ namespace Debugger @@ -94,7 +94,7 @@ namespace Debugger
public void StepOut()
{
operation = StepperOperation.StepOut;
// corStepper.StepOut(); Don't! see note
// corStepper.StepOut(); // Don't! see note
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 @@ -253,6 +253,7 @@ namespace Debugger
// NOTE: When two events are invoked, step outs ocurr at once when all is done
// NOTE: Step out works properly for exceptions
// NOTE: Step over works properly for exceptions
// NOTE: Evaluation kills stepper overs on active frame
internal void CheckExpirationOfFunctions()
{
if (debugger.Evaluating) return;

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

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

Loading…
Cancel
Save