internal MDbgThread(MDbgThreadCollection threadCollection, CorDebug.CorThread thread, int threadNumber) { m_corThread = thread; m_threadNumber = threadNumber; m_threadMgr = threadCollection; }
/// <summary>Creates an empty process object. /// This object can be used to start a debugging session by calling /// CreateProcess or Attach method on it. /// </summary> /// <param name="engine">Root engine object that manages this process.</param> /// <param name="debugger">CorDebugger object that will be used to do an actual /// debugging</param> public MDbgProcess(MDbgEngine engine, CorDebug.CorDebugger debugger) { Debug.Assert(engine != null && debugger != null); if (engine == null) throw new ArgumentException("Value cannot be null.", "engine"); if (debugger == null) throw new ArgumentException("Value cannot be null.", "debugger"); 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); m_corDebugger = debugger; // we'll register as last code, so that other fields are already registered. m_number = engine.Processes.RegisterProcess(this); }