OnModuleLoaded() private method

private OnModuleLoaded ( Module module ) : bool
module System.Reflection.Module
return bool
Ejemplo n.º 1
0
        public bool Notification(SingleSteppingEngine engine, Inferior inferior,
					  NotificationType type, TargetAddress data, long arg)
        {
            switch (type) {
            case NotificationType.InitializeCorlib:
                Report.Debug (DebugFlags.JitSymtab, "Initialize corlib");
                read_mono_debugger_info (inferior);
                read_symbol_table (inferior);
                read_builtin_types (inferior);
                break;

            case NotificationType.InitializeManagedCode:
                Report.Debug (DebugFlags.JitSymtab, "Initialize managed code");
                reached_main (inferior, data);
                break;

            case NotificationType.LoadModule: {
                MonoSymbolFile symfile = load_symfile (inferior, data);
                Report.Debug (DebugFlags.JitSymtab,
                          "Module load: {0} {1}", data, symfile);
                if (symfile == null)
                    break;
                engine.Process.Debugger.OnModuleLoadedEvent (symfile.Module);
                if ((builtin_types != null) && (symfile != null)) {
                    if (engine.OnModuleLoaded (symfile.Module))
                        return false;
                }
                break;
            }

            case NotificationType.UnloadModule: {
                Report.Debug (DebugFlags.JitSymtab,
                          "Module unload: {0} {1}", data, arg);

                MonoSymbolFile symfile = (MonoSymbolFile) symfile_by_index [(int) arg];
                if (symfile == null)
                    break;

                engine.Process.Debugger.OnModuleUnLoadedEvent (symfile.Module);
                close_symfile (symfile);
                break;
            }

            case NotificationType.JitBreakpoint:
                JitBreakpoint (inferior, (int) arg, data);
                break;

            case NotificationType.DomainCreate:
                Report.Debug (DebugFlags.JitSymtab,
                          "Domain create: {0}", data);
                add_data_table (inferior, data);
                break;

            case NotificationType.DomainUnload:
                Report.Debug (DebugFlags.JitSymtab,
                          "Domain unload: {0} {1:x}", data, arg);
                destroy_data_table ((int) arg, data);
                engine.Process.BreakpointManager.DomainUnload (inferior, (int) arg);
                break;

            case NotificationType.ClassInitialized:
                break;

            case NotificationType.CreateAppDomain:
                create_appdomain (inferior, data);
                break;

            case NotificationType.UnloadAppDomain:
                unload_appdomain ((int) arg);
                break;

            default:
                Console.WriteLine ("Received unknown notification {0:x} / {1} {2:x}",
                           (int) type, data, arg);
                break;
            }

            return true;
        }