Exemple #1
0
 private void mitmRegisters_Click(object sender, EventArgs e)
 {
     Windows.Show(Windows.mRegistersForm);
 }
Exemple #2
0
        protected void OnGDBResponse(GDB.Response aResponse)
        {
            try {
                Windows.mLogForm.Log(aResponse);
                var xCmdLine = aResponse.Command.ToLower();
                if (xCmdLine == "info registers")
                {
                    Windows.mRegistersForm.UpdateRegisters(aResponse);
                    Windows.UpdateAfterRegisterUpdate();
                }
                else if (xCmdLine.Length == 0)
                {
                    if (aResponse.Text.Count == 2 && aResponse.Text[0] == "Breakpoint")
                    {
                        // program breaks on aResponse.Text[1]
                    }
                    else
                    {
                        // contains address where we are
                    }
                }
                else
                {
                    var xCmdParts = xCmdLine.Split(Global.SpaceSeparator);
                    var xCmd      = xCmdParts[0];
                    if (xCmd.EndsWith("&"))
                    {
                        xCmd = xCmd.Substring(0, xCmd.Length - 1);
                    }
                    if (xCmd == "disassemble")
                    {
                        OnDisassemble(aResponse);
                    }
                    else if (xCmd == "symbol-file")     // nothing
                    {
                    }
                    else if (xCmd == "add-symbol-file")     //nothing
                    {
                    }
                    else if (xCmd == "set")     // nothing
                    {
                    }
                    else if (xCmd == "target")
                    {
                        if (Global.GDB.Connected)
                        {
                            mitmRefresh.Enabled   = true;
                            lablConnected.Visible = true;
                            lablRunning.Visible   = true;

                            mitmConnect.Enabled = true;
                            butnConnect.Enabled = true;
                            mitmConnect.Text    = "&Disconnect";
                            butnConnect.Text    = "&Disconnect";

                            Settings.InitWindows();

                            lboxDisassemble.SetItems(Global.AsmSource.Lines);
                        }
                        else
                        {
                            if (mConnectRetry < MAX_RETRY + 1)
                            {
                                Connect();
                            }
                            else
                            {
                                mitmConnect.Enabled = true;
                                butnConnect.Enabled = true;
                                mitmConnect.Text    = "&Connect";
                                butnConnect.Text    = "&Connect";
                                lboxDisassemble.Items.Clear();
                            }
                        }
                    }
                    else if (xCmd == "detach")
                    {
                        if (false == Global.GDB.Connected)
                        {
                            mitmConnect.Text     = "&Connect";
                            butnConnect.Text     = "&Connect";
                            mitmRefresh.Enabled  = false;
                            mitmContinue.Enabled = false;
                            butnContinue.Enabled = false;
                            mitmStepInto.Enabled = false;
                            mitmStepOver.Enabled = false;
                            lboxDisassemble.Items.Clear();
                            lablConnected.Visible       = false;
                            lablRunning.Visible         = false;
                            textCurrentFunction.Visible = false;
                        }
                    }
                    else if (xCmd == "delete")
                    {
                        Windows.mBreakpointsForm.OnDelete(aResponse);
                    }
                    else if ((xCmd == "stepi") || (xCmd == "nexti"))
                    {
                    }
                    else if (xCmd == "continue" || xCmd == "fg")
                    {
                        //lboxDisassemble.Items.Clear();
                    }
                    else if (xCmd == "where")
                    {
                        Windows.mCallStackForm.OnWhere(aResponse);
                    }
                    else if (xCmd == "break")
                    {
                        Windows.mBreakpointsForm.OnBreak(aResponse);
                    }
                    else if (xCmd.StartsWith("x/"))
                    {
                        Windows.mWatchesForm.OnWatchUpdate(aResponse);
                    }
                    else
                    {
                        throw new Exception("Unrecognized command response: " + aResponse.Command);
                    }
                }
            } catch (Exception e) {
                MessageBox.Show("Exception: " + e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }
Exemple #3
0
 private void mitmViewBreakpoints_Click(object sender, EventArgs e)
 {
     Windows.Show(Windows.mBreakpointsForm);
 }
Exemple #4
0
 private void mitmViewLog_Click(object sender, EventArgs e)
 {
     Windows.Show(Windows.mLogForm);
 }
Exemple #5
0
 private void mitmMainViewWatches_Click(object sender, EventArgs e)
 {
     Windows.Show(Windows.mWatchesForm);
 }
Exemple #6
0
 private void mitmMainViewCallStack_Click(object sender, EventArgs e)
 {
     Windows.Show(Windows.mCallStackForm);
 }
Exemple #7
0
 private void mitmRefresh_Click(object sender, EventArgs e)
 {
     Windows.UpdateAllWindows();
 }