6.2. Starting your program
If you are running your program in an execution environment that
supports processes, run creates an inferior process and makes
that process run your program. (In environments without processes,
run jumps to the start of your program.)
The execution of a program is affected by certain information it
receives from its superior. gdb provides ways to specify this
information, which you must do before starting your program. (You
can change it after starting your program, but such changes only affect
your program the next time you start it.) This information may be
divided into four categories:
- The arguments.
Specify the arguments to give your program as the arguments of the
run command. If a shell is available on your target, the shell
is used to pass the arguments, so that you may use normal conventions
(such as wildcard expansion or variable substitution) in describing
In Unix systems, you can control which shell is used with the
SHELL environment variable. Refer to Section 6.3 Your program's arguments.
- The environment.
Your program normally inherits its environment from gdb, but you can
use the gdb commands set environment and unset
environment to change parts of the environment that affect
Refer to Section 6.4 Your program's environment.
- The working directory.
Your program inherits its working directory from gdb. You can set
the gdb working directory with the cd command in gdb. Refer to Section 6.5 Your program's working directory.
- The standard input and output.
Your program normally uses the same device for standard input and
standard output as gdb is using. You can redirect input and output
in the run command line, or you can use the tty command to
set a different device for your program. Refer to Section 6.6 Your program's input and output.
Warning: While input and output redirection work, you cannot use
pipes to pass the output of the program you are debugging to another
program; if you attempt this, gdb is likely to wind up debugging the
When you issue the run command, your program begins to execute
Refer to Chapter 7 Stopping and Continuing for discussion
of how to arrange for your program to stop. Once your program has
stopped, you may call functions in your program, using the print
or call commands.
Refer to Chapter 10 Examining Data.
If the modification time of your symbol file has changed since the last
time gdb read its symbols, gdb discards its symbol
table, and reads it again. When it does this, gdb tries to retain
your current breakpoints.