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.2GDB/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

exec-async-output status-async-output notify-async-output async-output result-class

async-record stream-record

exec-async-output status-async-output notify-async-output

[ token ] "*" async-output

[ token ] "+" async-output

[ token ] "=" async-output

async-class ( "," result )* nl

"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