/// <summary> /// Constructs a new breakoint in the debugged process. /// </summary> /// <param name="breakpointCollection">A collection that holds programs breakpoints.</param> /// <param name="location">An object that is capable of resolving breakpoint location.</param> public MDbgFunctionBreakpoint(MDbgBreakpointCollection breakpointCollection, ISequencePointResolver location) : base(breakpointCollection) { m_location = location; Bind(); NotifyChanged(); }
// if breakpointCollection is null, the breakpoint is considered a free breakpoint (not associated with any // collection) internal MDbgBreakpoint(MDbgBreakpointCollection breakpointCollection) { m_breakpointCollection = breakpointCollection; if (m_breakpointCollection != null) { m_breakpointNum = m_breakpointCollection.Register(this); // Now that the number + breakpoint collection properties have been set, // this bp is sufficiently initialized to fire the "Add" event. m_breakpointCollection.FireAddBreakpointEvent(this); } else { m_breakpointNum = 0; } }
// Do common initiliazation and add to the process collection. void CommonInit(MDbgEngine engine) { Debug.Assert(engine != null); if (engine == null) throw new ArgumentException("Value cannot be null.", "engine"); m_engine = engine; m_threadMgr = new MDbgThreadCollection(this); m_appDomainMgr = new MDbgAppDomainCollection(this); m_moduleMgr = new MDbgModuleCollection(this); m_breakpointMgr = new MDbgBreakpointCollection(this); m_debuggerVarMgr = new MDbgDebuggerVarCollection(this); // we'll register as last code, so that other fields are already registered. m_number = engine.Processes.RegisterProcess(this); }