Invoking GDB - Debugging with GDB
Description: Debugging with GDB

Next: Quitting GDB, Up: Invocation

### 2.1 Invoking gdb

Invoke gdb by running the program `gdb`. Once started, gdb reads commands from the terminal until you tell it to exit.

You can also run `gdb` with a variety of arguments and options, to specify more of your debugging environment at the outset.

The command-line options described here are designed to cover a variety of situations; in some environments, some of these options may effectively be unavailable.

The most usual way to start gdb is with one argument, specifying an executable program:

         gdb program

You can also start with both an executable program and a core file specified:

         gdb program core

You can, instead, specify a process ID as a second argument, if you want to debug a running process:

         gdb program 1234

would attach gdb to process `1234` (unless you also have a file named `1234`; gdb does check for a core file first).

Taking advantage of the second command-line argument requires a fairly complete operating system; when you use gdb as a remote debugger attached to a bare board, there may not be any notion of “process”, and there is often no way to get a core dump. gdb will warn you if it is unable to attach or to read core dumps.

You can optionally have `gdb` pass any arguments after the executable file to the inferior using `--args`. This option stops option processing.

         gdb --args gcc -O2 -c foo.c

This will cause `gdb` to debug `gcc`, and to set `gcc`'s command-line arguments (see Arguments) to ‘`-O2 -c foo.c`’.

You can run `gdb` without printing the front material, which describes gdb's non-warranty, by specifying `-silent`:

         gdb -silent

You can further control how gdb starts up by using command-line options. gdb itself can remind you of the options available.

Type

         gdb -help

to display all available options and briefly describe their use (‘`gdb -h`’ is a shorter equivalent).

All options and command line arguments you give are processed in sequential order. The order makes a difference when the ‘`-x`’ option is used.