Notes:
• The CLI commands are still handled by the MI interpreter; their output is described
below.
• The token, when present, is passed back when the command finishes.
• Some MI commands accept optional arguments as part of the parameter list. Each
option is identified by a leading `-' (dash) and may be followed by an optional
argument parameter. Options occur first in the parameter list and can be delimited
from normal parameters using `--' (this is useful when some parameters begin
with a dash).
Pragmatics:
• We want easy access to the existing CLI syntax (for debugging).
• We want it to be easy to spot a MI operation.
21.1.2 GDB/MI Output syntax
The output from GDB/MI consists of zero or more out-of-band records followed,
optionally, by a single result record. This result record is for the most recent command.
The sequence of output records is terminated by '(gdb)'.
If an input command was prefixed with a token then the corresponding output for that
command will also be prefixed by that same token.
output
→
( out-of-band-record )* [
result-record ] "(gdb)" nl
result-record [ token ] "^" result-class ( ","
result )* nl
out-of-band-record
→
async-record | stream-record
async-record exec-async-output |
status-async-output |
notify-async-output
exec-async-output [ token ] "*" async-output
status-async-output [ token ] "+" async-output
notify-async-output [ token ] "=" async-output
async-output async-class ( "," result )* nl
result-class "done" | "running" | "connected" |
"error" | "exit"
async-class "stopped" | others (where others will be
added depending on the needs―this is still in
development).
result variable "=" value
variable string
308 The GDB/MI Interface