Ejemplo n.º 1
0
 internal MDbgThread(MDbgThreadCollection threadCollection, CorDebug.CorThread thread, int threadNumber)
 {
     m_corThread = thread;
     m_threadNumber = threadNumber;
     m_threadMgr = threadCollection;
 }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
 internal MDbgThread(MDbgThreadCollection threadCollection, CorDebug.CorThread thread, int threadNumber)
 {
     m_corThread    = thread;
     m_threadNumber = threadNumber;
     m_threadMgr    = threadCollection;
 }