From c2d6af84da44465f30e3bb487721128dfe03d0e4 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 23 May 2013 17:17:50 +0000 Subject: 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 * NEWS: Mention GDBserver range stepping support. gdb/gdbserver/ 2013-05-23 Yao Qi Pedro Alves * 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) : Set to linux_supports_range_stepping. * linux-low.h (struct linux_target_ops) : New field. (struct lwp_info) : New fields. * linux-x86-low.c (x86_supports_range_stepping): New. (the_low_target) : 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) : New fields. (struct target_ops) : New field. (target_supports_range_stepping): New macro. --- gdb/gdbserver/ChangeLog | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gdb/gdbserver/ChangeLog') 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 + Pedro Alves + + * 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) : Set to + linux_supports_range_stepping. + * linux-low.h (struct linux_target_ops) + : New field. + (struct lwp_info) : New fields. + * linux-x86-low.c (x86_supports_range_stepping): New. + (the_low_target) : 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) : New fields. + (struct target_ops) : + New field. + (target_supports_range_stepping): New macro. + 2013-05-17 Joel Brobecker * lynx-low.c (lynx_resume): Fix null_ptid/minus_one_ptid -- cgit v1.1