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; }
public AD7BreakpointBoundEvent(AD7PendingBreakpoint pendingBreakpoint, AD7BoundBreakpoint boundBreakpoint) { m_pendingBreakpoint = pendingBreakpoint; m_boundBreakpoint = boundBreakpoint; }
// 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; }