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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.