The arguments to your program can be specified by the arguments of the
They are passed to a shell, which expands wildcard characters and
performs redirection of I/O, and thence to your program. Your
SHELL environment variable (if it exists) specifies what shell
gdb uses. If you do not define
SHELL, gdb uses
the default shell (/bin/sh on Unix).
On non-Unix systems, the program is usually invoked directly by gdb, which emulates I/O redirection via the appropriate system calls, and the wildcard characters are expanded by the startup code of the program, not by the shell.
run with no arguments uses the same arguments used by the previous
run, or those set by the
set args command.
set argshas no arguments,
runexecutes your program with no arguments. Once you have run your program with arguments, using
set argsbefore the next
runis the only way to run it again without arguments.