Exemplo n.º 1
0
            } // end _ShouldOutput()

            public int Breakpoint(WDebugBreakpoint Bp)
            {
                try
                {
                    var bi = new DbgBreakpointInfo(m_debugger, Bp);
                    if (bi.IsOneShot)
                    {
                        // If we /hit/ a breakpoint, and it was "one-shot", then it's
                        // going to get deleted out from under us. Prevent AVs later by
                        // marking it invalid now.
                        bi.MarkInvalid();
                    }

                    var eventArgs = new BreakpointEventArgs(m_debugger, bi);
                    int retVal    = _RaiseEvent(m_debugger.BreakpointHit, eventArgs);
                    if (_ShouldOutput(retVal, eventArgs))
                    {
                        // Special case for "gu"/"step out" breakpoints: we're going to
                        // pretend they don't exist.
                        if (DbgBreakpointInfo.StepOutBreakpointId != bi.Id)
                        {
                            _PsPipe.WriteObject(eventArgs);
                        }
                    }
                    return(retVal);
                }
                catch (Exception e)
                {
                    Util.FailFast("Unexpected exception during event callback.", e);
                    return(0);
                }
            } // end Breakpoint()
Exemplo n.º 2
0
 internal DbgBreakpointInfo(DbgEngDebugger debugger,
                            DEBUG_BREAKPOINT_PARAMETERS nativeParams,
                            WDebugBreakpoint db)
     : base(debugger)
 {
     m_nativeParams = nativeParams;
     m_debugControl = Debugger.ExecuteOnDbgEngThread(() =>
     {
         return((WDebugControl)debugger.DebuggerInterface);
     });
     __db = db;
 } // end constructor
Exemplo n.º 3
0
        } // end constructor

        internal DbgBreakpointInfo(DbgEngDebugger debugger, WDebugBreakpoint db)
            : base(debugger)
        {
            if (null == db)
            {
                throw new ArgumentNullException("db");
            }

            Debugger.ExecuteOnDbgEngThread(() =>
            {
                m_debugControl = (WDebugControl)debugger.DebuggerInterface;
                __db           = db;
                Refresh();
            });
        } // end constructor