Next: , Previous: , Up: Invoking GDB   [Contents][Index]

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 files (see Initialization Files).


Do not execute commands found in any home directory initialization file (see Home directory initialization file). The system wide and current directory initialization files are still loaded.


“Quiet”. Do not print the introductory and copyright messages. These messages are also suppressed in batch mode.

This can also be enabled using set startup-quietly on. The default is off. Use show startup-quietly to see the current setting. Place set startup-quietly on into your early initialization file (see Initialization Files) to have future GDB sessions startup quietly.


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 mode.


Run in batch mode exactly like ‘-batch’, but totally silently. All GDB output to stdout is prevented (stderr is 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:

This option is useful in conjunction with ‘-batch’ or ‘-batch-silent’, when GDB is being used as a remote program loader or simulator interface.


“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.

-cd directory

Run GDB using directory as its working directory, instead of the current directory.

-data-directory directory
-D 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 frame.

-annotate level

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 (see 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.

-baud bps
-b bps

Set the line speed (baud rate or bits per second) of any serial interface used by GDB for remote debugging.

-l timeout

Set the timeout (in seconds) of any communication used by GDB for remote debugging.

-tty device
-t device

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).

-interpreter interp

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=mi3’) causes GDB to use the GDB/MI interface version 3 (see The GDB/MI Interface) included since GDB version 9.1. GDB/MI version 2 (mi2), included in GDB 6.0 and version 1 (mi1), included in GDB 5.3, are also available. 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 (see Patching).


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).

Next: , Previous: , Up: Invoking GDB   [Contents][Index]