Использование отладчика

После того как исправлены синтаксические ошибки программы, начинается отладка алгоритма. Продемонстрируем работу отладчика на примере реализации линейного алгоритма.
Запустите отладчик (Alt-x gdb [Enter] имя_файла). Открывается примерно следующая картинка:


Отладчик готов принимать команды.
Чтобы программа могла приостанавливать свое выполнение в нужных нам местах, в программе следует установить так называемые контрольные точки (точки останова программы). Устанавливаем первую точку останова - саму нашу программу main. Для этого в строке ввода команд отладчика печатаем break main:



После этого запускаем программу на выполнение командой run :


Программа начинает выполняться и приостанавливается на первом исполняемом операторе, что фиксируется стрелкой в нижнем окне:


Для перехода к следующему исполняемому оператору вводим n (первая буква next - следующий):


Продолжаем каждый раз набирать n . В нужной точке программы введем исходные данные (в новой строке!):


Допустим, мы хотим узнать значение переменной В. Для этого где-нибудь ранее перед вычислением этой переменной напечатаем display B. Отладчик сразу же выведет значение переменной:


Теперь на каждом шаге отладчик будет выводить значение этой переменной:

В этом примере видно, что новое значение В было выведено после перехода отладчика на следующий оператор, т.е. после выхода из оператора, вычисляющего значение В.

Кроме переменных, отладчик также может вычислить и вывести значение целого выражения:


Если нам уже не требуется пошаговое выполение, а более крупное перемещение по программе, наберем c (от слова continue - продолжить):


Программа сделает скачок до следующей точки останова, а поскольку таковых в нашей программе больше нет, программа завершится.

Попробуем вставить точку останова внутри программы, например, в строке номер 12:


Теперь после печати c и ввода исходных значений программа совершит скачок к строке с номером 12:


Если хотим снять точки останова, введем отладчику команду clear. Одно обращение к этой команде снимает одну такую точку:


Заметим, что если вы не вышли из сеанса отладчика, повторный запуск программы не отменяет точки останова и команду display . Значения переменных прекратят выводиться при выходе из отладчика (команда q ) и последующем его запуске.