void OnStepComplete (object sender, CorStepCompleteEventArgs e) { lock (debugLock) { if (evaluating) { e.Continue = true; return; } } OnStopped (); e.Continue = false; SetActiveThread (e.Thread); TargetEventArgs args = new TargetEventArgs (TargetEventType.TargetStopped); args.Process = GetProcess (process); args.Thread = GetThread (e.Thread); args.Backtrace = new Backtrace (new CorBacktrace (e.Thread, this)); OnTargetEvent (args); }
void _process_OnStepComplete(object sender, CorStepCompleteEventArgs e) { e.Continue = false; _activeThread = e.Thread; _breakEvent.Set(); }
/// <summary> /// Creates a new instance of the CustomStepCompleteEventArgs class. /// </summary> /// <param name="processController">Which IMDbgProcessController to store in the Object.</param> /// <param name="callbackArgs">Which CorStepCompleteEventArgs to encapsulate in this wrapper.</param> public CustomStepCompleteEventArgs(IMDbgProcessController processController, CorStepCompleteEventArgs callbackArgs) : base(processController) { this.callbackArgs = callbackArgs; }
private void OnStepComplete(object sender, CorStepCompleteEventArgs e) { try { Paused(e.Thread); } catch (NoDebugInfo i) { subscriber.Published("There is no debug info for this point. Stepping out of debug lock to continue..."); stepper = Stepper(e.Thread); stepper.StepOut(); } }
private void StepCompleteEventHandler(Object sender, CorStepCompleteEventArgs e) { Trace.WriteLine("ManagedCallback::StepComplete"); BeginManagedDebugEvent(); try { if (InternalHandleRawMode(ManagedCallbackType.OnStepComplete, e)) return; // custom stepper handling if (customSteppers != null && customSteppers.Contains(e.Stepper)) { using (MDbgProcessStopController psc = new MDbgProcessStopController(this, e, false)) { CustomStepperEventHandler handler = (customSteppers[e.Stepper] as CustomStepperEventHandler); customSteppers.Remove(e.Stepper); handler(this, new CustomStepCompleteEventArgs(psc, e)); } return; // this was custom stepper, no additional action necessary. } // we need to deliver step complete for cordbg skin, so that we can print // enhanced diagnostics. if (HandleCustomPostCallback(ManagedCallbackType.OnStepComplete, e)) return; // we will stop only if this callback is from our own stepper. if (e.Stepper == m_activeStepper) { m_activeStepper = null; e.Continue = false; InternalSignalRuntimeIsStopped(e.Thread, new StepCompleteStopReason(e.Stepper, e.StepReason)); } } finally { EndManagedDebugEvent(e); } }