Для компиляции программы с отладочной информацией нужно использовать флаг: -g
Дадим короткий список наиболее часто встречающихся команд отладчика GDB. За более подробной информацией вы, конечно, всегда можете обратиться к встроенному описанию программы (info gdb) или руководством по пользованию (man gdb).
backtrace – выводит весь путь к текущей точке останова, то есть названия всех функций, начиная от main(); иными словами, выводит весь стек функций;
break – устанавливает точку останова; параметром может быть номер строки или название функции;
break <filename:function:label>
break "*<function> + offset"
clear – удаляет все точки останова на текущем уровне стека (то есть в текущей функции);
continue – продолжает выполнение программы от текущей точки до конца;
delete – удаляет точку останова или контрольное выражение;
delete <breakpoint number>
display – добавляет выражение в список выражений, значения которых отображаются каждый раз при остановке программы;
display <variable name>
finish – выполняет программу до выхода из текущей функции; отображает возвращаемое значение,если такое имеется;
info breakpoints – выводит список всех имеющихся точек останова;
info watchpoints – выводит список всех имеющихся контрольных выражений;
list – выводит исходный код; в качестве параметра передаются название файла исходного кода, затем, через двоеточие, номер начальной и конечной строки;
list 12,15 - с какой строки начинать и на какой заканчивать
list problem.cpp:20 - в каком файле и с какой строки начинать
next – пошаговое выполнение программы, но, в отличие от команды step, не выполняет пошагово вызываемые функции;
print – выводит значение какого-либо выражения (выражение передаётся в качестве параметра);
print <variable name>
run – запускает программу на выполнение;
run <program args>
set – устанавливает новое значение переменной
set <variable name>=<new value>
step – пошаговое выполнение программы с входом в функции;
watch – устанавливает контрольное выражение, программа остановится, как только значение контрольного выражения изменится;
help - справка по указанной команде
help <command name>