diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Modules/Module.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Modules/Module.cs index 6d6b0285b9..f803f43ded 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Modules/Module.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Modules/Module.cs @@ -11,7 +11,7 @@ using DebuggerInterop.MetaData; namespace DebuggerLibrary { - public class Module: RemotingObjectBase + public class Module: RemotingObjectBase, IDisposable { string fullPath; ulong baseAdress; @@ -131,5 +131,13 @@ namespace DebuggerLibrary symReader = null; } } + + public void Dispose() + { + if (symReader != null) { + System.Reflection.MethodInfo m = symReader.GetType().GetMethod("Finalize"); + m.Invoke(symReader, null); + } + } } } diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Modules/NDebugger-Modules.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Modules/NDebugger-Modules.cs index 7205cb6087..d20a6773f3 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Modules/NDebugger-Modules.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Modules/NDebugger-Modules.cs @@ -88,6 +88,7 @@ namespace DebuggerLibrary { foreach (Module m in moduleCollection) { OnModuleUnloaded(m); + m.Dispose(); } moduleCollection.Clear(); lastAssignedModuleOrderOfLoading = 0;