public void UpdateRegisters(GDB.Response aResponse) { var xResult = aResponse.Text; { // reset all to black foreach (var item in this.Controls[0].Controls) { Label xL = item as Label; if (xL != null && xL.ForeColor != Color.Black) { xL.ForeColor = Color.Black; } } } int i = 0; CPUReg xReg; CPUReg xEIP = null; while (i < xResult.Count - 1) { xReg = new CPUReg(xResult, ref i); mCurrentValues[xReg.mName] = xReg.mValue; if (xReg.mName == RegNames.EAX) { SetRegLabels(lablEAX, lablAX, lablAH, lablAL, xReg.mValue); } else if (xReg.mName == RegNames.EBX) { SetRegLabels(lablEBX, lablBX, lablBH, lablBL, xReg.mValue); } else if (xReg.mName == RegNames.ECX) { SetRegLabels(lablECX, lablCX, lablCH, lablCL, xReg.mValue); } else if (xReg.mName == RegNames.EDX) { SetRegLabels(lablEDX, lablDX, lablDH, lablDL, xReg.mValue); } else if (xReg.mName == RegNames.EIP) { xEIP = xReg; SetAddress(lablEIP, xReg); lablEIPText.Text = xReg.mText; lablEIPText.Visible = true; } else if (xReg.mName == RegNames.EFLAGS) { // http://en.wikipedia.org/wiki/FLAGS_register_%28computing%29 SetAddress(lablFlags, xReg); lablFlagsText.Text = xReg.mText; lablFlagsText.Visible = true; } else if (xReg.mName == RegNames.ESP) { SetAddress(lablESP, xReg); } else if (xReg.mName == RegNames.EBP) { SetAddress(lablEBP, xReg); } else if (xReg.mName == RegNames.ESI) { SetAddress(lablESI, xReg); } else if (xReg.mName == RegNames.EDI) { SetAddress(lablEDI, xReg); } else if (xReg.mName == RegNames.SS) { SetAddress(lablSS, xReg); } else if (xReg.mName == RegNames.CS) { SetAddress(lablCS, xReg); } else if (xReg.mName == RegNames.DS) { SetAddress(lablDS, xReg); } else if (xReg.mName == RegNames.ES) { SetAddress(lablES, xReg); } else if (xReg.mName == RegNames.FS) { SetAddress(lablFS, xReg); } else if (xReg.mName == RegNames.GS) { SetAddress(lablGS, xReg); } } if (xEIP != null) { Windows.mMainForm.SetEIP(xEIP.mValue); } }
public void UpdateRegisters(GDB.Response aResponse) { var xResult = aResponse.Text; { // reset all to black foreach (var item in this.Controls[0].Controls) { Label xL = item as Label; if (xL != null && xL.ForeColor != Color.Black) xL.ForeColor = Color.Black; } } int i = 0; CPUReg xReg; CPUReg xEIP = null; while (i < xResult.Count - 1) { xReg = new CPUReg(xResult, ref i); mCurrentValues[xReg.mName] = xReg.mValue; if (xReg.mName == RegNames.EAX) { SetRegLabels(lablEAX, lablAX, lablAH, lablAL, xReg.mValue); } else if (xReg.mName == RegNames.EBX) { SetRegLabels(lablEBX, lablBX, lablBH, lablBL, xReg.mValue); } else if (xReg.mName == RegNames.ECX) { SetRegLabels(lablECX, lablCX, lablCH, lablCL, xReg.mValue); } else if (xReg.mName == RegNames.EDX) { SetRegLabels(lablEDX, lablDX, lablDH, lablDL, xReg.mValue); } else if (xReg.mName == RegNames.EIP) { xEIP = xReg; SetAddress(lablEIP, xReg); lablEIPText.Text = xReg.mText; lablEIPText.Visible = true; } else if (xReg.mName == RegNames.EFLAGS) { // http://en.wikipedia.org/wiki/FLAGS_register_%28computing%29 SetAddress(lablFlags, xReg); lablFlagsText.Text = xReg.mText; lablFlagsText.Visible = true; } else if (xReg.mName == RegNames.ESP) { SetAddress(lablESP, xReg); } else if (xReg.mName == RegNames.EBP) { SetAddress(lablEBP, xReg); } else if (xReg.mName == RegNames.ESI) { SetAddress(lablESI, xReg); } else if (xReg.mName == RegNames.EDI) { SetAddress(lablEDI, xReg); } else if (xReg.mName == RegNames.SS) { SetAddress(lablSS, xReg); } else if (xReg.mName == RegNames.CS) { SetAddress(lablCS, xReg); } else if (xReg.mName == RegNames.DS) { SetAddress(lablDS, xReg); } else if (xReg.mName == RegNames.ES) { SetAddress(lablES, xReg); } else if (xReg.mName == RegNames.FS) { SetAddress(lablFS, xReg); } else if (xReg.mName == RegNames.GS) { SetAddress(lablGS, xReg); } } if (xEIP != null) { Windows.mMainForm.SetEIP(xEIP.mValue); } }
protected void SetAddress(Label aLabel, CPUReg aReg) { aLabel.Text = aReg.mValue.ToString("X8"); aLabel.Visible = true; }