internal DnAppDomain(DnProcess ownerProcess, ICorDebugAppDomain appDomain, int incrementedId) { this.ownerProcess = ownerProcess; this.assemblies = new DebuggerCollection<ICorDebugAssembly, DnAssembly>(CreateAssembly); this.appDomain = new CorAppDomain(appDomain); this.incrementedId = incrementedId; NameChanged(); }
internal DnAssembly(DnAppDomain appDomain, ICorDebugAssembly assembly, int incrementedId) { this.appDomain = appDomain; this.modules = new DebuggerCollection<ICorDebugModule, DnModule>(CreateModule); this.assembly = new CorAssembly(assembly); this.incrementedId = incrementedId; }
internal DnProcess(DnDebugger ownerDebugger, ICorDebugProcess process, int incrementedId) { this.ownerDebugger = ownerDebugger; this.appDomains = new DebuggerCollection<ICorDebugAppDomain, DnAppDomain>(CreateAppDomain); this.threads = new DebuggerCollection<ICorDebugThread, DnThread>(CreateThread); this.process = new CorProcess(process); this.incrementedId = incrementedId; }
internal DnAppDomain(DnProcess ownerProcess, ICorDebugAppDomain appDomain, int uniqueId, int uniqueIdProcess) { Process = ownerProcess; assemblies = new DebuggerCollection<ICorDebugAssembly, DnAssembly>(CreateAssembly); CorAppDomain = new CorAppDomain(appDomain); UniqueId = uniqueId; UniqueIdProcess = uniqueIdProcess; NameChanged(); }
DnDebugger(ICorDebug corDebug, DebugOptions debugOptions, IDebugMessageDispatcher debugMessageDispatcher, string debuggeeVersion) { if (debugMessageDispatcher == null) throw new ArgumentNullException("debugMessageDispatcher"); this.debuggerManagedThreadId = Thread.CurrentThread.ManagedThreadId; this.processes = new DebuggerCollection<ICorDebugProcess, DnProcess>(CreateDnProcess); this.debugMessageDispatcher = debugMessageDispatcher; this.corDebug = corDebug; this.debugOptions = debugOptions ?? new DebugOptions(); this.debuggeeVersion = debuggeeVersion ?? string.Empty; corDebug.Initialize(); corDebug.SetManagedHandler(new CorDebugManagedCallback(this)); }
internal DnAssembly(DnAppDomain appDomain, ICorDebugAssembly assembly, int uniqueId, int uniqueIdProcess, int uniqueIdAppDomain) { AppDomain = appDomain; modules = new DebuggerCollection<ICorDebugModule, DnModule>(CreateModule); CorAssembly = new CorAssembly(assembly); UniqueId = uniqueId; UniqueIdProcess = uniqueIdProcess; UniqueIdAppDomain = uniqueIdAppDomain; }
DnDebugger(ICorDebug corDebug, DebugOptions debugOptions, IDebugMessageDispatcher debugMessageDispatcher, string debuggeeVersion) { if (debugMessageDispatcher == null) throw new ArgumentNullException(nameof(debugMessageDispatcher)); debuggerManagedThreadId = Thread.CurrentThread.ManagedThreadId; processes = new DebuggerCollection<ICorDebugProcess, DnProcess>(CreateDnProcess); this.debugMessageDispatcher = debugMessageDispatcher; this.corDebug = corDebug; this.debugOptions = debugOptions ?? new DebugOptions(); DebuggeeVersion = debuggeeVersion ?? string.Empty; // I have not tested debugging with CLR 1.x. It's too old to support it so this is a won't fix if (DebuggeeVersion.StartsWith("1.")) throw new NotImplementedException("Can't debug .NET 1.x assemblies. Add an App.config file to force using .NET 2.0 or later"); corDebug.Initialize(); corDebug.SetManagedHandler(new CorDebugManagedCallback(this)); }