public ICorDebugModule GetModuleFromMetaDataInterface(object pIMetaData)
        {
            ICorDebugModule ppModule;

            Debugger.Interop.CorDebug.ICorDebugModule out_ppModule;
            this.WrappedObject.GetModuleFromMetaDataInterface(pIMetaData, out out_ppModule);
            ppModule = ICorDebugModule.Wrap(out_ppModule);
            return(ppModule);
        }
示例#2
0
		internal Module GetModule(ICorDebugModule corModule) 
		{
			foreach(Module module in moduleCollection) {
				if (module.CorModule == corModule) {
					return module;
				}
			}

			throw new DebuggerException("Module is not in collection");
		}
		public void UnloadModule(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule)
		{
			ManagedCallback managedCallback = GetProcessCallbackInterface("UnloadModule", pAppDomain);
			if (managedCallback != null) {
				managedCallback.UnloadModule(pAppDomain, pModule);
			}
		}
		public void UpdateModuleSymbols(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule, IStream pSymbolStream)
		{
			ManagedCallback managedCallback = GetProcessCallbackInterface("UpdateModuleSymbols", pAppDomain);
			if (managedCallback != null) {
				managedCallback.UpdateModuleSymbols(pAppDomain, pModule, pSymbolStream);
			}
		}
示例#5
0
        public override bool Equals(object o)
        {
            ICorDebugModule casted = o as ICorDebugModule;

            return((casted != null) && (casted.WrappedObject == wrappedObject));
        }
示例#6
0
		public void UnloadModule(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule)
		{
			EnterCallback(PausedReason.Other, "UnloadModule", pAppDomain);
			
			process.RemoveModule(pModule);
			
			ExitCallback_Continue();
		}
示例#7
0
		public unsafe void LoadModule(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule)
		{
			EnterCallback(PausedReason.Other, "LoadModule", pAppDomain);
			
			process.AddModule(pModule);
			
			ExitCallback_Continue();
		}
示例#8
0
		public void UpdateModuleSymbols(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule, IStream pSymbolStream)
		{
			EnterCallback(PausedReason.Other, "UpdateModuleSymbols", pAppDomain);

			ExitCallback_Continue();
		}
示例#9
0
		internal Module(Process process, ICorDebugModule pModule)
		{
			this.process = process;
			
			corModule = pModule;
			
			metaData = new MetaData(pModule);
			
			fullPath = pModule.Name;
			
			symReader = metaData.GetSymReader(fullPath, null);
			
			JMCStatus = SymbolsLoaded;
		}
示例#10
0
		internal void RemoveModule(ICorDebugModule corModule)
		{
			RemoveModule(GetModule(corModule));
		}
示例#11
0
		internal void AddModule(ICorDebugModule corModule)
		{
			AddModule(new Module(this, corModule));
		}
示例#12
0
		internal Module(Process process, ICorDebugModule pModule)
		{
			this.process = process;
			
			corModule = pModule;
			
			metaData = new MetaDataImport(pModule);
			
			fullPath = pModule.Name;
			
			LoadSymbols(process.Options.SymbolsSearchPaths);
			
			ResetJustMyCodeStatus();
		}
		public void LoadModule(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule)
		{
			EnterCallback(PausedReason.Other, "LoadModule " + pModule.Name, pAppDomain);
			
			process.AddModule(pModule);
			
			ExitCallback();
		}
		public void UpdateModuleSymbols(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule, IStream pSymbolStream)
		{
			EnterCallback(PausedReason.Other, "UpdateModuleSymbols", pAppDomain);
			
			foreach (Module module in process.Modules) {
				if (module.CorModule == pModule) {
					process.TraceMessage("UpdateModuleSymbols: Found module: " + pModule.Name);
					module.UpdateSymbolsFromStream(pSymbolStream);
					process.Debugger.SetBreakpointsInModule(module);
					break;
				}
			}
			
			ExitCallback();
		}
		public unsafe void LoadModule(ICorDebugAppDomain pAppDomain, ICorDebugModule pModule)
		{
			ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain);
			if (managedCallback != null) {
				managedCallback.LoadModule(pAppDomain, pModule);
			}
		}