2 gdb/mi output syntax – HP gnu source-level debugger 5992-4701 User Manual
Page 308

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