Gdb:
Compiling a program for debugging:
g++ -ggdb -O0 hello.cpp #
g++ -g3 -O0 hello.cpp # -g3 compiles debugging info for preprocessor macros and no optimization
Running a program under the debugger without arguments
$> gdb myProgram
Setting the program arguments:
a) $> gdb --args myProgram 10 20 30 40
b) (gdb) start 10 20 30 40 # sets temporary breakpoint at main() and calls run.
c) (gdb) file myProgram
(gdb) run 10 20 30 40
d) (gdb) set args 10 20 30 40
(gdb) show args
(gdb) run
e) $> gdb myProgram core
f) $> gdb -tui myProgram core # start vim/emacs ide for debug session