public InprocDebugger(Host host) { this.Host = host; this.DebugHost = host.Debugger; this.Window = new DebuggerWindow(this); this.Tools = new List <DebuggerTool>(); this.State = DebuggerState.Idle; this.Breakpoints = new BreakpointManager(this); this.CodeCache = new CodeCache(this); this.UserData = new UserDataStore(); this.SetupNavigation(); // Initialize tools... // ... this.CallstackTool = new CallstackTool(this); this.Tools.Add(this.CallstackTool); this.CodeTool = new CodeTool(this); this.Tools.Add(this.CodeTool); this.LogTool = new LogTool(this); this.Tools.Add(this.LogTool); this.MemoryTool = new MemoryTool(this); this.Tools.Add(this.MemoryTool); this.StatisticsTool = new StatisticsTool(this); this.Tools.Add(this.StatisticsTool); this.ThreadsTool = new ThreadsTool(this); this.Tools.Add(this.ThreadsTool); // ... this.Window.Show(); this.CodeTool.Show(this.Window.DockPanel); this.LogTool.Show(this.Window.DockPanel); this.ThreadsTool.Show(this.Window.DockPanel); WeifenLuo.WinFormsUI.Docking.DockPane dp; dp = this.Window.DockPanel.DockPaneFactory.CreateDockPane(this.CodeTool, WeifenLuo.WinFormsUI.Docking.DockState.Document, true); this.StatisticsTool.Show(dp, WeifenLuo.WinFormsUI.Docking.DockAlignment.Right, 0.45); dp = this.Window.DockPanel.DockPaneFactory.CreateDockPane(this.LogTool, WeifenLuo.WinFormsUI.Docking.DockState.DockBottom, true); this.CallstackTool.Show(dp, WeifenLuo.WinFormsUI.Docking.DockAlignment.Right, 0.24); this.MemoryTool.Show(this.StatisticsTool.DockHandler.Pane, this.StatisticsTool); this.Host.Debugger.Activate(this, Environment.MachineName, Environment.UserName, "InprocDebugger 1.0"); foreach (DebuggerTool tool in this.Tools) { tool.OnAttached(); } }
public Host(string[] args) { // Ensure settings are proper if (Properties.Settings.Default.PluginSearchPaths == null) { Properties.Settings.Default.PluginSearchPaths = new System.Collections.Specialized.StringCollection(); } #if DEBUG string PluginPath = @"C:\Dev\Noxa.Emulation\trunk\debug\"; if (Properties.Settings.Default.PluginSearchPaths.Contains(PluginPath) == false) { Properties.Settings.Default.PluginSearchPaths.Add(PluginPath); } #endif Properties.Settings.Default.Save(); _debugHost = new DebugHost(this); Diag.Instance = _debugHost; _logger = new Logger(); _player = new Player(this); this.Load(); // If we have args, try to start the player if (args.Length > 0) { bool debug = false; string path = null; foreach (string arg in args) { if ((arg == "--debug") || (arg == "-d")) { debug = true; } else { // ?? path = arg; } } if (path != null) { _player.StartGameDirect(path, debug); } } }
public bool Connect(string host) { this.Host = ( DebugHost )Activator.GetObject(typeof(DebugHost), string.Format("tcp://{0}:{1}/DebugHost", host, DebugHost.ServerPort)); try { this.Host.Ping(); } catch (Exception) { Debug.WriteLine("EmuDebugger::Connect: ping failed"); // + ex.ToString() ); return(false); } this.Host.Activate(this, Environment.MachineName, Environment.UserName, "RemoteDebugger 1.0"); this.IsConnected = true; return(true); }