9.4. Specifying source directories
Executable programs sometimes do not record the directories of the source
files from which they were compiled, just the names. Even when they do,
the directories could be moved between the compilation and your debugging
session. gdb has a list of directories to search for source files;
this is called the source path. Each time gdb wants a source file,
it tries all the directories in the list, in the order they are present
in the list, until it finds a file with the desired name. Note that
the executable search path is not used for this purpose. Neither is
the current working directory, unless it happens to be in the source
path.
If gdb cannot find a source file in the source path, and the
object program records a directory, gdb tries that directory
too. If the source path is empty, and there is no record of the
compilation directory, gdb looks in the current directory as a
last resort.
Whenever you reset or rearrange the source path, gdb clears out
any information it has cached about where source files are found and where
each line is in the file.
When you start gdb, its source path includes only cdir
and cwd, in that order.
To add other directories, use the directory command.
- directory dirname …, dir dirname …
Add directory dirname to the front of the source path. Several
directory names may be given to this command, separated by :
(; on MS-DOS and MS-Windows, where : usually appears as
part of absolute file names) or
whitespace. You may specify a directory that is already in the source
path; this moves it forward, so gdb searches it sooner.
You can use the string $cdir to refer to the compilation
directory (if one is recorded), and $cwd to refer to the current
working directory. $cwd is not the same as .--the former
tracks the current working directory as it changes during your gdb
session, while the latter is immediately expanded to the current
directory at the time you add an entry to the source path.
- directory
Reset the source path to empty again. This requires confirmation.
- show directories
Print the source path: show which directories it contains.
If your source path is cluttered with directories that are no longer of
interest, gdb may sometimes cause confusion by finding the wrong
versions of source. You can correct the situation as follows:
Use directory with no argument to reset the source path to empty.
Use directory with suitable arguments to reinstall the
directories you want in the source path. You can add all the
directories in one command.