Stuff about GNU Debugger (AKA gdb). * [[http://devarea.com/10-things-you-can-only-do-with-gdb/|10 things you can only do with GDB]] * https://github.com/trstringer/cli-debugging-cheatsheets/blob/master/c.md == Usage patterns == Run a program w/ arguments: {{{#!highlight sh numbers=off gdb --args ${PROGRAM_NAME} ${ARGUMENTS} }}} to automatically start debugging, put commands into a file, including breakpoints if you want them. E.g.: {{{ breakpoint main.cpp:1 run }}} and then execute gdb with `-x`: {{{#!highlight sh numbers=off gdb -x ${COMMANDS_FILE} --args ${PROGRAM_NAME} ${ARGUMENTS} }}} == Quick reference == * List all variables in current context: `info locals` if at a breakpoint, or `bt full` if at a breakpoint * `generate-core-file` to generate a coredump. Be aware of [[https://bugzilla.redhat.com/show_bug.cgi?id=1099405|this bug on RHEL 7.x]], for which the workaround is `info threads` before creating the coredump.