@node Interpreters
@chapter Command Interpreters
+@cindex command interpreters
@value{GDBN} supports multiple command interpreters, and some command
infrastructure to allow users or user interface writers to switch between
By default, @value{GDBN} will start with the console interpreter. However,
the user may choose to start @value{GDBN} with another interpreter by specifying
-the "-i" or "--interpreter" startup options. Defined interpreters include:
+the @option{-i} or @option{--interpreter} startup options. Defined interpreters
+include:
@table @code
@item console
+@cindex console interpreter
The traditional console or command-line interpreter. This is the most often
used interpreter with @value{GDBN}. With no interpreter specified at runtime,
@value{GDBN} will use this interpreter.
@item mi
+@cindex mi interpreter
The newest @sc{gdb/mi} interface, used primarily by programs wishing to use
@value{GDBN} as a backend for a debugger GUI or an IDE. For more information,
see @ref{GDB/MI, ,The @sc{gdb/mi} Interface}.
@item mi2
+@cindex mi2 interpreter
The latest version of the @sc{gdb/mi} interface.
@item mi1
+@cindex mi1 interpreter
The @sc{gdb/mi} version included in @value{GDBN} version 5.1.
@item mi0
+@cindex mi0 interpreter
The @sc{gdb/mi} version included in @value{GDBN} version 5.0.
@end table
+@cindex invoke another interpreter
The interpreter being used by @value{GDBN} may not be dynamically switched at
runtime. Although possible, this could lead to a very precarious situation.
Consider an IDE using @sc{gdb/mi}. If a user enters the command
"interpreter-set console" in a console view, @value{GDBN} would switch
to using the console interpreter, rendering the IDE inoperable!
+@kindex interpreter-exec
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