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 ==>
[ string "=" ] value
value ==>
const | "{" result ( "," result )* "}"
const ==>
c-string
stream-record ==>
console-stream-output | target-stream-output | log-stream-output
console-stream-output ==>
"~" c-string
target-stream-output ==>
"@" c-string
log-stream-output ==>
"&" c-string
nl ==>
CR | CR-LF
token ==>
In addition, the following are still being developed:
query
Notes:
token
is from the corresponding request. If an execution
command is interrupted by the `-exec-interrupt
' command, the
token associated with the `*stopped' message is the one of the
original execution command, not the one of the interrupt-command.
+
'.
*
'.
=
'.
~
'.
@
'.
&
'.
See GDB/MI Stream Records, for more details about the various output records.
See GDB/MI Draft Changes to Output Syntax, for proposed revisions to the current output syntax.
Packaging copyright © 1988-2000 OAR Corporation
Context copyright by each document's author. See Free Software Foundation for information.