Debugging with GDB (February 2008)

Table Of Contents
12 Debugging with GDB
2.1.1 Choosing files
When GDB starts, it reads any arguments other than options as specifying an executable
file and core file (or process ID). This is the same as if the arguments were specified by the
-se and -c options respectively. (GDB reads the first argument that does not have an
associated option flag as equivalent to the -se option followed by that argument; and the
second argument that does not have an associated option flag, if any, as equivalent to the
-c option followed by that argument.)
If GDB has not been configured to included core file support, such as for most embedded
targets, then it will complain about a second argument and ignore it.
Many options have both long and short forms; both are shown in the following list.
GDB also recognizes the long forms if you truncate them, so long as enough of the option is
present to be unambiguous. (If you prefer, you can flag option arguments with -- rather
than -’, though we illustrate the more usual convention.)
-symbols file
-s file Read symbol table from file file.
-exec file
-e file Use file file as the executable file to execute when appropriate, and for examining
pure data in conjunction with a core dump.
-se file Read symbol table from file file and use it as the executable file.
-core file
-c file Use file file as a core dump to examine.
-c number
Connect to process ID number, as with the attach command (unless there is
a file in core-dump format named number, in which case -c specifies that file
as a core dump to read).
-command file
-x file Execute GDB commands from file file. See Section 18.3 [Command files],
page 257.
-directory directory
-d directory
Add directory to the path to search for source files.
-m
-mapped Warning: this option depends on operating system facilities that are not sup-
ported on all systems.
If memory-mapped files are available on your system through the mmap system
call, you can use this option to have GDB write the symbols from your program
into a reusable file in the current directory. If the program you are debugging
is called /tmp/fred’, the mapped symbol file is /tmp/fred.syms’. Future
GDB debugging sessions notice the presence of this file, and can quickly map
in symbol information from it, rather than reading the symbol table from the
executable program.