28
Chapter 6. Running Programs Under gdb
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.)
unset environment
varname
Remove variable
varname
from the environment to be passed to your program. This is different
from
set env
varname
=
;
unset environment
removes 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
envi-
ronment variable if it exists (or
/bin/sh
if not). If your
SHELL
variable names a shell that runs an
initialization file--such as
.cshrc
for C-shell, or
.bashrc
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
.
6.5. Your program’s working directory
Each time you start your program with
run
, it inherits its working directory from the current working
directory of gdb. The gdb working directory is initially whatever it inherited from its parent process
(typically the shell), but you can specify a new working directory in gdb with the
cd
command.
The gdb working directory also serves as a default for the commands that specify files for gdb to
operate on. Refer to Section 17.1
Commands to specify files
.
cd
directory
Set the gdb working directory to
directory
.
pwd
Print the gdb working directory.
6.6. Your program’s input and output
By default, the program you run under gdb does input and output to the same terminal that gdb uses.
gdb switches the terminal to its own terminal modes to interact with you, but it records the terminal
modes your program was using and switches back to them when you continue running your program.
info terminal
Displays information recorded by gdb about the terminal modes your program is using.
You can redirect your program’s input and/or output using shell redirection with the
run
command.
For example,
run
outfile
starts your program, diverting its output to the file
outfile
.
Another way to specify where your program should do input and output is with the
tty
command.
This command accepts a file name as argument, and causes this file to be the default for future
run
commands. It also resets the controlling terminal for the child process, for future
run
commands. For
example,
Summary of Contents for ENTERPRISE LINUX 4 - DEVELOPER TOOLS GUIDE
Page 1: ...Red Hat Enterprise Linux 4 Debugging with gdb ...
Page 12: ...2 Chapter 1 Debugging with gdb ...
Page 28: ...18 Chapter 4 Getting In and Out of gdb ...
Page 34: ...24 Chapter 5 gdb Commands ...
Page 44: ...34 Chapter 6 Running Programs Under gdb ...
Page 68: ...58 Chapter 8 Examining the Stack ...
Page 98: ...88 Chapter 10 Examining Data ...
Page 112: ...102 Chapter 12 Tracepoints ...
Page 118: ...108 Chapter 13 Debugging Programs That Use Overlays ...
Page 138: ...128 Chapter 14 Using gdb with Different Languages ...
Page 144: ...134 Chapter 15 Examining the Symbol Table ...
Page 170: ...160 Chapter 19 Debugging remote programs ...
Page 198: ...188 Chapter 21 Controlling gdb ...
Page 204: ...194 Chapter 22 Canned Sequences of Commands ...
Page 206: ...196 Chapter 23 Command Interpreters ...
Page 216: ...206 Chapter 25 Using gdb under gnu Emacs ...
Page 296: ...286 Chapter 27 gdb Annotations ...
Page 300: ...290 Chapter 28 Reporting Bugs in gdb ...
Page 322: ...312 Chapter 30 Using History Interactively ...
Page 362: ...352 Appendix D gdb Remote Serial Protocol ...
Page 380: ...370 Appendix F GNU GENERAL PUBLIC LICENSE ...
Page 386: ...376 Appendix G GNU Free Documentation License ...
Page 410: ......