protected DbgEngineImpl(DbgEngineImplDependencies deps, DbgManager dbgManager, DbgStartKind startKind) { if (deps == null) { throw new ArgumentNullException(nameof(deps)); } StartKind = startKind; lockObj = new object(); toEngineAppDomain = new Dictionary <DnAppDomain, DbgEngineAppDomain>(); toEngineModule = new Dictionary <CorModule, DbgEngineModule>(); toEngineThread = new Dictionary <DnThread, DbgEngineThread>(); toAssemblyModules = new Dictionary <DnAssembly, List <DnModule> >(); stackFrameData = new StackFrameData(); objectHolders = new HashSet <DnDebuggerObjectHolder>(); debuggerSettings = deps.DebuggerSettings; dbgDotNetCodeRangeService = deps.DotNetCodeRangeService; dbgDotNetNativeCodeLocationFactory = deps.DbgDotNetNativeCodeLocationFactory; dbgDotNetCodeLocationFactory = deps.DbgDotNetCodeLocationFactory; this.dbgManager = dbgManager ?? throw new ArgumentNullException(nameof(dbgManager)); dbgModuleMemoryRefreshedNotifier = deps.DbgModuleMemoryRefreshedNotifier; clrDacProvider = deps.ClrDacProvider; clrDac = NullClrDac.Instance; debuggerThread = new DebuggerThread("CorDebug"); debuggerThread.CallDispatcherRun(); dotNetValuesToCloseOnContinue = new List <DbgDotNetValueImpl>(); valuesToCloseNow = new List <DbgCorValueHolder>(); dmdRuntime = DmdRuntimeFactory.CreateRuntime(new DmdEvaluatorImpl(this), IntPtr.Size == 4 ? DmdImageFileMachine.I386 : DmdImageFileMachine.AMD64); toDynamicModuleHelper = new Dictionary <CorModule, DmdDynamicModuleHelperImpl>(); DmdDispatcher = new DmdDispatcherImpl(this); RawMetadataService = deps.RawMetadataService; }
DbgEngineImplDependencies(DbgDotNetCodeRangeService dbgDotNetCodeRangeService, DebuggerSettings debuggerSettings, Lazy <DbgDotNetNativeCodeLocationFactory> dbgDotNetNativeCodeLocationFactory, Lazy <DbgDotNetCodeLocationFactory> dbgDotNetCodeLocationFactory, ClrDacProvider clrDacProvider, DbgModuleMemoryRefreshedNotifier2 dbgModuleMemoryRefreshedNotifier, DbgRawMetadataService rawMetadataService) { DotNetCodeRangeService = dbgDotNetCodeRangeService; DebuggerSettings = debuggerSettings; DbgDotNetNativeCodeLocationFactory = dbgDotNetNativeCodeLocationFactory; DbgDotNetCodeLocationFactory = dbgDotNetCodeLocationFactory; ClrDacProvider = clrDacProvider; DbgModuleMemoryRefreshedNotifier = dbgModuleMemoryRefreshedNotifier; RawMetadataService = rawMetadataService; }