// Common on-hit handler.
        private void InternalOnHitHandler(object sender, CustomBreakpointEventArgs e)
        {
            // Mark call to derived class.
            object stopreason = OnHitHandler(e);

            // If stop-reason supplied, then stop the shell.
            if (stopreason != null)
            {
                e.Controller.Stop(e.BreakpointHitCallbackArgs.Thread, stopreason);
            }
        }
 /// <summary> Callback invoked when a breakpoint is hit. </summary>
 /// <returns> Return null to continue running past this breakpoint. Returns a non-null object
 /// to use as stop-reason to stop the process. </returns>
 /// <remarks> Derived classes can override this callback. This is fired during a raw debug managed 
 /// debug event (directly from ICorDebugManagedCallback) and so the implementor can only do inspection
 /// operations. It can't resume the process (return null instead of a stop-reason to do that), and it
 /// certainly can't expect any other debuge events to come in. 
 /// For example, DON'T do soemthing like setup a func-eval, continue the process, and wait for the 
 /// eval complete event.
 /// </remarks>
 public virtual object OnHitHandler(CustomBreakpointEventArgs e)
 {
     // Default impl stops at all breakpoints.            
     return new BreakpointHitStopReason(this);
 }
Пример #3
0
 public override object OnHitHandler(CustomBreakpointEventArgs e)
 {
     m_process.OnUserEntryBreakpointHit();
     // Chain to base handlers.
     return base.OnHitHandler(e);
 }