public AD7BoundBreakpoint(AD7Engine engine, int breakpointId, AD7PendingBreakpoint pendingBreakpoint)
 {
     m_engine = engine;
     m_breakpointId = breakpointId;
     m_pendingBreakpoint = pendingBreakpoint;
     m_enabled = true;
     m_deleted = false;
 }
 // Called when the breakpoint is being deleted by the user.
 public int Delete()
 {
     //Debug.Assert(Worker.MainThreadId == Worker.CurrentThreadId);
     if (!m_deleted) {
         m_deleted = true;
         m_engine.DebuggedProcess.RemoveBreakpoint(m_breakpointId);
         Debug.Assert(m_pendingBreakpoint != null);
         m_pendingBreakpoint.OnBoundBreakpointDeleted(this);
         m_pendingBreakpoint = null;
     }
     return Constants.S_OK;
 }
Example #3
0
 public AD7BreakpointBoundEvent(AD7PendingBreakpoint pendingBreakpoint, AD7BoundBreakpoint boundBreakpoint)
 {
     m_pendingBreakpoint = pendingBreakpoint;
     m_boundBreakpoint = boundBreakpoint;
 }
Example #4
0
        // Creates a pending breakpoint in the engine. A pending breakpoint is contains all the information needed to bind a breakpoint to
        // a location in the debuggee.
        int IDebugEngine2.CreatePendingBreakpoint(IDebugBreakpointRequest2 pBPRequest, out IDebugPendingBreakpoint2 ppPendingBP)
        {
            ppPendingBP = null;

            try {
                var pendingBreakpoint = new AD7PendingBreakpoint(pBPRequest, this);
                m_pendingBreakpoints.Add(pendingBreakpoint);
                ppPendingBP = pendingBreakpoint;
            } catch (Exception e) {
                return EngineUtils.UnexpectedException(e);
            }

            return Constants.S_OK;
        }