### D.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.