-
-
Notifications
You must be signed in to change notification settings - Fork 2
Using gdb
gdb is the GNU debugger and can be invaluble in dissecting C/C++ programs
To start gdb
, use this at the command line:
gdb ''program-name''
To run the program, use this inside gdb
:
r ''args''
It's also possible to specify all the arguments on the command line (giving the benefit of tab completion and filename globbing):
gdb --args ''program-name arg1 arg2 ...''
After starting gdb
like this, use the r
command with no arguments:
r
gdb
will then use the arguments passed on the command line.
If you have an existing test command (in a script or Makefile
) you can run it under gdb
control by prepending gdb --args
to it. In a Makefile
, you can create an empty variable called GDB
and use it in front of the test command:
check: $(GDB) ''program-name arg1 arg2''
Running
make GDB="gdb --args"
will now test the program under the control of gdb
.
There are many commands available within gdb. These can be discovered by using help
within the program, the manual page in linux, or a reference card.
The following are my favorites:
c Continue running b ''file'':''line'' Set breakpoint catch throw Stop when exception is thrown catch __cxa_throw Same again, can be more reliable clear Clear current breakpoint bt Show stack up ''n'' Go up stack trace info local info args p ''expr'' q Quit!