private HandlerAction DoAssemblyUnloadEvent(AssemblyUnloadEvent e)
        {
            NSApplication.sharedApplication().BeginInvoke(() => m_debugger.OnAssemblyUnload(e));

            return HandlerAction.Resume;
        }
        private void OnAssemblyUnload(AssemblyUnloadEvent e)
        {
            _loadedAssemblies.Remove(e.Assembly);

            var wasEnabled = _methodEntryRequest.Enabled;
            _methodEntryRequest.Disable();
            _methodEntryRequest.AssemblyFilter = _loadedAssemblies;
            if (wasEnabled)
                _methodEntryRequest.Enable();

            _breakpointEventRequests = _breakpointEventRequests.Where(kvp => kvp.Key.Method.DeclaringType.Assembly != e.Assembly).ToDictionary(kvp=>kvp.Key,kvp=>kvp.Value);

            Trace("AssemblyUnload: {0}", e.Assembly.GetName().FullName);

            AssemblyUnloaded(DebugAssemblyFor(e.Assembly));
        }
Exemple #3
0
        internal void OnAssemblyUnload(AssemblyUnloadEvent e)
        {
            if (DebuggerWindows.WriteEvents)
                m_transcript.WriteLine(Output.Normal, "Unloaded assembly '{0}'", e.Assembly.GetName().Name);

            Broadcaster.Invoke("debugger unloaded assembly", e.Assembly);
        }