diff options
author | Pedro Alves <palves@redhat.com> | 2013-05-23 17:17:50 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2013-05-23 17:17:50 +0000 |
commit | c2d6af84da44465f30e3bb487721128dfe03d0e4 (patch) | |
tree | 6d1037aa6d79b5fcebf8e353c5f013128e1ca8a4 /gdb/gdbserver/ChangeLog | |
parent | c1e36e3e919994da4fa0da232b173939f3e44bb8 (diff) | |
download | gdb-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/ChangeLog | 27 |
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 |