aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/ChangeLog
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2013-05-23 17:17:50 +0000
committerPedro Alves <palves@redhat.com>2013-05-23 17:17:50 +0000
commitc2d6af84da44465f30e3bb487721128dfe03d0e4 (patch)
tree6d1037aa6d79b5fcebf8e353c5f013128e1ca8a4 /gdb/gdbserver/ChangeLog
parentc1e36e3e919994da4fa0da232b173939f3e44bb8 (diff)
downloadgdb-c2d6af84da44465f30e3bb487721128dfe03d0e4.zip
gdb-c2d6af84da44465f30e3bb487721128dfe03d0e4.tar.gz
gdb-c2d6af84da44465f30e3bb487721128dfe03d0e4.tar.bz2
range stepping: gdbserver (x86 GNU/Linux)
This patch adds support for range stepping to GDBserver, teaching it about vCont;r. It'd be easy to enable this for all hardware single-step targets without needing the linux_target_ops hook, however, at least PPC needs special care, due to the fact that PPC atomic sequences can't be hardware single-stepped through, a thing which GDBserver doesn't know about. So this leaves the support limited to x86/x86_64. gdb/ 2013-05-23 Pedro Alves <palves@redhat.com> * NEWS: Mention GDBserver range stepping support. gdb/gdbserver/ 2013-05-23 Yao Qi <yao@codesourcery.com> Pedro Alves <palves@redhat.com> * linux-low.c (lwp_in_step_range): New function. (linux_wait_1): If the thread was range stepping and stopped outside the stepping range, report the stop to GDB. Otherwise, continue stepping. Add range stepping debug output. (linux_set_resume_request): Copy the step range from the resume request to the lwp. (linux_supports_range_stepping): New. (linux_target_ops) <supports_range_stepping>: Set to linux_supports_range_stepping. * linux-low.h (struct linux_target_ops) <supports_range_stepping>: New field. (struct lwp_info) <step_range_start, step_range_end>: New fields. * linux-x86-low.c (x86_supports_range_stepping): New. (the_low_target) <supports_range_stepping>: Set to x86_supports_range_stepping. * server.c (handle_v_cont): Handle 'r' action. (handle_v_requests): Append ";r" if the target supports range stepping. * target.h (struct thread_resume) <step_range_start, step_range_end>: New fields. (struct target_ops) <supports_range_stepping>: New field. (target_supports_range_stepping): New macro.
Diffstat (limited to 'gdb/gdbserver/ChangeLog')
-rw-r--r--gdb/gdbserver/ChangeLog27
1 files changed, 27 insertions, 0 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index bc2ba38..0af0bb8 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,30 @@
+2013-05-23 Yao Qi <yao@codesourcery.com>
+ Pedro Alves <palves@redhat.com>
+
+ * linux-low.c (lwp_in_step_range): New function.
+ (linux_wait_1): If the thread was range stepping and stopped
+ outside the stepping range, report the stop to GDB. Otherwise,
+ continue stepping. Add range stepping debug output.
+ (linux_set_resume_request): Copy the step range from the resume
+ request to the lwp.
+ (linux_supports_range_stepping): New.
+ (linux_target_ops) <supports_range_stepping>: Set to
+ linux_supports_range_stepping.
+ * linux-low.h (struct linux_target_ops)
+ <supports_range_stepping>: New field.
+ (struct lwp_info) <step_range_start, step_range_end>: New fields.
+ * linux-x86-low.c (x86_supports_range_stepping): New.
+ (the_low_target) <supports_range_stepping>: Set to
+ x86_supports_range_stepping.
+ * server.c (handle_v_cont): Handle 'r' action.
+ (handle_v_requests): Append ";r" if the target supports range
+ stepping.
+ * target.h (struct thread_resume) <step_range_start,
+ step_range_end>: New fields.
+ (struct target_ops) <supports_range_stepping>:
+ New field.
+ (target_supports_range_stepping): New macro.
+
2013-05-17 Joel Brobecker <brobecker@adacore.com>
* lynx-low.c (lynx_resume): Fix null_ptid/minus_one_ptid