
- •Компиляторы, библиотеки и инструментальные средства программирования
- •Получение информации: info
- •Двоичные форматы elf и a.Out
- •Другие компиляторы: Паскаль, Ада, Лисп и Фортран
- •Создание и использование библиотек: статических, совместно используемых и динамических
- •Символический отладчик gbd
- •Программа xxgdb
- •Инструментальные средства программирования
- •Инструментальные средства разработки
- •Утилита make
- •Система контроля версий: rcs
- •Система параллельных версий: cvs
- •Интерактивные справочники по приложениям: оперативные руководства
- •Файлы документации утилиты man
Символический отладчик gbd
В качестве символического отладчика для системы Linux применяется программа gbd. Если при запуске какой-либо программы происходит сбой, символический отладчик поможет отследить возможную ошибку. Символический отладчик позволяет шаг за шагом выполнять программу и отображает исходный код для каждой исполняемой строки. Можно остановиться на определенной функции и отобразить значения активных переменных. Более того, можно проверить содержимое памяти по заданным адресам, а также содержимое стека.
Для того чтобы иметь возможность воспользоваться символическим отладчиком, необходимо скомпилировать и скомпоновать программу с параметром -g. В следующем примере программа компилируется и подготавливается для работы с символическим отладчиком. После создания исполняемого файла можно приступать к работе с символическим отладчиком.
$ gcc -g main.с io.с
Для вызова символического отладчика необходимо ввести его название, gdb, а также название исполняемого файла. В следующем примере исполняемый файл именуется a.out.
$ gdb a.out
С помощью команды gdb осуществляется переход в среду отладчика. В этом случае командная строка Linux ($) будет заменена командной строкой gdb (gdb). Запуск программы в отладчике выполняется с помощью команды run:
(gdb) run
Если программа содержит операторы fopen или open, то это означает, что в некоторой точке программы будет открыт файл данных. В данном случае отладчик gdb должен располагать именем этого файла данных. При запуске программы с помощью команды run необходимо также указать название этого файла данных, (gdb) run имя_файла
Чтобы завершить работу с отладчиком, необходимо выполнить команду q или quit.
(gdb) quit
Для большинства команд gdb можно использовать однобуквенное сокращение, состоящее из первой буквы имени команды. Вместо ввода команды run можно указать одну букву г. Вместо команды выхода из отладчика quit можно ввести букву q, эквивалентом команды print является буква р, а для команды next — буква n. Команды отладчика gdb перечислены в табл. 2.
Таблица.2. Команды символического отладчика gdb Выполнение программ в командной строке gdb
г ran Выполнение программы
q quit Выход из среды gdb
Отображение переменных и параметров
р var print var Отображение содержимого переменной
р svar print tvar Отображение адреса переменной
set var = value Присвоение значения переменной во время сеанса gdb
where Отображение трассировки стека, показывающей по-
следовательность вызовов функций с именами и параметрами
info locals Отображение объявленных переменных и параметров
Отображение строк
1 номер_строки list номер_строки Отображение строк, начиная с указанного номера
строки
1 функция list функция Отображение номеров строк в функции
1 номер, номер list номер, номер Отображение набора строк Пошаговое и непрерывное выполнение
n next Одношаговое построчное выполнение, с вызовом те-
кущей строки и отображением следующей строки, которая будет вызвана
* step Одношаговое построчное выполнение, с вызовом те-
кущей строки и отображением следующей строки, которая будет вызвана
с cont Продолжение выполнения программы
b break Установка точки останова в текущей строке
break строка Установка точки останова в указанной строке
break функция Установка точки останова в первой строке указанной
функции
info break Вывод всех точек останова
d номер delete номер Удаление точки останова. Требуется указать номер точки останова
delete Удаление всех точек останова
Содержание переменных отображается с помощью команды print. Введите слово print и имя переменной. В следующем примере пользователь отображает значение переменной count.
(gdb) print count
10
С помощью команды where можно отобразить названия функций и параметры функции, вызываемой в некоторой точке программы. В следующем примере выполняется функция calc. В результате ввода команды where отображаются функции main и calc и значения их параметров.
(gdb) where
#3 calc(newcost = 2.0) at calc.c:25
#1 main () at main.c:19
#2 0x8000455 in crt dummy___ ()
Можно получить перечень всех переменных и параметров, определенных в функции. Команда info locals выведет текущие значения всех переменных и параметров. В следующем примере пользователь выводит на экран значения переменных.
(gdb) info locals
cost = 2
name = "Richard\000\000" count = 10 count2 = 10
nameptr = 0x8000570 "petersen"
countptr = (int *) Oxbffffde8
С помощью команды break можно установить в программе контрольные точки. При достижении контрольной точки программа прекращает работу. После этого можно продолжить выполнение программы в пошаговом режиме с помощью команд next или step. При необходимости можно продолжить выполнение программы до следующей контрольной точки. В этих целях применяется команда cont.