Ответ 1
Первым шагом является компиляция вашей программы с помощью -g
для включения информации об отладке в исполняемый файл:
g++ -g -o myprog.exe mycode.cpp
Затем программу можно загрузить в gdb
:
gdb myprog.exe
Несколько команд для запуска:
-
break main
приведет к прерыванию отладки при вызовеmain
. Вы также можете разбить строки кода с помощьюbreak FILENAME:LINENO
. Например,break mycode.cpp:4
прерывает выполнение всякий раз, когда программа достигает строки 4 изmycode.cpp
. -
start
запускает программу. В вашем случае вам нужно установить контрольные точки перед запуском программы, потому что она быстро завершается.
В точке останова:
-
print VARNAME
. Это то, как вы печатаете значения переменных, будь то локальные, статические или глобальные. Например, в циклеfor
вы можете ввестиprint temp
, чтобы распечатать значение переменнойtemp
. -
step
Это эквивалентно "step into". -
next
илиadv +1
Перейдите к следующей строке (например, "step over" ). Вы также можете перейти к определенной строке определенного файла, например,adv mycode.cpp:8
. -
bt
Распечатайте обратную линию. Это трассировка стека, по существу. -
continue
Точно как операция "продолжить" визуального отладчика. Это приводит к продолжению выполнения программы до следующей точки прерывания или выхода программы.
Лучше всего прочитать руководство пользователя GDB.