예제 #1
0
        public DebugPanel()
        {
            InitializeComponent();


            UpdateButtonsTooltips();

            locals      = new LocalsPanel();
            callstack   = new CallStackPanel();
            watch       = new WatchPanel();
            threads     = new ThreadsPanel();
            modules     = new ModulesPanel();
            breakpoints = new BreakpointsPanel();

            tabControl1.AddTab("Locals", locals);
            tabControl1.AddTab("Call Stack", callstack);
            tabControl1.AddTab("Watch", watch);
            tabControl1.AddTab("Threads", threads);
            tabControl1.AddTab("Modules", modules);
            tabControl1.AddTab("Breakpoints", breakpoints);

            try
            {
                tabControl1.SelectedIndex = Config.Instance.DebugPanelInitialTab;
            }
            catch { }

            this.VisibleChanged += (s, e) =>
            {
                if (!Visible)
                {
                    Config.Instance.DebugPanelInitialTab = tabControl1.SelectedIndex;
                    Config.Instance.Save();
                }
            };

            if (Debugger.DebugAsConsole)
            {
                appTypeCombo.SelectedIndex = 0;
            }
            else
            {
                appTypeCombo.SelectedIndex = 1;
            }

            Debugger.OnDebuggerStateChanged += UpdateControlsState;

            appTypeCombo.Width = 80;
            RefreshBreakOnException();

            UpdateControlsState();
        }
예제 #2
0
        public MainWindow()
        {
            InitializeComponent();

            BasePanel.MainWindow    = this;
            BaseDocument.MainWindow = this;

            dockPanel                   = new DockPanel();
            dockPanel.Dock              = System.Windows.Forms.DockStyle.Fill;
            dockPanel.DockBackColor     = System.Drawing.SystemColors.AppWorkspace;
            dockPanel.DockBottomPortion = 200D;
            dockPanel.DockLeftPortion   = 350D;
            dockPanel.Name              = "dockPanel";
            Controls.Add(dockPanel);
            Controls.SetChildIndex(dockPanel, 0);

            Debugger = new Debugger((AsyncTask task) => {
                BeginInvoke(task);
            });

            breakpointsPanel = new BreakpointsPanel(Debugger);
            callstackPanel   = new CallstackPanel(Debugger);
            codeDocuments.Add(new CodeDocument(Debugger));
            filesystemPanel = new FilesystemPanel(Debugger);
            functionsPanel  = new FunctionsPanel(Debugger);
            heapDocument    = new HeapDocument(Debugger);
            memoryDocuments.Add(new MemoryDocument(Debugger));
            modulesPanel = new ModulesPanel(Debugger);
            profilePanel = new ProfilePanel(Debugger);
            registersPanels.Add(new RegistersPanel(Debugger, RegisterClass.GuestGeneralPurpose));
            registersPanels.Add(new RegistersPanel(Debugger, RegisterClass.GuestFloatingPoint));
            registersPanels.Add(new RegistersPanel(Debugger, RegisterClass.GuestVector));
            statisticsDocument = new StatisticsDocument(Debugger);
            threadsPanel       = new ThreadsPanel(Debugger);
            tracePanel         = new TracePanel(Debugger);

            // deserializeDockContent =
            //    new DeserializeDockContent(GetContentFromPersistString);

            SetupDefaultLayout();

            // For hotkeys.
            KeyPreview = true;

            Debugger.StateChanged += Debugger_StateChanged;
            Debugger_StateChanged(this, Debugger.CurrentState);
            Debugger.CurrentContext.Changed += CurrentContext_Changed;
            CurrentContext_Changed(Debugger.CurrentContext);

            Debugger.Attach();
        }
예제 #3
0
		private void CreatePanels()
		{
			quickSearchPanel = new QuickSearchPanel();
			informationPanel = new InformationPanel();
			outputPanel = new DebugOutputPanel();
			callStackPanel = new CallStackPanel();
			logMessagePanel = new InformationPanel();
			localVariablesPanel = new ObjectsPanel();
			argumentsPanel = new ObjectsPanel();
			watchPanel = new ObjectsPanel();
			autoObjectsPanel = new ObjectsPanel();
			breakpointsPanel = new BreakpointsPanel();
			threadsPanel = new ThreadsPanel();
			modulesPanel = new ModulesPanel();
		}