internal void Step(AD7Thread thread, enum_STEPKIND sk, enum_STEPUNIT stepUnit) { DebugHelper.TraceEnteringMethod(); if (!_isStepping) { if (currentStepRequest == null) { currentStepRequest = _vm.CreateStepRequest(thread.ThreadMirror); } else { currentStepRequest.Disable(); } _isStepping = true; if (stepUnit == enum_STEPUNIT.STEP_LINE || stepUnit == enum_STEPUNIT.STEP_STATEMENT) { switch (sk) { case enum_STEPKIND.STEP_INTO: currentStepRequest.Depth = StepDepth.Into; break; case enum_STEPKIND.STEP_OUT: currentStepRequest.Depth = StepDepth.Out; break; case enum_STEPKIND.STEP_OVER: currentStepRequest.Depth = StepDepth.Over; break; default: return; } } else if (stepUnit == enum_STEPUNIT.STEP_INSTRUCTION) { //TODO: by techcap } else { throw new NotImplementedException(); } currentStepRequest.Size = StepSize.Line; currentStepRequest.Enable(); } ResumeVM(); }
internal void CancelStepper(StepEventRequest stepReq) { debuggerThread.VerifyAccess(); if (stepReq != null) { try { using (TempBreak()) stepReq.Disable(); } catch { } if (toStepper.TryGetValue(stepReq, out var info)) { toStepper.Remove(stepReq); info.OnStep(new StepCompleteEventArgs(stepReq, false, true)); } } }
bool OnStep(StepEventRequest stepReq) { debuggerThread.VerifyAccess(); if (stepReq == null) { return(false); } bool b = toStepper.TryGetValue(stepReq, out var info); Debug.Assert(b); if (!b) { return(false); } toStepper.Remove(stepReq); stepReq.Disable(); return(info.OnStep(new StepCompleteEventArgs(stepReq, false))); }
internal void Step(MonoThread thread, enum_STEPKIND sk) { if (isStepping) { return; } if (currentStepRequest == null) { currentStepRequest = _vm.CreateStepRequest(thread.ThreadMirror); } else { currentStepRequest.Disable(); } isStepping = true; switch (sk) { case enum_STEPKIND.STEP_INTO: currentStepRequest.Depth = StepDepth.Into; break; case enum_STEPKIND.STEP_OUT: currentStepRequest.Depth = StepDepth.Out; break; case enum_STEPKIND.STEP_OVER: currentStepRequest.Depth = StepDepth.Over; break; default: return; } currentStepRequest.Size = StepSize.Line; currentStepRequest.Enable(); _vm.Resume(); }