Support for different debug sessions using MDI child forms
This commit is contained in:
parent
96155736e5
commit
e01b863fd2
|
@ -40,6 +40,10 @@ file (GLOB SOURCES
|
||||||
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.cs"
|
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.cs"
|
||||||
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.Designer.cs"
|
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.Designer.cs"
|
||||||
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.resx"
|
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.resx"
|
||||||
|
"${CXBXR_DEBUGGER_SRC_DIR}/IDebugWindow.cs"
|
||||||
|
"${CXBXR_DEBUGGER_SRC_DIR}/CxbxDebuggerMain.cs"
|
||||||
|
"${CXBXR_DEBUGGER_SRC_DIR}/CxbxDebuggerMain.Designer.cs"
|
||||||
|
"${CXBXR_DEBUGGER_SRC_DIR}/CxbxDebuggerMain.resx"
|
||||||
"${CXBXR_DEBUGGER_SRC_DIR}/PatchManager.cs"
|
"${CXBXR_DEBUGGER_SRC_DIR}/PatchManager.cs"
|
||||||
"${CXBXR_DEBUGGER_SRC_DIR}/Program.cs"
|
"${CXBXR_DEBUGGER_SRC_DIR}/Program.cs"
|
||||||
"${CXBXR_DEBUGGER_SRC_DIR}/Resources/BreakpointDisable_16x_24.bmp"
|
"${CXBXR_DEBUGGER_SRC_DIR}/Resources/BreakpointDisable_16x_24.bmp"
|
||||||
|
@ -100,6 +104,9 @@ csharp_set_windows_forms_properties(
|
||||||
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.Designer.cs"
|
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.Designer.cs"
|
||||||
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.cs"
|
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.cs"
|
||||||
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.resx"
|
"${CXBXR_DEBUGGER_SRC_DIR}/Form1.resx"
|
||||||
|
"${CXBXR_DEBUGGER_SRC_DIR}/CxbxDebuggerMain.Designer.cs"
|
||||||
|
"${CXBXR_DEBUGGER_SRC_DIR}/CxbxDebuggerMain.cs"
|
||||||
|
"${CXBXR_DEBUGGER_SRC_DIR}/CxbxDebuggerMain.resx"
|
||||||
)
|
)
|
||||||
|
|
||||||
csharp_set_designer_cs_properties(
|
csharp_set_designer_cs_properties(
|
||||||
|
|
|
@ -0,0 +1,227 @@
|
||||||
|
namespace CxbxDebugger
|
||||||
|
{
|
||||||
|
partial class CxbxDebuggerMain
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CxbxDebuggerMain));
|
||||||
|
this.menuStrip = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.fileMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.debugToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.startDebuggingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.suspendToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.resumeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.windowsMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.cascadeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tileVerticalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tileHorizontalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.arrangeIconsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.statusStrip = new System.Windows.Forms.StatusStrip();
|
||||||
|
this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||||
|
this.menuStrip.SuspendLayout();
|
||||||
|
this.statusStrip.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// menuStrip
|
||||||
|
//
|
||||||
|
this.menuStrip.ImageScalingSize = new System.Drawing.Size(24, 24);
|
||||||
|
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.fileMenu,
|
||||||
|
this.debugToolStripMenuItem,
|
||||||
|
this.windowsMenu});
|
||||||
|
this.menuStrip.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.menuStrip.MdiWindowListItem = this.windowsMenu;
|
||||||
|
this.menuStrip.Name = "menuStrip";
|
||||||
|
this.menuStrip.Padding = new System.Windows.Forms.Padding(4, 1, 0, 1);
|
||||||
|
this.menuStrip.Size = new System.Drawing.Size(1281, 24);
|
||||||
|
this.menuStrip.TabIndex = 0;
|
||||||
|
this.menuStrip.Text = "MenuStrip";
|
||||||
|
//
|
||||||
|
// fileMenu
|
||||||
|
//
|
||||||
|
this.fileMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.exitToolStripMenuItem});
|
||||||
|
this.fileMenu.ImageTransparentColor = System.Drawing.SystemColors.ActiveBorder;
|
||||||
|
this.fileMenu.Name = "fileMenu";
|
||||||
|
this.fileMenu.Size = new System.Drawing.Size(37, 22);
|
||||||
|
this.fileMenu.Text = "&File";
|
||||||
|
//
|
||||||
|
// exitToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
|
||||||
|
this.exitToolStripMenuItem.ShortcutKeyDisplayString = "Alt+F4";
|
||||||
|
this.exitToolStripMenuItem.Size = new System.Drawing.Size(135, 22);
|
||||||
|
this.exitToolStripMenuItem.Text = "E&xit";
|
||||||
|
this.exitToolStripMenuItem.Click += new System.EventHandler(this.ExitToolsStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// debugToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.debugToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.startDebuggingToolStripMenuItem,
|
||||||
|
this.toolStripMenuItem1,
|
||||||
|
this.suspendToolStripMenuItem,
|
||||||
|
this.resumeToolStripMenuItem});
|
||||||
|
this.debugToolStripMenuItem.Name = "debugToolStripMenuItem";
|
||||||
|
this.debugToolStripMenuItem.Size = new System.Drawing.Size(54, 22);
|
||||||
|
this.debugToolStripMenuItem.Text = "Debug";
|
||||||
|
//
|
||||||
|
// startDebuggingToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.startDebuggingToolStripMenuItem.Image = global::CxbxDebugger.Properties.Resources.run;
|
||||||
|
this.startDebuggingToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.startDebuggingToolStripMenuItem.Name = "startDebuggingToolStripMenuItem";
|
||||||
|
this.startDebuggingToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||||
|
this.startDebuggingToolStripMenuItem.Text = "&Start Debugging";
|
||||||
|
this.startDebuggingToolStripMenuItem.Click += new System.EventHandler(this.startDebuggingToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// toolStripMenuItem1
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||||
|
this.toolStripMenuItem1.Size = new System.Drawing.Size(157, 6);
|
||||||
|
//
|
||||||
|
// suspendToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.suspendToolStripMenuItem.Image = global::CxbxDebugger.Properties.Resources.pause;
|
||||||
|
this.suspendToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.suspendToolStripMenuItem.Name = "suspendToolStripMenuItem";
|
||||||
|
this.suspendToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||||
|
this.suspendToolStripMenuItem.Text = "&Suspend";
|
||||||
|
this.suspendToolStripMenuItem.Click += new System.EventHandler(this.suspendToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// resumeToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.resumeToolStripMenuItem.Image = global::CxbxDebugger.Properties.Resources.run;
|
||||||
|
this.resumeToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.resumeToolStripMenuItem.Name = "resumeToolStripMenuItem";
|
||||||
|
this.resumeToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||||
|
this.resumeToolStripMenuItem.Text = "&Resume";
|
||||||
|
this.resumeToolStripMenuItem.Click += new System.EventHandler(this.resumeToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// windowsMenu
|
||||||
|
//
|
||||||
|
this.windowsMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.cascadeToolStripMenuItem,
|
||||||
|
this.tileVerticalToolStripMenuItem,
|
||||||
|
this.tileHorizontalToolStripMenuItem,
|
||||||
|
this.arrangeIconsToolStripMenuItem});
|
||||||
|
this.windowsMenu.Name = "windowsMenu";
|
||||||
|
this.windowsMenu.Size = new System.Drawing.Size(68, 22);
|
||||||
|
this.windowsMenu.Text = "&Windows";
|
||||||
|
//
|
||||||
|
// cascadeToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.cascadeToolStripMenuItem.Name = "cascadeToolStripMenuItem";
|
||||||
|
this.cascadeToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
|
||||||
|
this.cascadeToolStripMenuItem.Text = "&Cascade";
|
||||||
|
this.cascadeToolStripMenuItem.Click += new System.EventHandler(this.CascadeToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// tileVerticalToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.tileVerticalToolStripMenuItem.Name = "tileVerticalToolStripMenuItem";
|
||||||
|
this.tileVerticalToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
|
||||||
|
this.tileVerticalToolStripMenuItem.Text = "Tile &Vertical";
|
||||||
|
this.tileVerticalToolStripMenuItem.Click += new System.EventHandler(this.TileVerticalToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// tileHorizontalToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.tileHorizontalToolStripMenuItem.Name = "tileHorizontalToolStripMenuItem";
|
||||||
|
this.tileHorizontalToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
|
||||||
|
this.tileHorizontalToolStripMenuItem.Text = "Tile &Horizontal";
|
||||||
|
this.tileHorizontalToolStripMenuItem.Click += new System.EventHandler(this.TileHorizontalToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// arrangeIconsToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.arrangeIconsToolStripMenuItem.Name = "arrangeIconsToolStripMenuItem";
|
||||||
|
this.arrangeIconsToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
|
||||||
|
this.arrangeIconsToolStripMenuItem.Text = "&Arrange Icons";
|
||||||
|
this.arrangeIconsToolStripMenuItem.Click += new System.EventHandler(this.ArrangeIconsToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// statusStrip
|
||||||
|
//
|
||||||
|
this.statusStrip.ImageScalingSize = new System.Drawing.Size(24, 24);
|
||||||
|
this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.toolStripStatusLabel});
|
||||||
|
this.statusStrip.Location = new System.Drawing.Point(0, 545);
|
||||||
|
this.statusStrip.Name = "statusStrip";
|
||||||
|
this.statusStrip.Size = new System.Drawing.Size(1281, 22);
|
||||||
|
this.statusStrip.TabIndex = 2;
|
||||||
|
this.statusStrip.Text = "StatusStrip";
|
||||||
|
//
|
||||||
|
// toolStripStatusLabel
|
||||||
|
//
|
||||||
|
this.toolStripStatusLabel.Name = "toolStripStatusLabel";
|
||||||
|
this.toolStripStatusLabel.Size = new System.Drawing.Size(39, 17);
|
||||||
|
this.toolStripStatusLabel.Text = "Status";
|
||||||
|
//
|
||||||
|
// CxbxDebuggerMain
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||||
|
this.ClientSize = new System.Drawing.Size(1281, 567);
|
||||||
|
this.Controls.Add(this.statusStrip);
|
||||||
|
this.Controls.Add(this.menuStrip);
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.IsMdiContainer = true;
|
||||||
|
this.MainMenuStrip = this.menuStrip;
|
||||||
|
this.Name = "CxbxDebuggerMain";
|
||||||
|
this.Text = "cxbx-debugger";
|
||||||
|
this.menuStrip.ResumeLayout(false);
|
||||||
|
this.menuStrip.PerformLayout();
|
||||||
|
this.statusStrip.ResumeLayout(false);
|
||||||
|
this.statusStrip.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
private System.Windows.Forms.MenuStrip menuStrip;
|
||||||
|
private System.Windows.Forms.StatusStrip statusStrip;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tileHorizontalToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem fileMenu;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem windowsMenu;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem cascadeToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tileVerticalToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem arrangeIconsToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolTip toolTip;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem debugToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem startDebuggingToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem suspendToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem resumeToolStripMenuItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,109 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace CxbxDebugger
|
||||||
|
{
|
||||||
|
public partial class CxbxDebuggerMain : Form, IDebugContainerWindow
|
||||||
|
{
|
||||||
|
public CxbxDebuggerMain(string[] args)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
var StartupArgs = new string[args.Length - 1];
|
||||||
|
Array.Copy(args, 1, StartupArgs, 0, args.Length - 1);
|
||||||
|
|
||||||
|
// Setup session without initially running the game
|
||||||
|
AddDebugSession(StartupArgs, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ExitToolsStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CascadeToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LayoutMdi(MdiLayout.Cascade);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void TileVerticalToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LayoutMdi(MdiLayout.TileVertical);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void TileHorizontalToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LayoutMdi(MdiLayout.TileHorizontal);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ArrangeIconsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LayoutMdi(MdiLayout.ArrangeIcons);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startDebuggingToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
foreach (Form childForm in MdiChildren)
|
||||||
|
{
|
||||||
|
if (childForm is IDebugWindow)
|
||||||
|
{
|
||||||
|
(childForm as IDebugWindow).StartSession();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void suspendToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
foreach (Form childForm in MdiChildren)
|
||||||
|
{
|
||||||
|
if (childForm is IDebugWindow)
|
||||||
|
{
|
||||||
|
(childForm as IDebugWindow).SuspendSession();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resumeToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
foreach (Form childForm in MdiChildren)
|
||||||
|
{
|
||||||
|
if (childForm is IDebugWindow)
|
||||||
|
{
|
||||||
|
(childForm as IDebugWindow).ResumeSession();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddDebugSession(string[] Arguments, bool StartAutomatically)
|
||||||
|
{
|
||||||
|
var SessionWindow = CreateNewSessionWindow(Arguments);
|
||||||
|
|
||||||
|
if (StartAutomatically)
|
||||||
|
{
|
||||||
|
SessionWindow.StartSession();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ReportGameTitle(string GameTitle)
|
||||||
|
{
|
||||||
|
Text = $"cxbx-debugger ({GameTitle})";
|
||||||
|
}
|
||||||
|
|
||||||
|
private IDebugWindow CreateNewSessionWindow(string[] Arguments)
|
||||||
|
{
|
||||||
|
Form childForm = new Form1(Arguments);
|
||||||
|
childForm.MdiParent = this;
|
||||||
|
childForm.WindowState = FormWindowState.Maximized;
|
||||||
|
childForm.Show();
|
||||||
|
|
||||||
|
return childForm as IDebugWindow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -29,21 +29,13 @@
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
|
||||||
this.lbConsole = new System.Windows.Forms.ListBox();
|
|
||||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
|
||||||
this.btnStart = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.btnSuspend = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.btnResume = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();
|
|
||||||
this.cbThreads = new System.Windows.Forms.ToolStripComboBox();
|
|
||||||
this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel();
|
|
||||||
this.cbFrames = new System.Windows.Forms.ToolStripComboBox();
|
|
||||||
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.statusBar = new System.Windows.Forms.StatusStrip();
|
|
||||||
this.lblStatus = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.tabContainer = new System.Windows.Forms.TabControl();
|
this.tabContainer = new System.Windows.Forms.TabControl();
|
||||||
|
this.tabSummary = new System.Windows.Forms.TabPage();
|
||||||
|
this.linkLabel3 = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.linkLabel2 = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.label9 = new System.Windows.Forms.Label();
|
||||||
|
this.label7 = new System.Windows.Forms.Label();
|
||||||
this.tabDisassembly = new System.Windows.Forms.TabPage();
|
this.tabDisassembly = new System.Windows.Forms.TabPage();
|
||||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||||
this.btnToMemory = new System.Windows.Forms.Button();
|
this.btnToMemory = new System.Windows.Forms.Button();
|
||||||
|
@ -112,10 +104,8 @@
|
||||||
this.lbDebug = new System.Windows.Forms.ListBox();
|
this.lbDebug = new System.Windows.Forms.ListBox();
|
||||||
this.diagSaveMemory = new System.Windows.Forms.SaveFileDialog();
|
this.diagSaveMemory = new System.Windows.Forms.SaveFileDialog();
|
||||||
this.diagBrowseCT = new System.Windows.Forms.OpenFileDialog();
|
this.diagBrowseCT = new System.Windows.Forms.OpenFileDialog();
|
||||||
this.toolStrip1.SuspendLayout();
|
|
||||||
this.tableLayoutPanel3.SuspendLayout();
|
|
||||||
this.statusBar.SuspendLayout();
|
|
||||||
this.tabContainer.SuspendLayout();
|
this.tabContainer.SuspendLayout();
|
||||||
|
this.tabSummary.SuspendLayout();
|
||||||
this.tabDisassembly.SuspendLayout();
|
this.tabDisassembly.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
|
||||||
this.splitContainer2.Panel1.SuspendLayout();
|
this.splitContainer2.Panel1.SuspendLayout();
|
||||||
|
@ -154,135 +144,9 @@
|
||||||
this.splitContainer5.SuspendLayout();
|
this.splitContainer5.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// lbConsole
|
|
||||||
//
|
|
||||||
this.lbConsole.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
this.lbConsole.FormattingEnabled = true;
|
|
||||||
this.lbConsole.Location = new System.Drawing.Point(3, 231);
|
|
||||||
this.lbConsole.Name = "lbConsole";
|
|
||||||
this.lbConsole.ScrollAlwaysVisible = true;
|
|
||||||
this.lbConsole.Size = new System.Drawing.Size(728, 51);
|
|
||||||
this.lbConsole.TabIndex = 2;
|
|
||||||
//
|
|
||||||
// toolStrip1
|
|
||||||
//
|
|
||||||
this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
|
|
||||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.btnStart,
|
|
||||||
this.toolStripSeparator1,
|
|
||||||
this.btnSuspend,
|
|
||||||
this.btnResume,
|
|
||||||
this.toolStripSeparator2,
|
|
||||||
this.toolStripLabel1,
|
|
||||||
this.cbThreads,
|
|
||||||
this.toolStripLabel2,
|
|
||||||
this.cbFrames});
|
|
||||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.toolStrip1.Name = "toolStrip1";
|
|
||||||
this.toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
|
||||||
this.toolStrip1.Size = new System.Drawing.Size(734, 25);
|
|
||||||
this.toolStrip1.TabIndex = 7;
|
|
||||||
this.toolStrip1.Text = "toolStrip1";
|
|
||||||
//
|
|
||||||
// btnStart
|
|
||||||
//
|
|
||||||
this.btnStart.Image = global::CxbxDebugger.Properties.Resources.run;
|
|
||||||
this.btnStart.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.btnStart.Name = "btnStart";
|
|
||||||
this.btnStart.Size = new System.Drawing.Size(51, 22);
|
|
||||||
this.btnStart.Text = "Start";
|
|
||||||
this.btnStart.Click += new System.EventHandler(this.toolStripButton1_Click);
|
|
||||||
//
|
|
||||||
// toolStripSeparator1
|
|
||||||
//
|
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
|
||||||
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// btnSuspend
|
|
||||||
//
|
|
||||||
this.btnSuspend.Image = global::CxbxDebugger.Properties.Resources.pause;
|
|
||||||
this.btnSuspend.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.btnSuspend.Name = "btnSuspend";
|
|
||||||
this.btnSuspend.Size = new System.Drawing.Size(72, 22);
|
|
||||||
this.btnSuspend.Text = "Suspend";
|
|
||||||
this.btnSuspend.Click += new System.EventHandler(this.toolStripButton2_Click);
|
|
||||||
//
|
|
||||||
// btnResume
|
|
||||||
//
|
|
||||||
this.btnResume.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.btnResume.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.btnResume.Name = "btnResume";
|
|
||||||
this.btnResume.Size = new System.Drawing.Size(53, 22);
|
|
||||||
this.btnResume.Text = "Resume";
|
|
||||||
this.btnResume.Click += new System.EventHandler(this.toolStripButton3_Click);
|
|
||||||
//
|
|
||||||
// toolStripSeparator2
|
|
||||||
//
|
|
||||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
|
||||||
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// toolStripLabel1
|
|
||||||
//
|
|
||||||
this.toolStripLabel1.Name = "toolStripLabel1";
|
|
||||||
this.toolStripLabel1.Size = new System.Drawing.Size(47, 22);
|
|
||||||
this.toolStripLabel1.Text = "Thread:";
|
|
||||||
//
|
|
||||||
// cbThreads
|
|
||||||
//
|
|
||||||
this.cbThreads.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cbThreads.Name = "cbThreads";
|
|
||||||
this.cbThreads.Size = new System.Drawing.Size(200, 25);
|
|
||||||
this.cbThreads.SelectedIndexChanged += new System.EventHandler(this.cbThreads_SelectedIndexChanged);
|
|
||||||
//
|
|
||||||
// toolStripLabel2
|
|
||||||
//
|
|
||||||
this.toolStripLabel2.Name = "toolStripLabel2";
|
|
||||||
this.toolStripLabel2.Size = new System.Drawing.Size(74, 22);
|
|
||||||
this.toolStripLabel2.Text = "Stack Frame:";
|
|
||||||
//
|
|
||||||
// cbFrames
|
|
||||||
//
|
|
||||||
this.cbFrames.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cbFrames.Name = "cbFrames";
|
|
||||||
this.cbFrames.Size = new System.Drawing.Size(200, 25);
|
|
||||||
this.cbFrames.SelectedIndexChanged += new System.EventHandler(this.cbFrames_SelectedIndexChanged);
|
|
||||||
//
|
|
||||||
// tableLayoutPanel3
|
|
||||||
//
|
|
||||||
this.tableLayoutPanel3.ColumnCount = 1;
|
|
||||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
|
||||||
this.tableLayoutPanel3.Controls.Add(this.statusBar, 0, 2);
|
|
||||||
this.tableLayoutPanel3.Controls.Add(this.tabContainer, 0, 0);
|
|
||||||
this.tableLayoutPanel3.Controls.Add(this.lbConsole, 0, 1);
|
|
||||||
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 25);
|
|
||||||
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
|
|
||||||
this.tableLayoutPanel3.RowCount = 3;
|
|
||||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 80F));
|
|
||||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
|
||||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
|
||||||
this.tableLayoutPanel3.Size = new System.Drawing.Size(734, 306);
|
|
||||||
this.tableLayoutPanel3.TabIndex = 9;
|
|
||||||
//
|
|
||||||
// statusBar
|
|
||||||
//
|
|
||||||
this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
this.statusBar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.lblStatus});
|
|
||||||
this.statusBar.Location = new System.Drawing.Point(0, 285);
|
|
||||||
this.statusBar.Name = "statusBar";
|
|
||||||
this.statusBar.Size = new System.Drawing.Size(734, 21);
|
|
||||||
this.statusBar.TabIndex = 10;
|
|
||||||
this.statusBar.Text = "statusStrip1";
|
|
||||||
//
|
|
||||||
// lblStatus
|
|
||||||
//
|
|
||||||
this.lblStatus.Name = "lblStatus";
|
|
||||||
this.lblStatus.Size = new System.Drawing.Size(39, 16);
|
|
||||||
this.lblStatus.Text = "Ready";
|
|
||||||
//
|
|
||||||
// tabContainer
|
// tabContainer
|
||||||
//
|
//
|
||||||
|
this.tabContainer.Controls.Add(this.tabSummary);
|
||||||
this.tabContainer.Controls.Add(this.tabDisassembly);
|
this.tabContainer.Controls.Add(this.tabDisassembly);
|
||||||
this.tabContainer.Controls.Add(this.tabBreakpoints);
|
this.tabContainer.Controls.Add(this.tabBreakpoints);
|
||||||
this.tabContainer.Controls.Add(this.tabWatch);
|
this.tabContainer.Controls.Add(this.tabWatch);
|
||||||
|
@ -290,20 +154,86 @@
|
||||||
this.tabContainer.Controls.Add(this.tabTweaks);
|
this.tabContainer.Controls.Add(this.tabTweaks);
|
||||||
this.tabContainer.Controls.Add(this.tabOutput);
|
this.tabContainer.Controls.Add(this.tabOutput);
|
||||||
this.tabContainer.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.tabContainer.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.tabContainer.Location = new System.Drawing.Point(3, 3);
|
this.tabContainer.Location = new System.Drawing.Point(0, 0);
|
||||||
this.tabContainer.Multiline = true;
|
this.tabContainer.Multiline = true;
|
||||||
this.tabContainer.Name = "tabContainer";
|
this.tabContainer.Name = "tabContainer";
|
||||||
this.tabContainer.SelectedIndex = 0;
|
this.tabContainer.SelectedIndex = 0;
|
||||||
this.tabContainer.Size = new System.Drawing.Size(728, 222);
|
this.tabContainer.Size = new System.Drawing.Size(734, 331);
|
||||||
this.tabContainer.TabIndex = 3;
|
this.tabContainer.TabIndex = 3;
|
||||||
//
|
//
|
||||||
|
// tabSummary
|
||||||
|
//
|
||||||
|
this.tabSummary.Controls.Add(this.linkLabel3);
|
||||||
|
this.tabSummary.Controls.Add(this.linkLabel2);
|
||||||
|
this.tabSummary.Controls.Add(this.linkLabel1);
|
||||||
|
this.tabSummary.Controls.Add(this.label9);
|
||||||
|
this.tabSummary.Controls.Add(this.label7);
|
||||||
|
this.tabSummary.Location = new System.Drawing.Point(4, 22);
|
||||||
|
this.tabSummary.Name = "tabSummary";
|
||||||
|
this.tabSummary.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
|
||||||
|
this.tabSummary.Size = new System.Drawing.Size(726, 305);
|
||||||
|
this.tabSummary.TabIndex = 6;
|
||||||
|
this.tabSummary.Text = "Summary";
|
||||||
|
this.tabSummary.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// linkLabel3
|
||||||
|
//
|
||||||
|
this.linkLabel3.AutoSize = true;
|
||||||
|
this.linkLabel3.Location = new System.Drawing.Point(8, 109);
|
||||||
|
this.linkLabel3.Name = "linkLabel3";
|
||||||
|
this.linkLabel3.Size = new System.Drawing.Size(89, 13);
|
||||||
|
this.linkLabel3.TabIndex = 5;
|
||||||
|
this.linkLabel3.TabStop = true;
|
||||||
|
this.linkLabel3.Text = "View disassembly";
|
||||||
|
this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked);
|
||||||
|
//
|
||||||
|
// linkLabel2
|
||||||
|
//
|
||||||
|
this.linkLabel2.AutoSize = true;
|
||||||
|
this.linkLabel2.Location = new System.Drawing.Point(8, 82);
|
||||||
|
this.linkLabel2.Name = "linkLabel2";
|
||||||
|
this.linkLabel2.Size = new System.Drawing.Size(69, 13);
|
||||||
|
this.linkLabel2.TabIndex = 4;
|
||||||
|
this.linkLabel2.TabStop = true;
|
||||||
|
this.linkLabel2.Text = "View memory";
|
||||||
|
this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked);
|
||||||
|
//
|
||||||
|
// linkLabel1
|
||||||
|
//
|
||||||
|
this.linkLabel1.AutoSize = true;
|
||||||
|
this.linkLabel1.Location = new System.Drawing.Point(8, 57);
|
||||||
|
this.linkLabel1.Name = "linkLabel1";
|
||||||
|
this.linkLabel1.Size = new System.Drawing.Size(95, 13);
|
||||||
|
this.linkLabel1.TabIndex = 3;
|
||||||
|
this.linkLabel1.TabStop = true;
|
||||||
|
this.linkLabel1.Text = "View file resources";
|
||||||
|
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
|
||||||
|
//
|
||||||
|
// label9
|
||||||
|
//
|
||||||
|
this.label9.AutoSize = true;
|
||||||
|
this.label9.Location = new System.Drawing.Point(6, 32);
|
||||||
|
this.label9.Name = "label9";
|
||||||
|
this.label9.Size = new System.Drawing.Size(376, 13);
|
||||||
|
this.label9.TabIndex = 1;
|
||||||
|
this.label9.Text = "To run with the debugger, select Debug->Start Debugging from the main menu";
|
||||||
|
//
|
||||||
|
// label7
|
||||||
|
//
|
||||||
|
this.label7.AutoSize = true;
|
||||||
|
this.label7.Location = new System.Drawing.Point(8, 3);
|
||||||
|
this.label7.Name = "label7";
|
||||||
|
this.label7.Size = new System.Drawing.Size(155, 13);
|
||||||
|
this.label7.TabIndex = 0;
|
||||||
|
this.label7.Text = "Welcome to the cxbx-debugger";
|
||||||
|
//
|
||||||
// tabDisassembly
|
// tabDisassembly
|
||||||
//
|
//
|
||||||
this.tabDisassembly.Controls.Add(this.splitContainer2);
|
this.tabDisassembly.Controls.Add(this.splitContainer2);
|
||||||
this.tabDisassembly.Location = new System.Drawing.Point(4, 22);
|
this.tabDisassembly.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tabDisassembly.Name = "tabDisassembly";
|
this.tabDisassembly.Name = "tabDisassembly";
|
||||||
this.tabDisassembly.Padding = new System.Windows.Forms.Padding(3);
|
this.tabDisassembly.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
|
||||||
this.tabDisassembly.Size = new System.Drawing.Size(720, 196);
|
this.tabDisassembly.Size = new System.Drawing.Size(726, 305);
|
||||||
this.tabDisassembly.TabIndex = 0;
|
this.tabDisassembly.TabIndex = 0;
|
||||||
this.tabDisassembly.Text = "Disassembly";
|
this.tabDisassembly.Text = "Disassembly";
|
||||||
this.tabDisassembly.UseVisualStyleBackColor = true;
|
this.tabDisassembly.UseVisualStyleBackColor = true;
|
||||||
|
@ -329,14 +259,14 @@
|
||||||
// splitContainer2.Panel2
|
// splitContainer2.Panel2
|
||||||
//
|
//
|
||||||
this.splitContainer2.Panel2.Controls.Add(this.txDisassembly);
|
this.splitContainer2.Panel2.Controls.Add(this.txDisassembly);
|
||||||
this.splitContainer2.Size = new System.Drawing.Size(714, 190);
|
this.splitContainer2.Size = new System.Drawing.Size(720, 299);
|
||||||
this.splitContainer2.SplitterDistance = 34;
|
this.splitContainer2.SplitterDistance = 34;
|
||||||
this.splitContainer2.TabIndex = 2;
|
this.splitContainer2.TabIndex = 2;
|
||||||
//
|
//
|
||||||
// btnToMemory
|
// btnToMemory
|
||||||
//
|
//
|
||||||
this.btnToMemory.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
this.btnToMemory.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.btnToMemory.Location = new System.Drawing.Point(452, 3);
|
this.btnToMemory.Location = new System.Drawing.Point(458, 3);
|
||||||
this.btnToMemory.Name = "btnToMemory";
|
this.btnToMemory.Name = "btnToMemory";
|
||||||
this.btnToMemory.Size = new System.Drawing.Size(119, 23);
|
this.btnToMemory.Size = new System.Drawing.Size(119, 23);
|
||||||
this.btnToMemory.TabIndex = 4;
|
this.btnToMemory.TabIndex = 4;
|
||||||
|
@ -347,7 +277,7 @@
|
||||||
// btnNext
|
// btnNext
|
||||||
//
|
//
|
||||||
this.btnNext.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
this.btnNext.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.btnNext.Location = new System.Drawing.Point(647, 3);
|
this.btnNext.Location = new System.Drawing.Point(654, 3);
|
||||||
this.btnNext.Name = "btnNext";
|
this.btnNext.Name = "btnNext";
|
||||||
this.btnNext.Size = new System.Drawing.Size(64, 23);
|
this.btnNext.Size = new System.Drawing.Size(64, 23);
|
||||||
this.btnNext.TabIndex = 3;
|
this.btnNext.TabIndex = 3;
|
||||||
|
@ -358,7 +288,7 @@
|
||||||
// btnPrev
|
// btnPrev
|
||||||
//
|
//
|
||||||
this.btnPrev.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
this.btnPrev.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.btnPrev.Location = new System.Drawing.Point(577, 3);
|
this.btnPrev.Location = new System.Drawing.Point(584, 3);
|
||||||
this.btnPrev.Name = "btnPrev";
|
this.btnPrev.Name = "btnPrev";
|
||||||
this.btnPrev.Size = new System.Drawing.Size(64, 23);
|
this.btnPrev.Size = new System.Drawing.Size(64, 23);
|
||||||
this.btnPrev.TabIndex = 2;
|
this.btnPrev.TabIndex = 2;
|
||||||
|
@ -369,7 +299,7 @@
|
||||||
// btnGo
|
// btnGo
|
||||||
//
|
//
|
||||||
this.btnGo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
this.btnGo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.btnGo.Location = new System.Drawing.Point(327, 3);
|
this.btnGo.Location = new System.Drawing.Point(334, 3);
|
||||||
this.btnGo.Name = "btnGo";
|
this.btnGo.Name = "btnGo";
|
||||||
this.btnGo.Size = new System.Drawing.Size(119, 23);
|
this.btnGo.Size = new System.Drawing.Size(119, 23);
|
||||||
this.btnGo.TabIndex = 1;
|
this.btnGo.TabIndex = 1;
|
||||||
|
@ -393,7 +323,7 @@
|
||||||
this.cbDisAddr.FormattingEnabled = true;
|
this.cbDisAddr.FormattingEnabled = true;
|
||||||
this.cbDisAddr.Location = new System.Drawing.Point(132, 5);
|
this.cbDisAddr.Location = new System.Drawing.Point(132, 5);
|
||||||
this.cbDisAddr.Name = "cbDisAddr";
|
this.cbDisAddr.Name = "cbDisAddr";
|
||||||
this.cbDisAddr.Size = new System.Drawing.Size(189, 21);
|
this.cbDisAddr.Size = new System.Drawing.Size(196, 21);
|
||||||
this.cbDisAddr.TabIndex = 0;
|
this.cbDisAddr.TabIndex = 0;
|
||||||
this.cbDisAddr.SelectedIndexChanged += new System.EventHandler(this.cbDisAddr_SelectedIndexChanged);
|
this.cbDisAddr.SelectedIndexChanged += new System.EventHandler(this.cbDisAddr_SelectedIndexChanged);
|
||||||
this.cbDisAddr.KeyDown += new System.Windows.Forms.KeyEventHandler(this.comboBox1_KeyDown);
|
this.cbDisAddr.KeyDown += new System.Windows.Forms.KeyEventHandler(this.comboBox1_KeyDown);
|
||||||
|
@ -409,7 +339,7 @@
|
||||||
this.txDisassembly.Name = "txDisassembly";
|
this.txDisassembly.Name = "txDisassembly";
|
||||||
this.txDisassembly.ReadOnly = true;
|
this.txDisassembly.ReadOnly = true;
|
||||||
this.txDisassembly.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical;
|
this.txDisassembly.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical;
|
||||||
this.txDisassembly.Size = new System.Drawing.Size(714, 152);
|
this.txDisassembly.Size = new System.Drawing.Size(720, 261);
|
||||||
this.txDisassembly.TabIndex = 1;
|
this.txDisassembly.TabIndex = 1;
|
||||||
this.txDisassembly.Text = "";
|
this.txDisassembly.Text = "";
|
||||||
//
|
//
|
||||||
|
@ -418,8 +348,8 @@
|
||||||
this.tabBreakpoints.Controls.Add(this.splitContainer3);
|
this.tabBreakpoints.Controls.Add(this.splitContainer3);
|
||||||
this.tabBreakpoints.Location = new System.Drawing.Point(4, 22);
|
this.tabBreakpoints.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tabBreakpoints.Name = "tabBreakpoints";
|
this.tabBreakpoints.Name = "tabBreakpoints";
|
||||||
this.tabBreakpoints.Padding = new System.Windows.Forms.Padding(3);
|
this.tabBreakpoints.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
|
||||||
this.tabBreakpoints.Size = new System.Drawing.Size(720, 196);
|
this.tabBreakpoints.Size = new System.Drawing.Size(726, 305);
|
||||||
this.tabBreakpoints.TabIndex = 1;
|
this.tabBreakpoints.TabIndex = 1;
|
||||||
this.tabBreakpoints.Text = "Breakpoints";
|
this.tabBreakpoints.Text = "Breakpoints";
|
||||||
this.tabBreakpoints.UseVisualStyleBackColor = true;
|
this.tabBreakpoints.UseVisualStyleBackColor = true;
|
||||||
|
@ -438,7 +368,7 @@
|
||||||
// splitContainer3.Panel2
|
// splitContainer3.Panel2
|
||||||
//
|
//
|
||||||
this.splitContainer3.Panel2.Controls.Add(this.clbBreakpoints);
|
this.splitContainer3.Panel2.Controls.Add(this.clbBreakpoints);
|
||||||
this.splitContainer3.Size = new System.Drawing.Size(714, 190);
|
this.splitContainer3.Size = new System.Drawing.Size(720, 299);
|
||||||
this.splitContainer3.SplitterDistance = 237;
|
this.splitContainer3.SplitterDistance = 237;
|
||||||
this.splitContainer3.TabIndex = 5;
|
this.splitContainer3.TabIndex = 5;
|
||||||
//
|
//
|
||||||
|
@ -451,7 +381,7 @@
|
||||||
this.groupBox4.Controls.Add(this.cbBreakpointCxbx);
|
this.groupBox4.Controls.Add(this.cbBreakpointCxbx);
|
||||||
this.groupBox4.Location = new System.Drawing.Point(2, 112);
|
this.groupBox4.Location = new System.Drawing.Point(2, 112);
|
||||||
this.groupBox4.Name = "groupBox4";
|
this.groupBox4.Name = "groupBox4";
|
||||||
this.groupBox4.Size = new System.Drawing.Size(233, 75);
|
this.groupBox4.Size = new System.Drawing.Size(233, 185);
|
||||||
this.groupBox4.TabIndex = 5;
|
this.groupBox4.TabIndex = 5;
|
||||||
this.groupBox4.TabStop = false;
|
this.groupBox4.TabStop = false;
|
||||||
this.groupBox4.Text = "Interrupts";
|
this.groupBox4.Text = "Interrupts";
|
||||||
|
@ -489,7 +419,7 @@
|
||||||
this.groupBox1.Controls.Add(this.tbFilter);
|
this.groupBox1.Controls.Add(this.tbFilter);
|
||||||
this.groupBox1.Location = new System.Drawing.Point(0, 0);
|
this.groupBox1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.Size = new System.Drawing.Size(234, 106);
|
this.groupBox1.Size = new System.Drawing.Size(233, 106);
|
||||||
this.groupBox1.TabIndex = 4;
|
this.groupBox1.TabIndex = 4;
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
this.groupBox1.Text = "File Watch";
|
this.groupBox1.Text = "File Watch";
|
||||||
|
@ -502,7 +432,7 @@
|
||||||
this.cbAction.FormattingEnabled = true;
|
this.cbAction.FormattingEnabled = true;
|
||||||
this.cbAction.Location = new System.Drawing.Point(89, 45);
|
this.cbAction.Location = new System.Drawing.Point(89, 45);
|
||||||
this.cbAction.Name = "cbAction";
|
this.cbAction.Name = "cbAction";
|
||||||
this.cbAction.Size = new System.Drawing.Size(139, 21);
|
this.cbAction.Size = new System.Drawing.Size(137, 21);
|
||||||
this.cbAction.TabIndex = 6;
|
this.cbAction.TabIndex = 6;
|
||||||
//
|
//
|
||||||
// label5
|
// label5
|
||||||
|
@ -529,7 +459,7 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.btnAddFileBp.Location = new System.Drawing.Point(89, 72);
|
this.btnAddFileBp.Location = new System.Drawing.Point(89, 72);
|
||||||
this.btnAddFileBp.Name = "btnAddFileBp";
|
this.btnAddFileBp.Name = "btnAddFileBp";
|
||||||
this.btnAddFileBp.Size = new System.Drawing.Size(139, 23);
|
this.btnAddFileBp.Size = new System.Drawing.Size(137, 23);
|
||||||
this.btnAddFileBp.TabIndex = 4;
|
this.btnAddFileBp.TabIndex = 4;
|
||||||
this.btnAddFileBp.Text = "Add";
|
this.btnAddFileBp.Text = "Add";
|
||||||
this.btnAddFileBp.UseVisualStyleBackColor = true;
|
this.btnAddFileBp.UseVisualStyleBackColor = true;
|
||||||
|
@ -541,7 +471,7 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.tbFilter.Location = new System.Drawing.Point(89, 19);
|
this.tbFilter.Location = new System.Drawing.Point(89, 19);
|
||||||
this.tbFilter.Name = "tbFilter";
|
this.tbFilter.Name = "tbFilter";
|
||||||
this.tbFilter.Size = new System.Drawing.Size(139, 20);
|
this.tbFilter.Size = new System.Drawing.Size(137, 20);
|
||||||
this.tbFilter.TabIndex = 2;
|
this.tbFilter.TabIndex = 2;
|
||||||
//
|
//
|
||||||
// clbBreakpoints
|
// clbBreakpoints
|
||||||
|
@ -550,7 +480,7 @@
|
||||||
this.clbBreakpoints.FormattingEnabled = true;
|
this.clbBreakpoints.FormattingEnabled = true;
|
||||||
this.clbBreakpoints.Location = new System.Drawing.Point(0, 0);
|
this.clbBreakpoints.Location = new System.Drawing.Point(0, 0);
|
||||||
this.clbBreakpoints.Name = "clbBreakpoints";
|
this.clbBreakpoints.Name = "clbBreakpoints";
|
||||||
this.clbBreakpoints.Size = new System.Drawing.Size(473, 190);
|
this.clbBreakpoints.Size = new System.Drawing.Size(479, 299);
|
||||||
this.clbBreakpoints.TabIndex = 0;
|
this.clbBreakpoints.TabIndex = 0;
|
||||||
this.clbBreakpoints.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.clbBreakpoints_ItemCheck);
|
this.clbBreakpoints.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.clbBreakpoints_ItemCheck);
|
||||||
this.clbBreakpoints.KeyDown += new System.Windows.Forms.KeyEventHandler(this.clbBreakpoints_KeyDown);
|
this.clbBreakpoints.KeyDown += new System.Windows.Forms.KeyEventHandler(this.clbBreakpoints_KeyDown);
|
||||||
|
@ -560,8 +490,8 @@
|
||||||
this.tabWatch.Controls.Add(this.splitContainer1);
|
this.tabWatch.Controls.Add(this.splitContainer1);
|
||||||
this.tabWatch.Location = new System.Drawing.Point(4, 22);
|
this.tabWatch.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tabWatch.Name = "tabWatch";
|
this.tabWatch.Name = "tabWatch";
|
||||||
this.tabWatch.Padding = new System.Windows.Forms.Padding(3);
|
this.tabWatch.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
|
||||||
this.tabWatch.Size = new System.Drawing.Size(720, 196);
|
this.tabWatch.Size = new System.Drawing.Size(726, 305);
|
||||||
this.tabWatch.TabIndex = 2;
|
this.tabWatch.TabIndex = 2;
|
||||||
this.tabWatch.Text = "File Watcher";
|
this.tabWatch.Text = "File Watcher";
|
||||||
this.tabWatch.UseVisualStyleBackColor = true;
|
this.tabWatch.UseVisualStyleBackColor = true;
|
||||||
|
@ -579,8 +509,8 @@
|
||||||
// splitContainer1.Panel2
|
// splitContainer1.Panel2
|
||||||
//
|
//
|
||||||
this.splitContainer1.Panel2.Controls.Add(this.lbOpenedFiles);
|
this.splitContainer1.Panel2.Controls.Add(this.lbOpenedFiles);
|
||||||
this.splitContainer1.Size = new System.Drawing.Size(714, 190);
|
this.splitContainer1.Size = new System.Drawing.Size(720, 299);
|
||||||
this.splitContainer1.SplitterDistance = 501;
|
this.splitContainer1.SplitterDistance = 503;
|
||||||
this.splitContainer1.TabIndex = 3;
|
this.splitContainer1.TabIndex = 3;
|
||||||
//
|
//
|
||||||
// lvFileDetails
|
// lvFileDetails
|
||||||
|
@ -595,7 +525,7 @@
|
||||||
this.lvFileDetails.Location = new System.Drawing.Point(0, 0);
|
this.lvFileDetails.Location = new System.Drawing.Point(0, 0);
|
||||||
this.lvFileDetails.MultiSelect = false;
|
this.lvFileDetails.MultiSelect = false;
|
||||||
this.lvFileDetails.Name = "lvFileDetails";
|
this.lvFileDetails.Name = "lvFileDetails";
|
||||||
this.lvFileDetails.Size = new System.Drawing.Size(501, 190);
|
this.lvFileDetails.Size = new System.Drawing.Size(503, 299);
|
||||||
this.lvFileDetails.TabIndex = 2;
|
this.lvFileDetails.TabIndex = 2;
|
||||||
this.lvFileDetails.UseCompatibleStateImageBehavior = false;
|
this.lvFileDetails.UseCompatibleStateImageBehavior = false;
|
||||||
this.lvFileDetails.View = System.Windows.Forms.View.Details;
|
this.lvFileDetails.View = System.Windows.Forms.View.Details;
|
||||||
|
@ -621,7 +551,7 @@
|
||||||
this.lbOpenedFiles.FormattingEnabled = true;
|
this.lbOpenedFiles.FormattingEnabled = true;
|
||||||
this.lbOpenedFiles.Location = new System.Drawing.Point(0, 0);
|
this.lbOpenedFiles.Location = new System.Drawing.Point(0, 0);
|
||||||
this.lbOpenedFiles.Name = "lbOpenedFiles";
|
this.lbOpenedFiles.Name = "lbOpenedFiles";
|
||||||
this.lbOpenedFiles.Size = new System.Drawing.Size(209, 190);
|
this.lbOpenedFiles.Size = new System.Drawing.Size(213, 299);
|
||||||
this.lbOpenedFiles.TabIndex = 0;
|
this.lbOpenedFiles.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// tabMemory
|
// tabMemory
|
||||||
|
@ -629,8 +559,8 @@
|
||||||
this.tabMemory.Controls.Add(this.splitContainer4);
|
this.tabMemory.Controls.Add(this.splitContainer4);
|
||||||
this.tabMemory.Location = new System.Drawing.Point(4, 22);
|
this.tabMemory.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tabMemory.Name = "tabMemory";
|
this.tabMemory.Name = "tabMemory";
|
||||||
this.tabMemory.Padding = new System.Windows.Forms.Padding(3);
|
this.tabMemory.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
|
||||||
this.tabMemory.Size = new System.Drawing.Size(720, 196);
|
this.tabMemory.Size = new System.Drawing.Size(726, 305);
|
||||||
this.tabMemory.TabIndex = 4;
|
this.tabMemory.TabIndex = 4;
|
||||||
this.tabMemory.Text = "Memory Viewer";
|
this.tabMemory.Text = "Memory Viewer";
|
||||||
this.tabMemory.UseVisualStyleBackColor = true;
|
this.tabMemory.UseVisualStyleBackColor = true;
|
||||||
|
@ -648,8 +578,8 @@
|
||||||
// splitContainer4.Panel2
|
// splitContainer4.Panel2
|
||||||
//
|
//
|
||||||
this.splitContainer4.Panel2.Controls.Add(this.groupBox2);
|
this.splitContainer4.Panel2.Controls.Add(this.groupBox2);
|
||||||
this.splitContainer4.Size = new System.Drawing.Size(714, 190);
|
this.splitContainer4.Size = new System.Drawing.Size(720, 299);
|
||||||
this.splitContainer4.SplitterDistance = 376;
|
this.splitContainer4.SplitterDistance = 378;
|
||||||
this.splitContainer4.TabIndex = 7;
|
this.splitContainer4.TabIndex = 7;
|
||||||
//
|
//
|
||||||
// txMemoryDump
|
// txMemoryDump
|
||||||
|
@ -663,7 +593,7 @@
|
||||||
this.txMemoryDump.Name = "txMemoryDump";
|
this.txMemoryDump.Name = "txMemoryDump";
|
||||||
this.txMemoryDump.ReadOnly = true;
|
this.txMemoryDump.ReadOnly = true;
|
||||||
this.txMemoryDump.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
this.txMemoryDump.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||||
this.txMemoryDump.Size = new System.Drawing.Size(376, 190);
|
this.txMemoryDump.Size = new System.Drawing.Size(378, 299);
|
||||||
this.txMemoryDump.TabIndex = 0;
|
this.txMemoryDump.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// groupBox2
|
// groupBox2
|
||||||
|
@ -681,7 +611,7 @@
|
||||||
this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.groupBox2.Location = new System.Drawing.Point(0, 0);
|
this.groupBox2.Location = new System.Drawing.Point(0, 0);
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.groupBox2.Name = "groupBox2";
|
||||||
this.groupBox2.Size = new System.Drawing.Size(334, 190);
|
this.groupBox2.Size = new System.Drawing.Size(338, 299);
|
||||||
this.groupBox2.TabIndex = 8;
|
this.groupBox2.TabIndex = 8;
|
||||||
this.groupBox2.TabStop = false;
|
this.groupBox2.TabStop = false;
|
||||||
this.groupBox2.Text = "View or Dump Memory";
|
this.groupBox2.Text = "View or Dump Memory";
|
||||||
|
@ -692,7 +622,7 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.textBox2.Location = new System.Drawing.Point(213, 129);
|
this.textBox2.Location = new System.Drawing.Point(213, 129);
|
||||||
this.textBox2.Name = "textBox2";
|
this.textBox2.Name = "textBox2";
|
||||||
this.textBox2.Size = new System.Drawing.Size(115, 20);
|
this.textBox2.Size = new System.Drawing.Size(118, 20);
|
||||||
this.textBox2.TabIndex = 10;
|
this.textBox2.TabIndex = 10;
|
||||||
//
|
//
|
||||||
// label8
|
// label8
|
||||||
|
@ -712,7 +642,7 @@
|
||||||
this.cbDataFormat.FormattingEnabled = true;
|
this.cbDataFormat.FormattingEnabled = true;
|
||||||
this.cbDataFormat.Location = new System.Drawing.Point(88, 130);
|
this.cbDataFormat.Location = new System.Drawing.Point(88, 130);
|
||||||
this.cbDataFormat.Name = "cbDataFormat";
|
this.cbDataFormat.Name = "cbDataFormat";
|
||||||
this.cbDataFormat.Size = new System.Drawing.Size(119, 21);
|
this.cbDataFormat.Size = new System.Drawing.Size(122, 21);
|
||||||
this.cbDataFormat.TabIndex = 8;
|
this.cbDataFormat.TabIndex = 8;
|
||||||
this.cbDataFormat.SelectionChangeCommitted += new System.EventHandler(this.cbDataFormat_SelectionChangeCommitted);
|
this.cbDataFormat.SelectionChangeCommitted += new System.EventHandler(this.cbDataFormat_SelectionChangeCommitted);
|
||||||
//
|
//
|
||||||
|
@ -722,7 +652,7 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.btnAddWatch.Location = new System.Drawing.Point(88, 157);
|
this.btnAddWatch.Location = new System.Drawing.Point(88, 157);
|
||||||
this.btnAddWatch.Name = "btnAddWatch";
|
this.btnAddWatch.Name = "btnAddWatch";
|
||||||
this.btnAddWatch.Size = new System.Drawing.Size(240, 23);
|
this.btnAddWatch.Size = new System.Drawing.Size(243, 23);
|
||||||
this.btnAddWatch.TabIndex = 7;
|
this.btnAddWatch.TabIndex = 7;
|
||||||
this.btnAddWatch.Text = "Add to Editor...";
|
this.btnAddWatch.Text = "Add to Editor...";
|
||||||
this.btnAddWatch.UseVisualStyleBackColor = true;
|
this.btnAddWatch.UseVisualStyleBackColor = true;
|
||||||
|
@ -743,7 +673,7 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.btnDumpMemory.Location = new System.Drawing.Point(88, 100);
|
this.btnDumpMemory.Location = new System.Drawing.Point(88, 100);
|
||||||
this.btnDumpMemory.Name = "btnDumpMemory";
|
this.btnDumpMemory.Name = "btnDumpMemory";
|
||||||
this.btnDumpMemory.Size = new System.Drawing.Size(240, 23);
|
this.btnDumpMemory.Size = new System.Drawing.Size(243, 23);
|
||||||
this.btnDumpMemory.TabIndex = 6;
|
this.btnDumpMemory.TabIndex = 6;
|
||||||
this.btnDumpMemory.Text = "Dump Memory to File...";
|
this.btnDumpMemory.Text = "Dump Memory to File...";
|
||||||
this.btnDumpMemory.UseVisualStyleBackColor = true;
|
this.btnDumpMemory.UseVisualStyleBackColor = true;
|
||||||
|
@ -755,7 +685,7 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.txAddress.Location = new System.Drawing.Point(88, 18);
|
this.txAddress.Location = new System.Drawing.Point(88, 18);
|
||||||
this.txAddress.Name = "txAddress";
|
this.txAddress.Name = "txAddress";
|
||||||
this.txAddress.Size = new System.Drawing.Size(240, 20);
|
this.txAddress.Size = new System.Drawing.Size(243, 20);
|
||||||
this.txAddress.TabIndex = 1;
|
this.txAddress.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// label2
|
// label2
|
||||||
|
@ -773,7 +703,7 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.btnReadMemory.Location = new System.Drawing.Point(88, 71);
|
this.btnReadMemory.Location = new System.Drawing.Point(88, 71);
|
||||||
this.btnReadMemory.Name = "btnReadMemory";
|
this.btnReadMemory.Name = "btnReadMemory";
|
||||||
this.btnReadMemory.Size = new System.Drawing.Size(240, 23);
|
this.btnReadMemory.Size = new System.Drawing.Size(243, 23);
|
||||||
this.btnReadMemory.TabIndex = 2;
|
this.btnReadMemory.TabIndex = 2;
|
||||||
this.btnReadMemory.Text = "Read Memory";
|
this.btnReadMemory.Text = "Read Memory";
|
||||||
this.btnReadMemory.UseVisualStyleBackColor = true;
|
this.btnReadMemory.UseVisualStyleBackColor = true;
|
||||||
|
@ -785,7 +715,7 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.txSize.Location = new System.Drawing.Point(88, 45);
|
this.txSize.Location = new System.Drawing.Point(88, 45);
|
||||||
this.txSize.Name = "txSize";
|
this.txSize.Name = "txSize";
|
||||||
this.txSize.Size = new System.Drawing.Size(240, 20);
|
this.txSize.Size = new System.Drawing.Size(243, 20);
|
||||||
this.txSize.TabIndex = 3;
|
this.txSize.TabIndex = 3;
|
||||||
this.txSize.Text = "32";
|
this.txSize.Text = "32";
|
||||||
//
|
//
|
||||||
|
@ -794,8 +724,8 @@
|
||||||
this.tabTweaks.Controls.Add(this.tabCEContainer);
|
this.tabTweaks.Controls.Add(this.tabCEContainer);
|
||||||
this.tabTweaks.Location = new System.Drawing.Point(4, 22);
|
this.tabTweaks.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tabTweaks.Name = "tabTweaks";
|
this.tabTweaks.Name = "tabTweaks";
|
||||||
this.tabTweaks.Padding = new System.Windows.Forms.Padding(3);
|
this.tabTweaks.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
|
||||||
this.tabTweaks.Size = new System.Drawing.Size(720, 196);
|
this.tabTweaks.Size = new System.Drawing.Size(726, 305);
|
||||||
this.tabTweaks.TabIndex = 5;
|
this.tabTweaks.TabIndex = 5;
|
||||||
this.tabTweaks.Text = "Memory Editor";
|
this.tabTweaks.Text = "Memory Editor";
|
||||||
this.tabTweaks.UseVisualStyleBackColor = true;
|
this.tabTweaks.UseVisualStyleBackColor = true;
|
||||||
|
@ -808,7 +738,7 @@
|
||||||
this.tabCEContainer.Location = new System.Drawing.Point(3, 3);
|
this.tabCEContainer.Location = new System.Drawing.Point(3, 3);
|
||||||
this.tabCEContainer.Name = "tabCEContainer";
|
this.tabCEContainer.Name = "tabCEContainer";
|
||||||
this.tabCEContainer.SelectedIndex = 0;
|
this.tabCEContainer.SelectedIndex = 0;
|
||||||
this.tabCEContainer.Size = new System.Drawing.Size(714, 190);
|
this.tabCEContainer.Size = new System.Drawing.Size(720, 299);
|
||||||
this.tabCEContainer.TabIndex = 5;
|
this.tabCEContainer.TabIndex = 5;
|
||||||
//
|
//
|
||||||
// tabSubData
|
// tabSubData
|
||||||
|
@ -816,8 +746,8 @@
|
||||||
this.tabSubData.Controls.Add(this.splitContainer6);
|
this.tabSubData.Controls.Add(this.splitContainer6);
|
||||||
this.tabSubData.Location = new System.Drawing.Point(4, 22);
|
this.tabSubData.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tabSubData.Name = "tabSubData";
|
this.tabSubData.Name = "tabSubData";
|
||||||
this.tabSubData.Padding = new System.Windows.Forms.Padding(3);
|
this.tabSubData.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
|
||||||
this.tabSubData.Size = new System.Drawing.Size(706, 164);
|
this.tabSubData.Size = new System.Drawing.Size(712, 273);
|
||||||
this.tabSubData.TabIndex = 0;
|
this.tabSubData.TabIndex = 0;
|
||||||
this.tabSubData.Text = "Edit Data";
|
this.tabSubData.Text = "Edit Data";
|
||||||
this.tabSubData.UseVisualStyleBackColor = true;
|
this.tabSubData.UseVisualStyleBackColor = true;
|
||||||
|
@ -839,8 +769,8 @@
|
||||||
// splitContainer6.Panel2
|
// splitContainer6.Panel2
|
||||||
//
|
//
|
||||||
this.splitContainer6.Panel2.Controls.Add(this.lvCEMemory);
|
this.splitContainer6.Panel2.Controls.Add(this.lvCEMemory);
|
||||||
this.splitContainer6.Size = new System.Drawing.Size(700, 158);
|
this.splitContainer6.Size = new System.Drawing.Size(706, 267);
|
||||||
this.splitContainer6.SplitterDistance = 34;
|
this.splitContainer6.SplitterDistance = 56;
|
||||||
this.splitContainer6.TabIndex = 2;
|
this.splitContainer6.TabIndex = 2;
|
||||||
//
|
//
|
||||||
// btnRefresh
|
// btnRefresh
|
||||||
|
@ -866,7 +796,7 @@
|
||||||
// btnApply
|
// btnApply
|
||||||
//
|
//
|
||||||
this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.btnApply.Location = new System.Drawing.Point(574, 3);
|
this.btnApply.Location = new System.Drawing.Point(580, 3);
|
||||||
this.btnApply.Name = "btnApply";
|
this.btnApply.Name = "btnApply";
|
||||||
this.btnApply.Size = new System.Drawing.Size(123, 23);
|
this.btnApply.Size = new System.Drawing.Size(123, 23);
|
||||||
this.btnApply.TabIndex = 4;
|
this.btnApply.TabIndex = 4;
|
||||||
|
@ -880,7 +810,7 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.txNewValue.Location = new System.Drawing.Point(261, 5);
|
this.txNewValue.Location = new System.Drawing.Point(261, 5);
|
||||||
this.txNewValue.Name = "txNewValue";
|
this.txNewValue.Name = "txNewValue";
|
||||||
this.txNewValue.Size = new System.Drawing.Size(307, 20);
|
this.txNewValue.Size = new System.Drawing.Size(313, 20);
|
||||||
this.txNewValue.TabIndex = 2;
|
this.txNewValue.TabIndex = 2;
|
||||||
//
|
//
|
||||||
// lvCEMemory
|
// lvCEMemory
|
||||||
|
@ -896,7 +826,7 @@
|
||||||
this.lvCEMemory.Location = new System.Drawing.Point(0, 0);
|
this.lvCEMemory.Location = new System.Drawing.Point(0, 0);
|
||||||
this.lvCEMemory.MultiSelect = false;
|
this.lvCEMemory.MultiSelect = false;
|
||||||
this.lvCEMemory.Name = "lvCEMemory";
|
this.lvCEMemory.Name = "lvCEMemory";
|
||||||
this.lvCEMemory.Size = new System.Drawing.Size(700, 120);
|
this.lvCEMemory.Size = new System.Drawing.Size(706, 207);
|
||||||
this.lvCEMemory.TabIndex = 1;
|
this.lvCEMemory.TabIndex = 1;
|
||||||
this.lvCEMemory.UseCompatibleStateImageBehavior = false;
|
this.lvCEMemory.UseCompatibleStateImageBehavior = false;
|
||||||
this.lvCEMemory.View = System.Windows.Forms.View.Details;
|
this.lvCEMemory.View = System.Windows.Forms.View.Details;
|
||||||
|
@ -926,8 +856,8 @@
|
||||||
this.tabSubAssembly.Controls.Add(this.lvCEAssembly);
|
this.tabSubAssembly.Controls.Add(this.lvCEAssembly);
|
||||||
this.tabSubAssembly.Location = new System.Drawing.Point(4, 22);
|
this.tabSubAssembly.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tabSubAssembly.Name = "tabSubAssembly";
|
this.tabSubAssembly.Name = "tabSubAssembly";
|
||||||
this.tabSubAssembly.Padding = new System.Windows.Forms.Padding(3);
|
this.tabSubAssembly.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
|
||||||
this.tabSubAssembly.Size = new System.Drawing.Size(706, 164);
|
this.tabSubAssembly.Size = new System.Drawing.Size(715, 277);
|
||||||
this.tabSubAssembly.TabIndex = 1;
|
this.tabSubAssembly.TabIndex = 1;
|
||||||
this.tabSubAssembly.Text = "Edit Assembly";
|
this.tabSubAssembly.Text = "Edit Assembly";
|
||||||
this.tabSubAssembly.UseVisualStyleBackColor = true;
|
this.tabSubAssembly.UseVisualStyleBackColor = true;
|
||||||
|
@ -945,7 +875,7 @@
|
||||||
this.lvCEAssembly.Location = new System.Drawing.Point(3, 3);
|
this.lvCEAssembly.Location = new System.Drawing.Point(3, 3);
|
||||||
this.lvCEAssembly.MultiSelect = false;
|
this.lvCEAssembly.MultiSelect = false;
|
||||||
this.lvCEAssembly.Name = "lvCEAssembly";
|
this.lvCEAssembly.Name = "lvCEAssembly";
|
||||||
this.lvCEAssembly.Size = new System.Drawing.Size(700, 158);
|
this.lvCEAssembly.Size = new System.Drawing.Size(709, 271);
|
||||||
this.lvCEAssembly.TabIndex = 4;
|
this.lvCEAssembly.TabIndex = 4;
|
||||||
this.lvCEAssembly.UseCompatibleStateImageBehavior = false;
|
this.lvCEAssembly.UseCompatibleStateImageBehavior = false;
|
||||||
this.lvCEAssembly.View = System.Windows.Forms.View.Details;
|
this.lvCEAssembly.View = System.Windows.Forms.View.Details;
|
||||||
|
@ -975,8 +905,8 @@
|
||||||
this.tabOutput.Controls.Add(this.splitContainer5);
|
this.tabOutput.Controls.Add(this.splitContainer5);
|
||||||
this.tabOutput.Location = new System.Drawing.Point(4, 22);
|
this.tabOutput.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tabOutput.Name = "tabOutput";
|
this.tabOutput.Name = "tabOutput";
|
||||||
this.tabOutput.Padding = new System.Windows.Forms.Padding(3);
|
this.tabOutput.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
|
||||||
this.tabOutput.Size = new System.Drawing.Size(720, 196);
|
this.tabOutput.Size = new System.Drawing.Size(726, 305);
|
||||||
this.tabOutput.TabIndex = 3;
|
this.tabOutput.TabIndex = 3;
|
||||||
this.tabOutput.Text = "Debug Output";
|
this.tabOutput.Text = "Debug Output";
|
||||||
this.tabOutput.UseVisualStyleBackColor = true;
|
this.tabOutput.UseVisualStyleBackColor = true;
|
||||||
|
@ -998,7 +928,7 @@
|
||||||
// splitContainer5.Panel2
|
// splitContainer5.Panel2
|
||||||
//
|
//
|
||||||
this.splitContainer5.Panel2.Controls.Add(this.lbDebug);
|
this.splitContainer5.Panel2.Controls.Add(this.lbDebug);
|
||||||
this.splitContainer5.Size = new System.Drawing.Size(714, 190);
|
this.splitContainer5.Size = new System.Drawing.Size(720, 299);
|
||||||
this.splitContainer5.SplitterDistance = 26;
|
this.splitContainer5.SplitterDistance = 26;
|
||||||
this.splitContainer5.TabIndex = 6;
|
this.splitContainer5.TabIndex = 6;
|
||||||
//
|
//
|
||||||
|
@ -1009,7 +939,7 @@
|
||||||
this.txFilter.Enabled = false;
|
this.txFilter.Enabled = false;
|
||||||
this.txFilter.Location = new System.Drawing.Point(41, 3);
|
this.txFilter.Location = new System.Drawing.Point(41, 3);
|
||||||
this.txFilter.Name = "txFilter";
|
this.txFilter.Name = "txFilter";
|
||||||
this.txFilter.Size = new System.Drawing.Size(670, 20);
|
this.txFilter.Size = new System.Drawing.Size(676, 20);
|
||||||
this.txFilter.TabIndex = 4;
|
this.txFilter.TabIndex = 4;
|
||||||
//
|
//
|
||||||
// label3
|
// label3
|
||||||
|
@ -1029,7 +959,7 @@
|
||||||
this.lbDebug.Location = new System.Drawing.Point(0, 0);
|
this.lbDebug.Location = new System.Drawing.Point(0, 0);
|
||||||
this.lbDebug.Name = "lbDebug";
|
this.lbDebug.Name = "lbDebug";
|
||||||
this.lbDebug.ScrollAlwaysVisible = true;
|
this.lbDebug.ScrollAlwaysVisible = true;
|
||||||
this.lbDebug.Size = new System.Drawing.Size(714, 160);
|
this.lbDebug.Size = new System.Drawing.Size(720, 269);
|
||||||
this.lbDebug.TabIndex = 3;
|
this.lbDebug.TabIndex = 3;
|
||||||
//
|
//
|
||||||
// diagSaveMemory
|
// diagSaveMemory
|
||||||
|
@ -1044,22 +974,17 @@
|
||||||
//
|
//
|
||||||
// Form1
|
// Form1
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||||
this.ClientSize = new System.Drawing.Size(734, 331);
|
this.ClientSize = new System.Drawing.Size(734, 331);
|
||||||
this.Controls.Add(this.tableLayoutPanel3);
|
this.Controls.Add(this.tabContainer);
|
||||||
this.Controls.Add(this.toolStrip1);
|
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
this.Name = "Form1";
|
this.Name = "Form1";
|
||||||
this.Text = "Cxbx-Reloaded Debugger";
|
this.Text = "unnamed instance";
|
||||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed);
|
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed);
|
||||||
this.toolStrip1.ResumeLayout(false);
|
|
||||||
this.toolStrip1.PerformLayout();
|
|
||||||
this.tableLayoutPanel3.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel3.PerformLayout();
|
|
||||||
this.statusBar.ResumeLayout(false);
|
|
||||||
this.statusBar.PerformLayout();
|
|
||||||
this.tabContainer.ResumeLayout(false);
|
this.tabContainer.ResumeLayout(false);
|
||||||
|
this.tabSummary.ResumeLayout(false);
|
||||||
|
this.tabSummary.PerformLayout();
|
||||||
this.tabDisassembly.ResumeLayout(false);
|
this.tabDisassembly.ResumeLayout(false);
|
||||||
this.splitContainer2.Panel1.ResumeLayout(false);
|
this.splitContainer2.Panel1.ResumeLayout(false);
|
||||||
this.splitContainer2.Panel1.PerformLayout();
|
this.splitContainer2.Panel1.PerformLayout();
|
||||||
|
@ -1104,20 +1029,10 @@
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer5)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer5)).EndInit();
|
||||||
this.splitContainer5.ResumeLayout(false);
|
this.splitContainer5.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
private System.Windows.Forms.ListBox lbConsole;
|
|
||||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
|
||||||
private System.Windows.Forms.ToolStripButton btnStart;
|
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
|
||||||
private System.Windows.Forms.ToolStripButton btnSuspend;
|
|
||||||
private System.Windows.Forms.ToolStripButton btnResume;
|
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
|
||||||
private System.Windows.Forms.ToolStripComboBox cbThreads;
|
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
|
|
||||||
private System.Windows.Forms.TabControl tabContainer;
|
private System.Windows.Forms.TabControl tabContainer;
|
||||||
private System.Windows.Forms.TabPage tabDisassembly;
|
private System.Windows.Forms.TabPage tabDisassembly;
|
||||||
private System.Windows.Forms.TabPage tabBreakpoints;
|
private System.Windows.Forms.TabPage tabBreakpoints;
|
||||||
|
@ -1135,8 +1050,6 @@
|
||||||
private System.Windows.Forms.TextBox txAddress;
|
private System.Windows.Forms.TextBox txAddress;
|
||||||
private System.Windows.Forms.GroupBox groupBox1;
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
private System.Windows.Forms.TextBox tbFilter;
|
private System.Windows.Forms.TextBox tbFilter;
|
||||||
private System.Windows.Forms.StatusStrip statusBar;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel lblStatus;
|
|
||||||
private RicherTextBox txDisassembly;
|
private RicherTextBox txDisassembly;
|
||||||
private System.Windows.Forms.Label label2;
|
private System.Windows.Forms.Label label2;
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label label1;
|
||||||
|
@ -1147,9 +1060,6 @@
|
||||||
private System.Windows.Forms.SplitContainer splitContainer3;
|
private System.Windows.Forms.SplitContainer splitContainer3;
|
||||||
private System.Windows.Forms.SplitContainer splitContainer4;
|
private System.Windows.Forms.SplitContainer splitContainer4;
|
||||||
private System.Windows.Forms.GroupBox groupBox2;
|
private System.Windows.Forms.GroupBox groupBox2;
|
||||||
private System.Windows.Forms.ToolStripLabel toolStripLabel1;
|
|
||||||
private System.Windows.Forms.ToolStripComboBox cbFrames;
|
|
||||||
private System.Windows.Forms.ToolStripLabel toolStripLabel2;
|
|
||||||
private System.Windows.Forms.SplitContainer splitContainer5;
|
private System.Windows.Forms.SplitContainer splitContainer5;
|
||||||
private System.Windows.Forms.TextBox txFilter;
|
private System.Windows.Forms.TextBox txFilter;
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label label3;
|
||||||
|
@ -1192,6 +1102,12 @@
|
||||||
private System.Windows.Forms.Button btnLoadCT;
|
private System.Windows.Forms.Button btnLoadCT;
|
||||||
private System.Windows.Forms.Button btnRefresh;
|
private System.Windows.Forms.Button btnRefresh;
|
||||||
private System.Windows.Forms.TextBox textBox2;
|
private System.Windows.Forms.TextBox textBox2;
|
||||||
|
private System.Windows.Forms.TabPage tabSummary;
|
||||||
|
private System.Windows.Forms.Label label7;
|
||||||
|
private System.Windows.Forms.Label label9;
|
||||||
|
private System.Windows.Forms.LinkLabel linkLabel3;
|
||||||
|
private System.Windows.Forms.LinkLabel linkLabel2;
|
||||||
|
private System.Windows.Forms.LinkLabel linkLabel1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,15 +8,15 @@ using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using cs_x86;
|
using cs_x86;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace CxbxDebugger
|
namespace CxbxDebugger
|
||||||
{
|
{
|
||||||
public partial class Form1 : Form
|
public partial class Form1 : Form, IDebugWindow
|
||||||
{
|
{
|
||||||
Thread DebuggerWorkerThread;
|
Thread DebuggerWorkerThread;
|
||||||
Debugger DebuggerInst;
|
Debugger DebuggerInst;
|
||||||
string[] StartupArgs;
|
string[] StartupArgs;
|
||||||
string CachedTitle = "";
|
|
||||||
bool SuspendedOnBp = false;
|
bool SuspendedOnBp = false;
|
||||||
|
|
||||||
DebuggerFormEvents DebugEvents;
|
DebuggerFormEvents DebugEvents;
|
||||||
|
@ -29,25 +29,29 @@ namespace CxbxDebugger
|
||||||
DebugOutputManager debugStrMan;
|
DebugOutputManager debugStrMan;
|
||||||
PatchManager patchMan;
|
PatchManager patchMan;
|
||||||
|
|
||||||
|
IDebugContainerWindow DebugContainer
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return MdiParent as IDebugContainerWindow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
List<DebuggerMessages.FileOpened> FileHandles = new List<DebuggerMessages.FileOpened>();
|
List<DebuggerMessages.FileOpened> FileHandles = new List<DebuggerMessages.FileOpened>();
|
||||||
|
|
||||||
public Form1()
|
public Form1(string[] args)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
// TODO: Cleanup arg handling
|
#if !DEBUG
|
||||||
|
|
||||||
string[] args = Environment.GetCommandLineArgs();
|
|
||||||
|
|
||||||
// Arguments are expected before the Form is created
|
// Arguments are expected before the Form is created
|
||||||
if (args.Length < 2)
|
if (args.Length < 2)
|
||||||
{
|
{
|
||||||
throw new Exception("Incorrect usage");
|
throw new Exception("Incorrect usage");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
StartupArgs = args;
|
||||||
StartupArgs = new string[args.Length - 1];
|
|
||||||
Array.Copy(args, 1, StartupArgs, 0, args.Length - 1);
|
|
||||||
|
|
||||||
DebugEvents = new DebuggerFormEvents(this);
|
DebugEvents = new DebuggerFormEvents(this);
|
||||||
|
|
||||||
|
@ -73,6 +77,8 @@ namespace CxbxDebugger
|
||||||
fileWatchMan = new FileWatchManager(clbBreakpoints);
|
fileWatchMan = new FileWatchManager(clbBreakpoints);
|
||||||
debugStrMan = new DebugOutputManager(lbDebug);
|
debugStrMan = new DebugOutputManager(lbDebug);
|
||||||
patchMan = new PatchManager();
|
patchMan = new PatchManager();
|
||||||
|
|
||||||
|
CreateDebuggerOnce();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDisassemblyNavigation(object sender, InlineLinkClickedEventArgs e)
|
private void OnDisassemblyNavigation(object sender, InlineLinkClickedEventArgs e)
|
||||||
|
@ -82,38 +88,55 @@ namespace CxbxDebugger
|
||||||
ShowDisassemblyAt(e.Link);
|
ShowDisassemblyAt(e.Link);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StartDebugging()
|
private void CreateDebuggerOnce()
|
||||||
{
|
{
|
||||||
bool Create = false;
|
if (DebuggerInst == null)
|
||||||
|
|
||||||
if (DebuggerWorkerThread == null)
|
|
||||||
{
|
|
||||||
// First launch
|
|
||||||
Create = true;
|
|
||||||
}
|
|
||||||
else if (DebuggerWorkerThread.ThreadState == ThreadState.Stopped)
|
|
||||||
{
|
|
||||||
// Further launches
|
|
||||||
Create = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Create)
|
|
||||||
{
|
{
|
||||||
// Create debugger instance
|
// Create debugger instance
|
||||||
DebuggerInst = new Debugger(StartupArgs);
|
DebuggerInst = new Debugger(StartupArgs);
|
||||||
DebuggerInst.RegisterEventInterfaces(DebugEvents);
|
DebuggerInst.RegisterEventInterfaces(DebugEvents);
|
||||||
DebuggerInst.RegisterEventInterfaces(patchMan);
|
DebuggerInst.RegisterEventInterfaces(patchMan);
|
||||||
|
|
||||||
|
var ProcessName = Path.GetFileName(DebuggerInst.ProcessName);
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(ProcessName))
|
||||||
|
{
|
||||||
|
ProcessName = "<unknown>";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (InvokeRequired)
|
||||||
|
{
|
||||||
|
// Set form title based on this new process
|
||||||
|
Invoke(new MethodInvoker(delegate ()
|
||||||
|
{
|
||||||
|
Text = ProcessName;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Text = ProcessName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StartDebugging()
|
||||||
|
{
|
||||||
|
if (GetSessionState() == SessionState.Inactive)
|
||||||
|
{
|
||||||
// Setup new debugger thread
|
// Setup new debugger thread
|
||||||
DebuggerWorkerThread = new Thread(x =>
|
DebuggerWorkerThread = new Thread(x =>
|
||||||
{
|
{
|
||||||
|
CreateDebuggerOnce();
|
||||||
|
|
||||||
if (DebuggerInst.Launch())
|
if (DebuggerInst.Launch())
|
||||||
{
|
{
|
||||||
DebuggerInst.RunThreaded();
|
DebuggerInst.RunThreaded();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
DebuggerWorkerThread.Name = "CxbxDebugger";
|
var ProcessName = Path.GetFileName(DebuggerInst.ProcessName);
|
||||||
|
|
||||||
|
DebuggerWorkerThread.Name = $"DebuggerFor_{ProcessName}";
|
||||||
DebuggerWorkerThread.Start();
|
DebuggerWorkerThread.Start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -209,12 +232,12 @@ namespace CxbxDebugger
|
||||||
// Ensure we Add items on the right thread
|
// Ensure we Add items on the right thread
|
||||||
Invoke(new MethodInvoker(delegate ()
|
Invoke(new MethodInvoker(delegate ()
|
||||||
{
|
{
|
||||||
lbConsole.Items.Insert(0, MessageStamped);
|
//lbConsole.Items.Insert(0, MessageStamped);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lbConsole.Items.Insert(0, MessageStamped);
|
//lbConsole.Items.Insert(0, MessageStamped);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -286,12 +309,10 @@ namespace CxbxDebugger
|
||||||
{
|
{
|
||||||
Invoke(new MethodInvoker(delegate ()
|
Invoke(new MethodInvoker(delegate ()
|
||||||
{
|
{
|
||||||
CachedTitle = Title;
|
DebugContainer.ReportGameTitle(Title);
|
||||||
|
|
||||||
Text = string.Format("{0} - Cxbx-Reloaded Debugger", CachedTitle);
|
|
||||||
|
|
||||||
// This is done too late - modules are already loaded
|
// This is done too late - modules are already loaded
|
||||||
//LoadCheatTable(string.Format("{0}.ct", CachedTitle));
|
//LoadCheatTable(string.Format("{0}.ct", Title));
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -341,34 +362,34 @@ namespace CxbxDebugger
|
||||||
Invoke(new MethodInvoker(delegate ()
|
Invoke(new MethodInvoker(delegate ()
|
||||||
{
|
{
|
||||||
// Disable when active
|
// Disable when active
|
||||||
btnStart.Enabled = !Active;
|
//btnStart.Enabled = !Active;
|
||||||
|
|
||||||
// Enable when active
|
//// Enable when active
|
||||||
btnSuspend.Enabled = Active;
|
//btnSuspend.Enabled = Active;
|
||||||
btnResume.Enabled = Active;
|
//btnResume.Enabled = Active;
|
||||||
|
|
||||||
lblStatus.Text = (Active ? "Running" : "Inactive");
|
//lblStatus.Text = (Active ? "Running" : "Inactive");
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Disable when active
|
//// Disable when active
|
||||||
btnStart.Enabled = !Active;
|
//btnStart.Enabled = !Active;
|
||||||
|
|
||||||
// Enable when active
|
//// Enable when active
|
||||||
btnSuspend.Enabled = Active;
|
//btnSuspend.Enabled = Active;
|
||||||
btnResume.Enabled = Active;
|
//btnResume.Enabled = Active;
|
||||||
|
|
||||||
lblStatus.Text = (Active ? "Running" : "Inactive");
|
//lblStatus.Text = (Active ? "Running" : "Inactive");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnClearLog_Click(object sender, EventArgs e)
|
private void btnClearLog_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
lbConsole.Items.Clear();
|
//lbConsole.Items.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
class DebuggerFormEvents : IDebuggerGeneralEvents,
|
class DebuggerFormEvents : IDebuggerSessionEvents,
|
||||||
IDebuggerProcessEvents,
|
IDebuggerProcessEvents,
|
||||||
IDebuggerModuleEvents,
|
IDebuggerModuleEvents,
|
||||||
IDebuggerThreadEvents,
|
IDebuggerThreadEvents,
|
||||||
|
@ -378,6 +399,9 @@ namespace CxbxDebugger
|
||||||
{
|
{
|
||||||
Form1 frm;
|
Form1 frm;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public DebuggerFormEvents(Form1 main)
|
public DebuggerFormEvents(Form1 main)
|
||||||
{
|
{
|
||||||
frm = main;
|
frm = main;
|
||||||
|
@ -426,6 +450,40 @@ namespace CxbxDebugger
|
||||||
frm.DebugTitle(Title);
|
frm.DebugTitle(Title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://stackoverflow.com/a/749653
|
||||||
|
public static string[] CommandLineToArgs(string commandLine)
|
||||||
|
{
|
||||||
|
int argc;
|
||||||
|
var argv = VsChromium.Core.Win32.Processes.NativeMethods.CommandLineToArgvW(commandLine, out argc);
|
||||||
|
if (argv == IntPtr.Zero)
|
||||||
|
throw new System.ComponentModel.Win32Exception();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var args = new string[argc];
|
||||||
|
for (var i = 0; i < args.Length; i++)
|
||||||
|
{
|
||||||
|
var p = Marshal.ReadIntPtr(argv, i * IntPtr.Size);
|
||||||
|
args[i] = Marshal.PtrToStringUni(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
return args;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
Marshal.FreeHGlobal(argv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDebugTargetChanged(string CommandLine)
|
||||||
|
{
|
||||||
|
frm.DebugLog($"New debug session started - {CommandLine}");
|
||||||
|
|
||||||
|
frm.Invoke(new MethodInvoker(delegate ()
|
||||||
|
{
|
||||||
|
frm.DebugContainer.AddDebugSession(CommandLineToArgs(CommandLine), true);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
public void OnThreadCreate(DebuggerThread Thread)
|
public void OnThreadCreate(DebuggerThread Thread)
|
||||||
{
|
{
|
||||||
frm.DebugLog(string.Format("Thread created {0}", Thread.ThreadID));
|
frm.DebugLog(string.Format("Thread created {0}", Thread.ThreadID));
|
||||||
|
@ -478,7 +536,7 @@ namespace CxbxDebugger
|
||||||
frm.DebugLog(ExceptionMessage);
|
frm.DebugLog(ExceptionMessage);
|
||||||
|
|
||||||
// Already suspended at this point, so we can rebuild the callstack list
|
// Already suspended at this point, so we can rebuild the callstack list
|
||||||
frm.PopulateThreadList(frm.cbThreads, Thread);
|
//frm.PopulateThreadList(frm.cbThreads, Thread);
|
||||||
|
|
||||||
ExceptionMessage += "\n\nAttempt to ignore this and risk crashing the app?";
|
ExceptionMessage += "\n\nAttempt to ignore this and risk crashing the app?";
|
||||||
|
|
||||||
|
@ -547,11 +605,6 @@ namespace CxbxDebugger
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void toolStripButton1_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
StartDebugging();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Suspend(string Reason)
|
private void Suspend(string Reason)
|
||||||
{
|
{
|
||||||
if (DebuggerInst != null)
|
if (DebuggerInst != null)
|
||||||
|
@ -565,13 +618,13 @@ namespace CxbxDebugger
|
||||||
DebuggerInst.Trace();
|
DebuggerInst.Trace();
|
||||||
|
|
||||||
NativeWrappers.FlashWindowTray(Handle);
|
NativeWrappers.FlashWindowTray(Handle);
|
||||||
PopulateThreadList(cbThreads, null);
|
//PopulateThreadList(cbThreads, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
lblStatus.Text = string.Format("Suspended ({0})", Reason);
|
//lblStatus.Text = string.Format("Suspended ({0})", Reason);
|
||||||
|
|
||||||
cbThreads.Enabled = true;
|
//cbThreads.Enabled = true;
|
||||||
cbFrames.Enabled = true;
|
//cbFrames.Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Resume()
|
private void Resume()
|
||||||
|
@ -589,20 +642,11 @@ namespace CxbxDebugger
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lblStatus.Text = "Running";
|
//lblStatus.Text = "Running";
|
||||||
|
|
||||||
cbThreads.Enabled = false;
|
|
||||||
cbFrames.Enabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void toolStripButton2_Click(object sender, EventArgs e)
|
//cbThreads.Enabled = false;
|
||||||
{
|
//cbFrames.Enabled = false;
|
||||||
Suspend("manually triggered");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void toolStripButton3_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
Resume();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct CallstackInfo
|
struct CallstackInfo
|
||||||
|
@ -816,22 +860,19 @@ namespace CxbxDebugger
|
||||||
|
|
||||||
private void cbFrames_SelectedIndexChanged(object sender, EventArgs e)
|
private void cbFrames_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (cbFrames.SelectedIndex != -1)
|
//if (cbFrames.SelectedIndex != -1)
|
||||||
{
|
//{
|
||||||
CallstackInfo info = CallstackDump[cbFrames.SelectedIndex];
|
// CallstackInfo info = CallstackDump[cbFrames.SelectedIndex];
|
||||||
|
|
||||||
if (info.InstructionPointer == 0)
|
// if (info.InstructionPointer == 0)
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
DumpDisassembly(info.InstructionPointer);
|
// DumpDisassembly(info.InstructionPointer);
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnDumpMemory_Click(object sender, EventArgs e)
|
private void btnDumpMemory_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (DebuggerInst == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (diagSaveMemory.ShowDialog() == DialogResult.OK)
|
if (diagSaveMemory.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
byte[] data = ReadMemory();
|
byte[] data = ReadMemory();
|
||||||
|
@ -848,12 +889,14 @@ namespace CxbxDebugger
|
||||||
|
|
||||||
private void DumpCallstack(bool ShowExternal = true)
|
private void DumpCallstack(bool ShowExternal = true)
|
||||||
{
|
{
|
||||||
int Index = cbThreads.SelectedIndex;
|
int Index = -1;
|
||||||
|
|
||||||
|
//int Index = cbThreads.SelectedIndex;
|
||||||
if (Index == -1)
|
if (Index == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CallstackDump.Clear();
|
CallstackDump.Clear();
|
||||||
cbFrames.Items.Clear();
|
//cbFrames.Items.Clear();
|
||||||
|
|
||||||
int OtherModuleCount = 0;
|
int OtherModuleCount = 0;
|
||||||
|
|
||||||
|
@ -891,7 +934,7 @@ namespace CxbxDebugger
|
||||||
if (OtherModuleCount > 0)
|
if (OtherModuleCount > 0)
|
||||||
{
|
{
|
||||||
CallstackDump.Add(new CallstackInfo());
|
CallstackDump.Add(new CallstackInfo());
|
||||||
cbFrames.Items.Add("[External Code]");
|
//cbFrames.Items.Add("[External Code]");
|
||||||
OtherModuleCount = 0;
|
OtherModuleCount = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -901,7 +944,7 @@ namespace CxbxDebugger
|
||||||
|
|
||||||
// To program counter
|
// To program counter
|
||||||
CallstackDump.Add(new CallstackInfo((uint)StackFrame.PC, ModuleBase));
|
CallstackDump.Add(new CallstackInfo((uint)StackFrame.PC, ModuleBase));
|
||||||
cbFrames.Items.Add(FrameString);
|
//cbFrames.Items.Add(FrameString);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ShowExternal)
|
if (!ShowExternal)
|
||||||
|
@ -909,16 +952,16 @@ namespace CxbxDebugger
|
||||||
if (OtherModuleCount > 0)
|
if (OtherModuleCount > 0)
|
||||||
{
|
{
|
||||||
CallstackDump.Add(new CallstackInfo());
|
CallstackDump.Add(new CallstackInfo());
|
||||||
cbFrames.Items.Add("[External Code]");
|
//cbFrames.Items.Add("[External Code]");
|
||||||
OtherModuleCount = 0;
|
OtherModuleCount = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cbFrames.Items.Count > 0)
|
//if (cbFrames.Items.Count > 0)
|
||||||
{
|
//{
|
||||||
// Auto-select the first item to dump
|
// // Auto-select the first item to dump
|
||||||
cbFrames.SelectedIndex = 0;
|
// cbFrames.SelectedIndex = 0;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cbThreads_SelectedIndexChanged(object sender, EventArgs e)
|
private void cbThreads_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
@ -1230,5 +1273,55 @@ namespace CxbxDebugger
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SessionState GetSessionState()
|
||||||
|
{
|
||||||
|
if (DebuggerWorkerThread == null)
|
||||||
|
{
|
||||||
|
return SessionState.Inactive;
|
||||||
|
}
|
||||||
|
else if (DebuggerWorkerThread.ThreadState == ThreadState.Stopped)
|
||||||
|
{
|
||||||
|
return SessionState.Ended;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SessionState.Running;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StartSession()
|
||||||
|
{
|
||||||
|
if (GetSessionState() == SessionState.Inactive)
|
||||||
|
{
|
||||||
|
StartDebugging();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SuspendSession()
|
||||||
|
{
|
||||||
|
if (GetSessionState() == SessionState.Running)
|
||||||
|
{
|
||||||
|
Suspend("manually triggered");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ResumeSession()
|
||||||
|
{
|
||||||
|
Resume();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
tabContainer.SelectedTab = tabWatch;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
tabContainer.SelectedTab = tabMemory;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
tabContainer.SelectedTab = tabDisassembly;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,12 +117,6 @@
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="statusBar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>122, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="diagSaveMemory.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="diagSaveMemory.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>238, 17</value>
|
<value>238, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
// Written by x1nixmzeng for the Cxbx-Reloaded project
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace CxbxDebugger
|
||||||
|
{
|
||||||
|
public enum SessionState
|
||||||
|
{
|
||||||
|
Inactive,
|
||||||
|
Running,
|
||||||
|
Ended,
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface IDebugWindow
|
||||||
|
{
|
||||||
|
void StartSession();
|
||||||
|
|
||||||
|
void SuspendSession();
|
||||||
|
|
||||||
|
void ResumeSession();
|
||||||
|
|
||||||
|
SessionState GetSessionState();
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface IDebugContainerWindow
|
||||||
|
{
|
||||||
|
void AddDebugSession(string[] Arguments, bool StartAutomatically);
|
||||||
|
|
||||||
|
void ReportGameTitle(string GameTitle);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -18,6 +18,7 @@ namespace CxbxDebugger
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
|
||||||
string[] args = Environment.GetCommandLineArgs();
|
string[] args = Environment.GetCommandLineArgs();
|
||||||
|
#if !DEBUG
|
||||||
if( args.Length == 1 )
|
if( args.Length == 1 )
|
||||||
{
|
{
|
||||||
// TODO: Valid usage message
|
// TODO: Valid usage message
|
||||||
|
@ -25,8 +26,9 @@ namespace CxbxDebugger
|
||||||
Application.Exit();
|
Application.Exit();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
Application.Run(new Form1());
|
Application.Run(new CxbxDebuggerMain(args));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue