Chapter 23. 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, (refer to Chapter 26 The gdb/mi Interface.
- mi2
The current gdb/mi interface.
- mi1
The gdb/mi interface included in gdb 5.1, 5.2, and 5.3.
The interpreter being used by gdb may not be dynamically
switched at runtime. Although possible, this could lead to a very
precarious situation. Consider an IDE using gdb/mi. If a user
enters the command "interpreter-set console" in a console view,
gdb would switch to using the console interpreter, rendering
the IDE inoperable!
Although you may only choose a single interpreter at startup, 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).