Debugging with GDB Manual HP WDB v6.3 (5900-2180, August 2012)

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
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 any sequence of digits.
Notes:
All output sequences end in a single line containing a period.
The 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.
244 The GDB/MI Interface