This commit is contained in:
kudzu_cp 2010-07-11 17:17:04 +00:00
parent c2b4150e1a
commit 6fbf7cf6e8
4 changed files with 33 additions and 40 deletions

View file

@ -4,8 +4,6 @@ virtualHW.version = "7"
maxvcpus = "4"
scsi0.present = "TRUE"
memsize = "256"
ide0:0.present = "TRUE"
ide0:0.fileName = "Cosmos.vmdk"
ide1:0.present = "TRUE"
ide1:0.autodetect = "TRUE"
ide1:0.deviceType = "cdrom-image"
@ -29,13 +27,12 @@ guestOS = "other"
nvram = "Cosmos.nvram"
virtualHW.productCompatibility = "hosted"
extendedConfigFile = "Cosmos.vmxf"
ide1:0.fileName = "C:\source\Cosmos\source2\Users\Kudzu\Breakpoints\bin\Debug\CosmosKernel.iso"
uuid.location = "56 4d 17 a5 ee 9a c4 0e-19 fb 42 d2 56 4d c6 22"
uuid.bios = "56 4d 17 a5 ee 9a c4 0e-19 fb 42 d2 56 4d c6 22"
ide1:0.fileName = "d:\source\Cosmos\source2\Users\Kudzu\Breakpoints\bin\Debug\CosmosKernel.iso"
uuid.location = "56 4d c5 98 db 65 ae 42-d4 89 15 cf 1c 43 cf 9a"
uuid.bios = "56 4d c5 98 db 65 ae 42-d4 89 15 cf 1c 43 cf 9a"
cleanShutdown = "TRUE"
replay.supported = "FALSE"
replay.filename = ""
ide0:0.redo = ""
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
@ -43,17 +40,20 @@ pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
scsi0.pciSlotNumber = "16"
vmci0.pciSlotNumber = "32"
vmotion.checkpointFBSize = "30474240"
vmotion.checkpointFBSize = "23920640"
vmci0.id = "1821907405"
debugStub.listen.guest32 = "TRUE"
debugStub.hideBreakpoints = "TRUE"
;monitor.debugOnStartGuest32 = "TRUE"
monitor.debugOnStartGuest32 = "TRUE"
debugStub.listen.guest32.remote = "TRUE"
serial0.present = "TRUE"
serial0.yieldOnMsrRead = "TRUE"
serial0.fileType = "pipe"
serial0.fileName = "\\.\pipe\CosmosDebug"
serial0.pipe.endPoint = "server"
serial0.tryNoRxLoss = "TRUE"
ide0:0.present = "FALSE"
sound.present = "FALSE"
floppy0.present = "FALSE"

View file

