E.2 Standard Replies
The remote protocol specifies a few standard replies. All commands
support these, except as noted in the individual command descriptions.
- ‘’
- For any command not supported by the stub, an empty response
(‘$#00’) should be returned. That way it is possible to extend the
protocol. A newer gdb can tell if a packet is supported based
on that response (but see also qSupported).
- ‘E xx’
- An error has occurred; 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.
- ‘E.name[.message]’
- An error has occurred; name is the name of the error. The name
may contain letters, numbers, and ‘-’ characters. If present,
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 gdb, even when interpretations for
named errors have been added to the protocol.
The protocol uses the following error names:
- ‘fatal’
- A fatal error has occurred; the stub will be unable to interact
further with gdb. Fatal errors should always include a
message explaining their cause.
Any command may return this error.
- ‘memtype’
- The memory addressed is of the wrong type for the given command. For
example, a ‘vFlashWrite’ command applied to non-flash memory
elicits an ‘E.memtype’ error response.