Node: GDB/MI Output Syntax, Next: GDB/MI Simple Examples, Previous: GDB/MI Input Syntax, Up: GDB/MI Command 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
value ==>
const |
tuple |
list
const ==>
c-string
tuple ==>
"{}" | "{"
result ( ","
result )* "}"
list ==>
"[]" | "["
value ( ","
value )* "]" | "["
result ( ","
result )* "]"
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 ==>
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.