Next: Logging Output, Previous: Quitting GDB, Up: Invocation
If you need to execute occasional shell commands during your
debugging session, there is no need to leave or suspend gdb; you can
just use the shell
command.
shell
command-string!
command-string!
and command-string.
On GNU and Unix systems, the environment variable SHELL, if it
exists, determines which shell to run. Otherwise gdb uses
the default shell (/bin/sh on GNU and Unix systems,
cmd.exe on MS-Windows, COMMAND.COM on MS-DOS, etc.).
The utility make
is often needed in development environments.
You do not have to use the shell
command for this purpose in
gdb:
make
make-argsmake
program with the specified
arguments. This is equivalent to `shell make make-args'.
pipe [
command] |
shell_command| [
command] |
shell_commandpipe -d
delim command delim shell_command| -d
delim command delim shell_command|
.
If no command is provided, the last command executed is repeated.
In case the command contains a |
, the option -d
delim
can be used to specify an alternate delimiter string delim that separates
the command from the shell_command.
Example:
(gdb) p var $1 = { black = 144, red = 233, green = 377, blue = 610, white = 987 } (gdb) pipe p var|wc 7 19 80 (gdb) |p var|wc -l 7 (gdb) p /x var $4 = { black = 0x90, red = 0xe9, green = 0x179, blue = 0x262, white = 0x3db } (gdb) ||grep red red => 0xe9, (gdb) | -d ! echo this contains a | char\n ! sed -e 's/|/PIPE/' this contains a PIPE char (gdb) | -d xxx echo this contains a | char!\n xxx sed -e 's/|/PIPE/' this contains a PIPE char! (gdb)
The convenience variables $_shell_exitcode
and $_shell_exitsignal
can be used to examine the exit status of the last shell command launched
by shell
, make
, pipe
and |
.
See Convenience Variables.