internal MDbgModule(MDbgProcess process, CorDebug.CorModule managedModule, int number) { Debug.Assert(process != null && managedModule != null); m_process = process; m_module = managedModule; m_functions = new MDbgFunctionMgr(this); m_number = number; }
/// <summary> /// Releases all resources used by the MDbgModule. /// </summary> public void Dispose() { // Our funtion list may hold onto unmanaged SymbolMethod objects, so dispose that too. m_functions.Dispose(); m_functions = null; // Release unmanaged resources. m_symReader = null; m_module = null; m_importer = null; }
internal MDbgModule Register(CorDebug.CorModule managedModule) { MDbgModule mdbgModule; if (m_items.ContainsKey(managedModule)) { mdbgModule = (MDbgModule)m_items[managedModule]; return(mdbgModule); } mdbgModule = new MDbgModule(m_process, managedModule, m_freeModuleNumber++); m_items.Add(managedModule, mdbgModule); return(mdbgModule); }
internal void Unregister(CorDebug.CorModule managedModule) { Debug.Assert(m_items.ContainsKey(managedModule)); m_items.Remove(managedModule); }
/// <summary> /// Looks up a CorModule. /// </summary> /// <param name="managedModule">Which CorModule to lookup.</param> /// <returns>The coresponding MDbgModule.</returns> public MDbgModule Lookup(CorDebug.CorModule managedModule) { return((MDbgModule)m_items[managedModule]); }