2.1.2 Choosing Modes
You can run gdb in various alternative modes—for example, in
batch mode or quiet mode.
- Do not execute commands found in any initialization file.
There are three init files, loaded in the following order:
- This is the system-wide init file.
Its location is specified with the
configure option (see System-wide configuration).
It is loaded first when gdb starts, before command line options
have been processed.
- This is the init file in your home directory.
It is loaded next, after system.gdbinit, and before
command options have been processed.
- This is the init file in the current directory.
It is loaded last, after command line options other than
-ex have been processed. Command line options
-ex are processed last, after ./.gdbinit has been loaded.
For further documentation on startup processing, See Startup.
For documentation on how to write command files,
See Command Files.
- Do not execute commands found in ~/.gdbinit, the init file
in your home directory.
- “Quiet”. Do not print the introductory and copyright messages. These
messages are also suppressed in batch mode.
- Run in batch mode. Exit with status
0 after processing all the
command files specified with ‘-x’ (and all commands from
initialization files, if not inhibited with ‘-n’). Exit with
nonzero status if an error occurs in executing the gdb commands
in the command files. Batch mode also disables pagination, sets unlimited
terminal width and height see Screen Size, and acts as if set confirm
off were in effect (see Messages/Warnings).
Batch mode may be useful for running gdb as a filter, for
example to download and run a program on another computer; in order to
make this more useful, the message
Program exited normally.
(which is ordinarily issued whenever a program running under
gdb control terminates) is not issued when running in batch
- Run in batch mode exactly like ‘-batch’, but totally silently. All
gdb output to
stdout is prevented (
unaffected). This is much quieter than ‘-silent’ and would be useless
for an interactive session.
This is particularly useful when using targets that give ‘Loading section’
messages, for example.
Note that targets that give their output via gdb, as opposed to
writing directly to
stdout, will also be made silent.
- The return code from gdb will be the return code from the child
process (the process being debugged), with the following exceptions:
- gdb exits abnormally. E.g., due to an incorrect argument or an
internal error. In this case the exit code is the same as it would have been
- The user quits with an explicit value. E.g., ‘quit 1’.
- The child process never runs, or is not allowed to terminate, in which case
the exit code will be -1.
This option is useful in conjunction with ‘-batch’ or ‘-batch-silent’,
when gdb is being used as a remote program loader or simulator
- “No windows”. If gdb comes with a graphical user interface
(GUI) built in, then this option tells gdb to only use the command-line
interface. If no GUI is available, this option has no effect.
- If gdb includes a GUI, then this option requires it to be
used if possible.
- Run gdb using directory as its working directory,
instead of the current directory.
- Run gdb using directory as its data directory.
The data directory is where gdb searches for its
auxiliary files. See Data Files.
- gnu Emacs sets this option when it runs gdb as a
subprocess. It tells gdb to output the full file name and line
number in a standard, recognizable fashion each time a stack frame is
displayed (which includes each time your program stops). This
recognizable format looks like two ‘\032’ characters, followed by
the file name, line number and character position separated by colons,
and a newline. The Emacs-to-gdb interface program uses the two
‘\032’ characters as a signal to display the source code for the
- This option sets the annotation level inside gdb. Its
effect is identical to using ‘set annotate level’
(see Annotations). The annotation level controls how much
information gdb prints together with its prompt, values of
expressions, source lines, and other types of output. Level 0 is the
normal, level 1 is for use when gdb is run as a subprocess of
gnu Emacs, level 3 is the maximum annotation suitable for programs
that control gdb, and level 2 has been deprecated.
The annotation mechanism has largely been superseded by gdb/mi
- Change interpretation of command line so that arguments following the
executable file are passed as command line arguments to the inferior.
This option stops option processing.
- Set the line speed (baud rate or bits per second) of any serial
interface used by gdb for remote debugging.
- Set the timeout (in seconds) of any communication used by gdb
for remote debugging.
- Run using device for your program's standard input and output.
- Activate the Text User Interface when starting. The Text User
Interface manages several text windows on the terminal, showing
source, assembly, registers and gdb command outputs
(see gdb Text User Interface). Do not use this
option if you run gdb from Emacs (see Using gdb under gnu Emacs).
- Use the interpreter interp for interface with the controlling
program or device. This option is meant to be set by programs which
communicate with gdb using it as a back end.
See Command Interpreters.
‘--interpreter=mi’ (or ‘--interpreter=mi2’) causes
gdb to use the gdb/mi interface (see The gdb/mi Interface) included since gdb version 6.0. The
previous gdb/mi interface, included in gdb version 5.3 and
selected with ‘--interpreter=mi1’, is deprecated. Earlier
gdb/mi interfaces are no longer supported.
- Open the executable and core files for both reading and writing. This
is equivalent to the ‘set write on’ command inside gdb
- This option causes gdb to print statistics about time and
memory usage after it completes each command and returns to the prompt.
- This option causes gdb to print its version number and
no-warranty blurb, and exit.
- This option causes gdb to print details about its build-time
configuration parameters, and then exit. These details can be
important when reporting gdb bugs (see GDB Bugs).