Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Ivo Raisr <ivosh@ivosh.net>
To: gdb@sourceware.org
Subject: Multi-packet gdb server request/response - problem?
Date: Tue, 10 Dec 2013 12:23:00 -0000	[thread overview]
Message-ID: <CANXv6=u1BjBdJJDNtF=j=djNJVoNHo45gL4JZruzDYsaSqEU6Q@mail.gmail.com> (raw)

https://sourceware.org/gdb/onlinedocs/gdb/Overview.htmlGood morning all!

I use gdb 7.6 (on Solaris 11.1 x86 if that matters) which
is used to talk to a remote gdb server stub implementation (inside
valgrind, if that matters).

gdb is invoked as follows:
$ gdb --quiet -l 60 --nx ./my_binary

After the instrumented binary (with remote gdb server stub
implementation) starts, gdb is commanded to talk to it:
(gdb) set debug remote 1
(gdb) target remote | valgrind-gdb-relay --along-with-other-options

Then the conversation starts (seemingly correctly) with:
-----------
  Sending packet:
$qSupported:multiprocess+;xmlRegisters=i386;qRelocInsn+#b5...relaying
data       between gdb and process 12033
  Ack
  Packet received:
PacketSize=3fff;QStartNoAckMode+;QPassSignals+;qXfer:auxv:read+;
     qXfer:features:read+
  Packet qSupported (supported-packets) is supported
  Sending packet: $QStartNoAckMode#b0...Ack
  Packet received: OK
...
-----------

After a while, program gets stopped.
If I then enter:
(gdb) continue
conversation continues (approx 40 packets are exchanged) but then
abruptly ends with error:

Sending packet: $s#73...Sending packet: $mfe7c852c,4#34...Packet
received: T0505:08f8fe37;04:e8f7fe37;08:4d761100;thread:1;
Reply contains invalid hex digit 84

Please take a particular note that in this case gdb did not wait for a reply
to its '$s' packet but instead immediately issued another '$mfe7c852c,4'
packet.

This is also verified by dumping packets on the other side in the gdb
server stub implementation:
- read from gdb $s#73$mfe7c852c,4#34
- write to gdb $T0505:08f8fe37;04:e8f7fe37;08:4d761100;thread:1;#d8$0*"00#dc

So on the wires it looks like:
- gdb wrote two requests without waiting for a response for the first one
- gdb received two concatenated responses for these two requests
- requests and responses alone look well-formed

My questions are:
- Is multi-packet request/response supported by gdb?
- In other words, is that gdb's behaviour intentional?
- If yes, then why it cannot handle multi-packet response?
- If no, then is that a bug?

I was trying to confirm this with a protocol description available at
https://sourceware.org/gdb/onlinedocs/gdb/Overview.html
but in vain.

Should you need more information, let me know.


             reply	other threads:[~2013-12-10 12:23 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-10 12:23 Ivo Raisr [this message]
2013-12-10 21:46 ` Philippe Waroquiers
     [not found]   ` <CANXv6=vFYfEDLPVHv_TRK4VTLmFX6c+2hvmodM9dg3gcJA4_jQ@mail.gmail.com>
2013-12-12 15:14     ` Fwd: " Ivo Raisr
2013-12-12 15:44       ` Ivo Raisr
2013-12-12 16:46         ` Pedro Alves
2013-12-11 11:43 ` Yao Qi
2013-12-14  3:39 Ivo Raisr
2013-12-16 14:31 ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CANXv6=u1BjBdJJDNtF=j=djNJVoNHo45gL4JZruzDYsaSqEU6Q@mail.gmail.com' \
    --to=ivosh@ivosh.net \
    --cc=gdb@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox