Re: Remote protocol question: the documentation says '?' is not required, but maybe it is?
Christo Crause via Gdb <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <CAGOmfbFWD=_KOpEuD1P=fow+A9fy_gCd1BxP46aMT2dQjXsiMw@mail.gmail.com> |
On Sun, Jul 19, 2020 at 9:09 PM Reuben Thomas via Gdb <[email protected]> wrote: > In particular, this suggests that it is not necessary to support the '?' > command, which returns the most recent signal. > > My simple remote stub indeed implements only 'g', 'G', 'm', 'M', 'c', 'd' > and 'k'. It also implements '?', and, on startup, sends a 'T' packet. > > However, if I remove the implementation of '?', the following conversation > ensues with gdb: > > putpacket: > > > T0500:f4dff800;01:f4dff800;02:00400000;03:f580a200;04:00001000;05:00000000;06:f5805200;07:00001000;08:00000000;09:ffffffff; > > getpacket: > > > qSupported:multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;no-resumed+ > > putpacket: > > getpacket: vMustReplyEmpty > > putpacket: > > getpacket: Hg0 > > putpacket: > > getpacket: qTStatus > > putpacket: > > getpacket: ? > > putpacket: > > getpacket: qfThreadInfo > > putpacket: > > getpacket: qL1160000000000000000 > > putpacket: > > getpacket: Hc-1 > > putpacket: > > getpacket: qC > > putpacket: > > getpacket: qAttached > > putpacket: > > warning: Invalid remote reply: > > > > and GDB hangs. It seems that it can't cope with my lack of reply to '?'. > Reading E.3 suggests that the stop reply packet (S or T) is only expected after gdb issued one of a few specific commands. So my interpretation (I'm no expert on the topic) is that your unsolicited T packet is confusing gdb. It seems as if your debug log is from your gdbserver perspective, can you also check the communication received on gdb side (set debug remote 1), this may highlight the reply gdb is complaining about.