|Debugging with GDB|
The environment consists of a set of environment variables and their values. Environment variables conventionally record such things as your user name, your home directory, your terminal type, and your search path for programs to run. Usually you set up environment variables with the shell and they are inherited by all the other programs you run. When debugging, it can be useful to try running your program with a modified environment without having to start gdb over again.
PATHenvironment variable (the search path for executables) that will be passed to your program. The value of
PATHused by gdb does not change. You may specify several directory names, separated by whitespace or by a system-dependent separator character (‘:’ on Unix, ‘;’ on MS-DOS and MS-Windows). If directory is already in the path, it is moved to the front, so it is searched sooner.
You can use the string ‘$cwd’ to refer to whatever is the current
working directory at the time gdb searches the path. If you
use ‘.’ instead, it refers to the directory where you executed the
path command. gdb replaces ‘.’ in the
directory argument (with the current path) before adding
directory to the search path.
set environmentvarname [
For example, this command:
set env USER = foo
tells the debugged program, when subsequently run, that its user is named ‘foo’. (The spaces around ‘=’ are used for clarity here; they are not actually required.)
Note that on Unix systems, gdb runs your program via a shell,
which also inherits the environment set with
If necessary, you can avoid that by using the ‘env’ program as a
wrapper instead of using
set environment. See set exec-wrapper, for an example doing just that.
unset environmentremoves the variable from the environment, rather than assigning it an empty value.
Warning: On Unix systems, gdb runs your program using
the shell indicated by your
SHELL environment variable if it
/bin/sh if not). If your
names a shell that runs an initialization file when started
non-interactively—such as .cshrc for C-shell, $.zshenv
for the Z shell, or the file specified in the ‘BASH_ENV’
environment variable for BASH—any variables you set in that file
affect your program. You may wish to move setting of environment
variables to files that are only run when you sign on, such as
.login or .profile.