(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Проекты | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация (English)

Инструкция по использованию отладчика с редактором emacs для языка C

gdb - отладчик, предназначенный для использования прежде всего как бэкенд отладки, это мощная программа с огромным набором возможностей, но предоставляющая достаточно примитивный интерфейс пользователя. Гораздо более удобный интерфейс обеспечивается фронтендами - программами-оболочками к отладчику gdb.

Как интерфейс к gdb можно использовать и редактор emacs!

Откроем пример программы на С в редакторе emacs.

Перейдем к отладчику, используя команду M-x gdb (напомним, что клавиша M - Meta - на большинстве современных клавиатур соответствует Alt). Набираемая команда отображается в нижней части экрана.

Редактор предложит запустить gdb с указанными ключами. Согласимся.

Теперь мы имеем возможность выполнять команды gdb в соответствии с предыдущей инструкцией. При этом команды можно не набирать, а использовать кнопки на панели инструментов.

Однако, emacs предоставляет и еще более комфортный интерфейс. В меню Gud выберем раздел Gud-MI, а в нем пункт Display Other Windows. Теперь наряду с консолью gdb мы видим исходный код, локальный переменные, консоль ввода-вывода и другие окна.

Установим контрольную точку. Это можно сделать, кликнув левой кнопкой мыши слева от нужной строки исходного кода.

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

Кнопкой Next Line выполним строку программы. Обратите внимание, что ввод данных со стандартного потока ввода и вывод в стандартный поток вывода обеспечивается через окно input/output, а значения переменных изменяются соответственно выполняемым инструкциям. Напомним, что команда Step Line в большинстве случае эквивалентна, но если, в выражении присутствует вызов функции, то Step Line переходит к ее инструкциям (вход в функцию), а Next Line выполняет строку за один шаг в любом случае.

Выполним еще один шаг.

И еще один. Обратите внимание на изменения.

Выполним оставшуюся часть программы, нажав на Continue.

Покажем пример подмены значения переменной. Пусть в ходе работы программы переменная some_variable получила значение 123.

Щелкнув средней кнопкой мыши по значению в окне locals, мы можем подменить его, напечатав новое значение

Набираем новое значение и подтверждаем изменение клавишей Enter.

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