@ -62,8 +62,6 @@
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.lboxRegisters = new System.Windows.Forms.ListBox();
this.lboxDisassemble = new System.Windows.Forms.ListBox();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.lboxDebug = new System.Windows.Forms.ListBox();
this.panel2 = new System.Windows.Forms.Panel();
@ -98,6 +96,7 @@
this.lablFlagsText = new System.Windows.Forms.Label();
this.lablFlags = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.lboxDisassemble = new System.Windows.Forms.ListBox();
this.panel1.SuspendLayout();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
@ -151,8 +150,8 @@
//
// tabPage1
//
this.tabPage1.Controls.Add(this.panel3);
this.tabPage1.Controls.Add(this.lboxDisassemble);
this.tabPage1.Controls.Add(this.panel3);
this.tabPage1.Location = new System.Drawing.Point(4, 4);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
@ -222,8 +221,7 @@
this.panel3.Controls.Add(this.label4);
this.panel3.Controls.Add(this.label3);
this.panel3.Controls.Add(this.label2);
this.panel3.Controls.Add(this.lboxRegisters);
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel3.Dock = System.Windows.Forms.DockStyle.Right;
this.panel3.Location = new System.Drawing.Point(699, 3);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(314, 629);
@ -527,24 +525,6 @@
this.label2.TabIndex = 2;
this.label2.Text = "Registers";
//
// lboxRegisters
//
this.lboxRegisters.Dock = System.Windows.Forms.DockStyle.Bottom;
this.lboxRegisters.FormattingEnabled = true;
this.lboxRegisters.Location = new System.Drawing.Point(0, 391);
this.lboxRegisters.Name = "lboxRegisters";
this.lboxRegisters.Size = new System.Drawing.Size(314, 238);
this.lboxRegisters.TabIndex = 1;
//
// lboxDisassemble
//
this.lboxDisassemble.Dock = System.Windows.Forms.DockStyle.Left;
this.lboxDisassemble.FormattingEnabled = true;
this.lboxDisassemble.Location = new System.Drawing.Point(3, 3);
this.lboxDisassemble.Name = "lboxDisassemble";
this.lboxDisassemble.Size = new System.Drawing.Size(696, 628);
this.lboxDisassemble.TabIndex = 0;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.lboxDebug);
@ -859,6 +839,15 @@
this.label11.TabIndex = 58;
this.label11.Text = "Flags";
//
// lboxDisassemble
//
this.lboxDisassemble.Dock = System.Windows.Forms.DockStyle.Fill;
this.lboxDisassemble.FormattingEnabled = true;
this.lboxDisassemble.Location = new System.Drawing.Point(3, 3);
this.lboxDisassemble.Name = "lboxDisassemble";
this.lboxDisassemble.Size = new System.Drawing.Size(696, 628);
this.lboxDisassemble.TabIndex = 3;
//
// FormMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -886,7 +875,6 @@
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.ListBox lboxDisassemble;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.Button butnStep;
private System.Windows.Forms.ListBox lboxDebug;
@ -895,7 +883,6 @@
private System.Windows.Forms.TextBox textSendCmd;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button butnDebugLogClear;
private System.Windows.Forms.ListBox lboxRegisters;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Label lablAH;
private System.Windows.Forms.Label lablAX;
@ -957,6 +944,7 @@
private System.Windows.Forms.Label lablFlagsText;
private System.Windows.Forms.Label lablFlags;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.ListBox lboxDisassemble;
}
}

View file

@ -65,9 +65,11 @@ namespace Cosmos.Debug.GDB {
protected void Disassemble() {
var xResult = SendCmd("disassemble");
lboxDisassemble.Items.Clear();
xResult.RemoveAt(0);
xResult.RemoveAt(xResult.Count - 1);
lboxDisassemble.Items.AddRange(xResult.ToArray());
if (xResult.Count > 0) {
xResult.RemoveAt(0);
xResult.RemoveAt(xResult.Count - 1);
lboxDisassemble.Items.AddRange(xResult.ToArray());
}
}
private void butnConnect_Click(object sender, EventArgs e) {
@ -89,11 +91,16 @@ namespace Cosmos.Debug.GDB {
GetResponse();
SendCmd("symbol-file CosmosKernel.obj");
//SendCmd("file output.bin");
SendCmd("target remote :1234");
//
//SendCmd("target remote :1234"); // QEMU
SendCmd("target remote :8832"); // VMWare
SendCmd("set architecture i386");
SendCmd("set language asm");
SendCmd("set disassembly-flavor intel");
SendCmd("break Kernel_Start");
//SendCmd("break *0x0056d2b9");
SendCmd("continue");
Update();
}
@ -139,9 +146,6 @@ namespace Cosmos.Debug.GDB {
protected void GetRegisters() {
var xResult = SendCmd("info registers");
lboxRegisters.Items.Clear();
lboxRegisters.Items.AddRange(xResult.ToArray());
int i = 0;
CPUReg xReg;
while (i < xResult.Count - 1) {
@ -158,6 +162,7 @@ namespace Cosmos.Debug.GDB {
lablEIP.Text = xReg.mValue.ToString("X8");
lablEIPText.Text = xReg.mText;
} else if (xReg.mName == "EFLAGS") {
// http://en.wikipedia.org/wiki/FLAGS_register_%28computing%29
lablFlags.Text = xReg.mValue.ToString("X8");
lablFlagsText.Text = xReg.mText;
} else if (xReg.mName == "ESP") {