This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: RFC: Add named errors and messages to remote protocol
- From: Jim Blandy <jimb at codesourcery dot com>
- To: Eli Zaretskii <eliz at gnu dot org>
- Cc: gdb at sourceware dot org
- Date: Thu, 05 Jul 2007 12:39:43 -0700
- Subject: Re: RFC: Add named errors and messages to remote protocol
- References: <m3fy4oyfa3.fsf@codesourcery.com> <20070703171613.GH2868@caradoc.them.org> <m3lkdwejdz.fsf@codesourcery.com> <ur6nndfi9.fsf@gnu.org>
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Jim Blandy <jimb@codesourcery.com>
>> Date: Wed, 04 Jul 2007 00:08:08 -0700
>>
>> A stub is required to support the @samp{g}, @samp{G}, @samp{m}, @samp{M},
>> @samp{c}, and @samp{s} @var{command}s. All other @var{command}s are
>> optional.
>> on that response (but see also @ref{qSupported}).
>
> Something is wrong here.
Sorry. I tried to produce this text from a patch. I should have
simply copied it from the patched manual:
@node Standard Replies
@section Standard Replies
The remote protocol specifies a few standard replies. All commands
support these, except as noted in the individual command descriptions.
@table @samp
@item
@cindex empty response, for unsupported packets
@cindex unsupported packets, empty response for
For any @var{command} not supported by the stub, an empty response
(@samp{$#00}) should be returned. That way it is possible to extend the
protocol. A newer @value{GDBN} can tell if a packet is supported based
on that response (but see also @ref{qSupported}).
@item E @var{xx}
An error has occurred; @var{xx} is a two-digit hexadecimal error
number. In almost all cases, the protocol does not specify the
meaning of the error numbers; GDB usually ignores the numbers, or
displays them to the user without further interpretation.
@item E.@var{name}@r{[}.@var{message}@r{]}
An error has occurred; @var{name} is the name of the error. The name
may contain letters, numbers, and @samp{-} characters. If present,
@var{message} is an error message, encoded using the escaped eight-bit
conventions for binary data described above.
Except as noted, named errors may only be returned to commands
documented to expect them; this ensures that older stubs can interact
with newer versions of @value{GDBN}, even when interpretations for
named errors have been added to the protocol.
The protocol uses the following error names:
@table @samp
@item fatal
A fatal error has occurred; the stub will be unable to interact
further with @value{GDBN}. Fatal errors should always include a
message explaining their cause.
Any command may return this error.
@item memtype
The memory addressed is of the wrong type for the given command. For
example, a @samp{vFlashWrite} command applied to non-flash memory
elicits an @samp{E.memtype} error response.
@end table
@end table