示例#1
0
        private void Continue()
        {
            if (GDBConnector == null)
            {
                return;
            }

            if (GDBConnector.IsRunning)
            {
                return;
            }

            MemoryCache.Clear();

            if (MainForm.BreakPoints.Count != 0)
            {
                GDBConnector.ClearAllBreakPoints();
                GDBConnector.Step(true);

                while (GDBConnector.IsRunning)
                {
                    Thread.Sleep(10);
                }

                MainForm.ResendBreakPoints();
            }

            GDBConnector.Continue();
        }
示例#2
0
 private void btnStep_Click(object sender, EventArgs e)
 {
     MemoryCache.Clear();
     GDBConnector.ClearAllBreakPoints();
     GDBConnector.Step();
     MainForm.ResendBreakPoints();
 }
示例#3
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            if (GDBConnector == null)
            {
                return;
            }

            if (GDBConnector.IsRunning)
            {
                return;
            }

            MemoryCache.Clear();

            if (MainForm.BreakPoints.Count != 0)
            {
                GDBConnector.ClearAllBreakPoints();
                GDBConnector.Step(true);

                // TODO: Add timeout
                while (GDBConnector.IsRunning)
                {
                    Thread.Sleep(1);
                }

                MainForm.ResendBreakPoints();
            }

            GDBConnector.Continue();
        }
示例#4
0
        private void btnStepN_Click(object sender, EventArgs e)
        {
            if (GDBConnector.IsRunning)
            {
                return;
            }

            uint steps;

            try
            {
                steps = Convert.ToUInt32(tbSteps.Text);
            }
            catch
            {
                MessageBox.Show($"Invalid input, '{tbSteps.Text}' is not a valid number.");
                return;
            }

            if (steps == 0)
            {
                return;
            }

            MemoryCache.Clear();

            if (MainForm.BreakPoints.Count != 0)
            {
                GDBConnector.ClearAllBreakPoints();
                GDBConnector.Step(true);

                while (GDBConnector.IsRunning)
                {
                    Thread.Sleep(10);
                }

                MainForm.ResendBreakPoints();

                steps--;
            }

            if (steps == 0)
            {
                return;
            }

            GDBConnector.StepN(steps);
        }
示例#5
0
 public void DeleteAllBreakPonts()
 {
     BreakPoints.Clear();
     GDBConnector.ClearAllBreakPoints();
     NotifyBreakPointChange();
 }