aboutsummaryrefslogtreecommitdiff
path: root/gdb/ChangeLog
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2015-03-04 20:41:16 +0000
committerPedro Alves <palves@redhat.com>2015-03-04 20:41:16 +0000
commitf7e6eed5283bb5c8a3598dd986dc922b9a794f58 (patch)
treea7343d12474798fc7be6fdc479527d52190bbedc /gdb/ChangeLog
parent9e8915c6cee5c37637521b424d723e990e06d597 (diff)
downloadgdb-f7e6eed5283bb5c8a3598dd986dc922b9a794f58.zip
gdb-f7e6eed5283bb5c8a3598dd986dc922b9a794f58.tar.gz
gdb-f7e6eed5283bb5c8a3598dd986dc922b9a794f58.tar.bz2
remote+docs: software/hardware breakpoint traps
This adjusts target remote to tell the core whether a trap was caused by a breakpoint. To that end, the patch teaches GDB about new RSP stop reasons "T05 swbreak" and "T05 hwbreak", that remote targets report back to GDB, similarly to how "T05 watch" indicates a stop caused by a watchpoint. Because targets that can report these events are expected to themselves adjust the PC after a software breakpoint, these new stop reasons must only be reported if the stub is talking to a GDB that understands them. Because of that, the use of the new stop reasons needs to be handshaked on initial connection, using the qSupported mechanism. GDB simply sends "swbreak+" in its qSupports query, and the stub reports back "swbreak+" too. Because these new stop reasons are required to fix a fundamental non-stop mode problem, this commit extends the remote non-stop intro section in the manual, documenting the events as required. To be clear, GDB will still cope with remote targets that don't support these new stop reasons; it will behave just like today. Tested on x86-64 Fedora 20, native and gdbserver. gdb/ChangeLog: 2015-03-04 Pedro Alves <palves@redhat.com> * NEWS: Mention the new "swbreak" and "hwbreak" stop reasons. * remote.c (struct remote_state) <remote_stopped_by_watchpoint_p>: Delete field. <stop_reason>: New field. (PACKET_swbreak_feature, PACKET_hwbreak_feature): New enum values. (packet_set_cmd_state): New function. (remote_protocol_features): Register the "swbreak" and "hwbreak" features. (remote_query_supported): If not disabled with the corresponding "set remote foo-packet" command, report support for the swbreak and hwbreak features. (struct stop_reply) <remote_stopped_by_watchpoint_p>: Delete field. <stop_reason>: New field. (remote_parse_stop_reply): Handle "swbreak" and "hwbreak". (remote_wait_as): Adjust. (remote_stopped_by_sw_breakpoint) (remote_supports_stopped_by_sw_breakpoint) (remote_stopped_by_hw_breakpoint) (remote_supports_stopped_by_hw_breakpoint): New functions. (remote_stopped_by_watchpoint): New function. (init_remote_ops): Install them. (_initialize_remote): Register new "set/show remote swbreak-feature-packet" and "set/show remote swbreak-feature-packet" commands. gdb/doc/ChangeLog: 2015-03-04 Pedro Alves <palves@redhat.com> * gdb.texinfo (Remote Configuration): Document the "set/show remote swbreak-feature-packet" and "set/show remote hwbreak-feature-packet" commands. (Packets) <Z0>: Add cross link to the "swbreak" stop reason's decription. (Stop Reply Packets): Document the swbreak and hwbreak stop reasons. (General Query Packets): Document the swbreak and hwbreak qSupported features. (Remote Non-Stop): Explain that swbreak and hwbreak are required.
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r--gdb/ChangeLog28
1 files changed, 28 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 11f6caa..22bda6a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,33 @@
2015-03-04 Pedro Alves <palves@redhat.com>
+ * NEWS: Mention the new "swbreak" and "hwbreak" stop reasons.
+ * remote.c (struct remote_state) <remote_stopped_by_watchpoint_p>:
+ Delete field.
+ <stop_reason>: New field.
+ (PACKET_swbreak_feature, PACKET_hwbreak_feature): New enum values.
+ (packet_set_cmd_state): New function.
+ (remote_protocol_features): Register the "swbreak" and "hwbreak"
+ features.
+ (remote_query_supported): If not disabled with the corresponding
+ "set remote foo-packet" command, report support for the swbreak
+ and hwbreak features.
+ (struct stop_reply) <remote_stopped_by_watchpoint_p>: Delete
+ field.
+ <stop_reason>: New field.
+ (remote_parse_stop_reply): Handle "swbreak" and "hwbreak".
+ (remote_wait_as): Adjust.
+ (remote_stopped_by_sw_breakpoint)
+ (remote_supports_stopped_by_sw_breakpoint)
+ (remote_stopped_by_hw_breakpoint)
+ (remote_supports_stopped_by_hw_breakpoint): New functions.
+ (remote_stopped_by_watchpoint): New function.
+ (init_remote_ops): Install them.
+ (_initialize_remote): Register new "set/show remote
+ swbreak-feature-packet" and "set/show remote
+ swbreak-feature-packet" commands.
+
+2015-03-04 Pedro Alves <palves@redhat.com>
+
* btrace.h: Include target/waitstatus.h.
(struct btrace_thread_info) <stop_reason>: New field.
* record-btrace.c (record_btrace_step_thread): Use