In addition to a number of out-of-band notifications, the response to a gdb/mi command includes one of the following result indications:
The synchronous operation was successful, results are the return values.
The asynchronous operation was successfully started. The target is running.
The operation failed. The c-string contains the corresponding error message.
gdb internally maintains a number of output streams: the console, the target, and the log. The output intended for each of these streams is funneled through the gdb/mi interface using stream records.
Each stream record begins with a unique prefix character which identifies its stream (refer to Section 26.4.2 gdb/mi Output Syntax). In addition to the prefix, each stream record contains a string-output. This is either raw text (with an implicit new line) or a quoted C string (which does not contain an implicit newline).
The console output stream contains text that should be displayed in the CLI console window. It contains the textual responses to CLI commands.
The target output stream contains any textual output from the running target.
The log stream contains debugging messages being produced by gdb's internals.
Out-of-band records are used to notify the gdb/mi client of additional changes that have occurred. Those changes can either be a consequence of gdb/mi (e.g., a breakpoint modified) or a result of target activity (e.g., target stopped).
The following is a preliminary list of possible out-of-band records.
stop