How to automatically run the executable in GDB?
I'd like to have gdb
immediately run the executable, as if I'd typed "run"
(motivation: I dislike typing "run").
One way is to pipe the command to gdb
like this:
$ echo run | gdb myApp
But the problem with this approach is that you lose interactivity with gdb
,
eg. if a breakpoint triggers or myApp
crashes, gdb
quits.
This method is discussed here.
Looking at the options in --help
, I don't see a way to do this, but perhaps I'm missing something.
Solution 1:
gdb -ex run ./a.out
If you need to pass arguments to a.out
:
gdb -ex run --args ./a.out arg1 arg2 ...
EDIT: Orion says this doesn't work on Mac OSX.
The -ex
flag has been available since GDB-6.4
(released in 2005), but OSX uses Apple's fork of GDB, and the latest XCode for Leopard contains GDB 6.3.50-20050815 (Apple version gdb-967)
, so you are out of luck.
Building current GDB-7.0.1
release is one possible solution. Just be sure to read this.
Solution 2:
I would use a gdb-script:
gdb -x your-script
where your-script contains something like:
file a.out
b main
r
afterwards you have the normal interactive gdb prompt
EDIT:
here is an optimization for the truly lazy:
- save the script as
.gdbinit
in theworking directory
. -
Afterwards you simply run gdb as
gdb
... and gdb automatically loads and executes the content of .gdbinit.