This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 2/3 v2] Implement vFile:fstat: packet in gdbserver
- From: Pedro Alves <palves at redhat dot com>
- To: Gary Benson <gbenson at redhat dot com>, gdb-patches at sourceware dot org
- Cc: Eli Zaretskii <eliz at gnu dot org>
- Date: Wed, 11 Mar 2015 11:35:10 +0000
- Subject: Re: [PATCH 2/3 v2] Implement vFile:fstat: packet in gdbserver
- Authentication-results: sourceware.org; auth=none
- References: <54FF3878 dot 8050202 at redhat dot com> <1426070029-969-1-git-send-email-gbenson at redhat dot com>
On 03/11/2015 10:33 AM, Gary Benson wrote:
> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -36062,6 +36062,11 @@ These are the currently defined stub features and their properties:
> @tab @samp{-}
> @tab No
>
> +@item @samp{vFile:fstat}
> +@tab No
> +@tab @samp{-}
> +@tab Yes
> +
> @end multitable
>
> These are the currently defined stub features, in more detail:
> @@ -36250,6 +36255,9 @@ breakpoints.
> The remote stub reports the @samp{hwbreak} stop reason for hardware
> breakpoints.
>
> +@item vFile:fstat
> +The remote stub understands the @samp{vFile:fstat} packet.
> +
Thanks, combined with the "set remote ..." bit, I think that was
all that was missing.
> @end table
>
> @item qSymbol::
> @@ -37411,6 +37419,13 @@ packet is used. @samp{vFile:write} returns the number of bytes written,
> which may be shorter than the length of @var{data}, or -1 if an
> error occurred.
>
> +@item vFile:fstat: @var{fd}
> +Get information about the open file corresponding to @var{fd}.
> +On success the information is returned as a binary attachment
> +and the return value is the size of this attachment in bytes.
> +If an error occurs the return value is -1. The format of the
> +returned binary attachment is as described in @ref{struct stat}.
> +
I still think that we should mention the need for the qSupported feature
here. This is because the other vFile:XXX packets don't have associated
qSupported features - GDB just tries them out and detects empty
response (probes them).
For example for the recent "swbreak" feature, I added:
The remote stub must also supply the appropriate @samp{qSupported}
feature indicating support.
> +
> + remote_fileio_to_fio_stat (&st, &fst);
> +
> + bytes_sent = hostio_reply_with_data (own_buf,
> + (char *) &fst, sizeof (fst),
> + new_packet_len);
> +
> + /* If the response does not fit into a single packet, do not attempt
> + to return a partial response, but simply fail. */
> + if (bytes_sent < sizeof (fst))
> + sprintf (own_buf, "F-1,%x", FILEIO_ENOSYS);
It occurred to me that this -1 case isn't really an error with the
syscall, but rather a protocol error. Thus, shouldn't this really
be an RSP E01 error ?
Thanks,
Pedro Alves