diff --git a/Build/VMWare/Workstation/Cosmos.nvram b/Build/VMWare/Workstation/Cosmos.nvram index 81547a624..920ae1281 100644 Binary files a/Build/VMWare/Workstation/Cosmos.nvram and b/Build/VMWare/Workstation/Cosmos.nvram differ diff --git a/Build/VMWare/Workstation/Cosmos.vmx b/Build/VMWare/Workstation/Cosmos.vmx index a2a5cca7c..45d09f12f 100644 --- a/Build/VMWare/Workstation/Cosmos.vmx +++ b/Build/VMWare/Workstation/Cosmos.vmx @@ -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" diff --git a/source2/Debug/Cosmos.Debug.GDB/FormMain.Designer.cs b/source2/Debug/Cosmos.Debug.GDB/FormMain.Designer.cs index 038629b8b..3f71c23b4 100644 --- a/source2/Debug/Cosmos.Debug.GDB/FormMain.Designer.cs +++ b/source2/Debug/Cosmos.Debug.GDB/FormMain.Designer.cs @@ -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; } } diff --git a/source2/Debug/Cosmos.Debug.GDB/FormMain.cs b/source2/Debug/Cosmos.Debug.GDB/FormMain.cs index 6ea749a5c..8c657465c 100644 --- a/source2/Debug/Cosmos.Debug.GDB/FormMain.cs +++ b/source2/Debug/Cosmos.Debug.GDB/FormMain.cs @@ -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") {