gdb: Document vMustReplyEmpty remote packet

Message ID 1494840778-18726-1-git-send-email-andrew.burgess@embecosm.com
State New, archived
Headers

Commit Message

Andrew Burgess May 15, 2017, 9:32 a.m. UTC
  Add mention of the vMustReplyEmpty to the remote serial protocol
documentation.  It is important that this packet be treated in the same
fashion as any other unknown 'v' packet, and I have tried to reflect
this in the description of the packet, it is not simply the case that we
_must_ return the empty string for this packet.

As the intention is that we should treat this packet as unknown then an
argument could be made that we should not document it, however, for
someone implementing a gdbserver from scratch, seeing an undocumented
packet arrive from gdb is confusing, and will probably cause them to
have to read the code in order to check how this packet should be
handled, which is not ideal.

gdb/doc/ChangeLog:

	* gdb.texinfo (Packets): Document vMustReplyEmpty packet.
---
 gdb/doc/ChangeLog   |  4 ++++
 gdb/doc/gdb.texinfo | 13 +++++++++++++
 2 files changed, 17 insertions(+)
  

Comments

Eli Zaretskii May 15, 2017, 7:13 p.m. UTC | #1
> From: Andrew Burgess <andrew.burgess@embecosm.com>
> Cc: Andrew Burgess <andrew.burgess@embecosm.com>
> Date: Mon, 15 May 2017 10:32:58 +0100
> 
> gdb/doc/ChangeLog:
> 
> 	* gdb.texinfo (Packets): Document vMustReplyEmpty packet.

This is okay, but "gdbserver" should be in "@command", and "gdb"
should be replaced with "@value{GDBN}".
  
Pedro Alves May 17, 2017, 12:48 p.m. UTC | #2
On 05/15/2017 10:32 AM, Andrew Burgess wrote:
> Add mention of the vMustReplyEmpty to the remote serial protocol
> documentation.  It is important that this packet be treated in the same
> fashion as any other unknown 'v' packet, and I have tried to reflect
> this in the description of the packet, it is not simply the case that we
> _must_ return the empty string for this packet.
> 
> As the intention is that we should treat this packet as unknown then an
> argument could be made that we should not document it, however, for
> someone implementing a gdbserver from scratch, seeing an undocumented
> packet arrive from gdb is confusing, and will probably cause them to
> have to read the code in order to check how this packet should be
> handled, which is not ideal.
> 
> gdb/doc/ChangeLog:
> 
> 	* gdb.texinfo (Packets): Document vMustReplyEmpty packet.

This is fine with me.

Thanks,
Pedro Alves
  
Andrew Burgess May 22, 2017, 7:34 p.m. UTC | #3
* Eli Zaretskii <eliz@gnu.org> [2017-05-15 22:13:02 +0300]:

> > From: Andrew Burgess <andrew.burgess@embecosm.com>
> > Cc: Andrew Burgess <andrew.burgess@embecosm.com>
> > Date: Mon, 15 May 2017 10:32:58 +0100
> > 
> > gdb/doc/ChangeLog:
> > 
> > 	* gdb.texinfo (Packets): Document vMustReplyEmpty packet.
> 
> This is okay, but "gdbserver" should be in "@command", and "gdb"
> should be replaced with "@value{GDBN}".

Thanks for the review.  I've pushed with the fixes you identified.

Thanks,
Andrew
  

Patch

diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index f2e6156..6c412c1 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -35827,6 +35827,19 @@ 
 for success
 @end table
 
+@item vMustReplyEmpty
+@cindex @samp{vMustReplyEmpty} packet
+The correct reply to an unknown @samp{v} packet is to return the empty
+string, however, some older versions of gdbserver would incorrectly
+return @samp{OK} for unknown @samp{v} packets.
+
+The @samp{vMustReplyEmpty} is used as a feature test to check how
+gdbserver handles unknown packets, it is important that this packet be
+handled in the same way as other unknown @samp{v} packets.  If this
+packet is handled differently to other unknown @samp{v} packets then
+it is possile that gdb may run into problems in other areas,
+specifically around use of @samp{vFile:setfs:}.
+
 @item vRun;@var{filename}@r{[};@var{argument}@r{]}@dots{}
 @cindex @samp{vRun} packet
 Run the program @var{filename}, passing it each @var{argument} on its