aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2013-05-10 13:59:45 +0000
committerPedro Alves <palves@redhat.com>2013-05-10 13:59:45 +0000
commit9779ab84ac97a6bcec8c454959f10940c9a28f05 (patch)
tree87370196fe5073219d3e1b55daae89361fabd98f /gdb/remote.c
parentab1c4e88612fb125c21eaa4374093161bb18fd10 (diff)
downloadgdb-9779ab84ac97a6bcec8c454959f10940c9a28f05.zip
gdb-9779ab84ac97a6bcec8c454959f10940c9a28f05.tar.gz
gdb-9779ab84ac97a6bcec8c454959f10940c9a28f05.tar.bz2
PR remote/15455 - QTro remote packet broken
In the function remote_trace_set_readonly_regions in gdb/remote.c, the local variable 'offset' does not account for "QTro" at the start of the packet with the result that if there are any read-only regions, the packet is sent -- but without the "QTro" -- causing the remote stub to report that the packet is unsupported: Sending packet: $:0000000000400200,(...),00000000004560a4#ab...Packet received: vs the expected: Sending packet: $QTro:0000000000400200,(...),00000000004560a4#31...Packet received: OK We don't see the problem when testing with GDBserver, as that supports qXfer:trace-frame-info:read, meaning GDBserver never needs to read from the read-only sections directly itself. This commit adds a test that explicitly disables qXfer:trace-frame-info:read. gdb/ 2013-05-10 David Taylor <dtaylor@emc.com> PR remote/15455 * remote.c (remote_trace_set_readonly_regions): Do not overwrite "QTro" at start of packet. gdb/testsuite/ 2013-05-10 Pedro Alves <palves@redhat.com> PR remote/15455 * gdb.trace/qtro.c: New file. * gdb.trace/qtro.exp: New file.
Diffstat (limited to 'gdb/remote.c')
-rw-r--r--gdb/remote.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gdb/remote.c b/gdb/remote.c
index e1c63ad..b7a7cf6 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -10667,6 +10667,7 @@ remote_trace_set_readonly_regions (void)
return; /* No information to give. */
strcpy (target_buf, "QTro");
+ offset = strlen (target_buf);
for (s = exec_bfd->sections; s; s = s->next)
{
char tmp1[40], tmp2[40];