gdbserver/Linux: Simplify stepping past program breakpoint a little
authorPedro Alves <palves@redhat.com>
Thu, 26 Feb 2015 18:48:46 +0000 (18:48 +0000)
committerPedro Alves <palves@redhat.com>
Thu, 26 Feb 2015 18:48:46 +0000 (18:48 +0000)
.decr_pc_after_break is never higher than .breakpoint_len, so use
.breakpoint_len directly.  Based on idea from Yao here:
https://sourceware.org/ml/gdb-patches/2015-02/msg00689.html

gdb/gdbserver/ChangeLog:
2015-02-26  Pedro Alves  <palves@redhat.com>

* linux-low.c (linux_wait_1): When incrementing the PC past a
program breakpoint always use the_low_target.breakpoint_len as
increment, rather than the maximum between that and
the_low_target.decr_pc_after_break.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c

index a130aab..6bb8950 100644 (file)
@@ -1,3 +1,10 @@
+2015-02-26  Pedro Alves  <palves@redhat.com>
+
+       * linux-low.c (linux_wait_1): When incrementing the PC past a
+       program breakpoint always use the_low_target.breakpoint_len as
+       increment, rather than the maximum between that and
+       the_low_target.decr_pc_after_break.
+
 2015-02-23  Pedro Alves  <palves@redhat.com>
 
        * linux-low.c (check_stopped_by_breakpoint): Don't check if the
index 1c66985..c0d3b0d 100644 (file)
@@ -2555,12 +2555,7 @@ linux_wait_1 (ptid_t ptid,
   if (!ptid_equal (step_over_bkpt, null_ptid)
       && event_child->stop_reason == LWP_STOPPED_BY_SW_BREAKPOINT)
     {
-      unsigned int increment_pc;
-
-      if (the_low_target.breakpoint_len > the_low_target.decr_pc_after_break)
-       increment_pc = the_low_target.breakpoint_len;
-      else
-       increment_pc = the_low_target.decr_pc_after_break;
+      unsigned int increment_pc = the_low_target.breakpoint_len;
 
       if (debug_threads)
        {