gdb: Interpreters

 
 24 Command Interpreters
 ***********************
 
 GDB supports multiple command interpreters, and some command
 infrastructure to allow users or user interface writers to switch
 between interpreters or run commands in other interpreters.
 
    GDB currently supports two command interpreters, the console
 interpreter (sometimes called the command-line interpreter or CLI) and
 the machine interface interpreter (or GDB/MI).  This manual describes
 both of these interfaces in great detail.
 
    By default, GDB will start with the console interpreter.  However,
 the user may choose to start GDB with another interpreter by specifying
 the '-i' or '--interpreter' startup options.  Defined interpreters
 include:
 
 'console'
      The traditional console or command-line interpreter.  This is the
      most often used interpreter with GDB.  With no interpreter
      specified at runtime, GDB will use this interpreter.
 
 'mi'
      The newest GDB/MI interface (currently 'mi2').  Used primarily by
      programs wishing to use GDB as a backend for a debugger GUI or an
      IDE. For more information, see SeeThe GDB/MI Interface GDB/MI.
 
 'mi2'
      The current GDB/MI interface.
 
 'mi1'
      The GDB/MI interface included in GDB 5.1, 5.2, and 5.3.
 
    You may execute commands in any interpreter from the current
 interpreter using the appropriate command.  If you are running the
 console interpreter, simply use the 'interpreter-exec' command:
 
      interpreter-exec mi "-data-list-register-names"
 
    GDB/MI has a similar command, although it is only available in
 versions of GDB which support GDB/MI version 2 (or greater).
 
    Note that 'interpreter-exec' only changes the interpreter for the
 duration of the specified command.  It does not change the interpreter
 permanently.
 
    Although you may only choose a single interpreter at startup, it is
 possible to run an independent interpreter on a specified input/output
 device (usually a tty).
 
    For example, consider a debugger GUI or IDE that wants to provide a
 GDB console view.  It may do so by embedding a terminal emulator widget
 in its GUI, starting GDB in the traditional command-line mode with
 stdin/stdout/stderr redirected to that terminal, and then creating an MI
 interpreter running on a specified input/output device.  The console
 interpreter created by GDB at startup handles commands the user types in
 the terminal widget, while the GUI controls and synchronizes state with
 GDB using the separate MI interpreter.
 
    To start a new secondary "user interface" running MI, use the
 'new-ui' command:
 
      new-ui INTERPRETER TTY
 
    The INTERPRETER parameter specifies the interpreter to run.  This
 accepts the same values as the 'interpreter-exec' command.  For example,
 'console', 'mi', 'mi2', etc.  The TTY parameter specifies the name of
 the bidirectional file the interpreter uses for input/output, usually
 the name of a pseudoterminal slave on Unix systems.  For example:
 
      (gdb) new-ui mi /dev/pts/9
 
 runs an MI interpreter on '/dev/pts/9'.