Beispiel #1
0
        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);
            }
        }
Beispiel #3
0
 protected void SetAddress(Label aLabel, CPUReg aReg)
 {
     aLabel.Text    = aReg.mValue.ToString("X8");
     aLabel.Visible = true;
 }
 protected void SetAddress(Label aLabel, CPUReg aReg) {
     aLabel.Text = aReg.mValue.ToString("X8");
     aLabel.Visible = true;
 }