gdbserver
gdbserver — компьютерная программа, позволяющая удаленно отлаживать другие программы. [1] Запускаясь в той же системе, что и отлаживаемая программа, он позволяет отладчику GNU подключаться из другой системы; то есть только исполняемый файл, подлежащий отладке, должен находиться в целевой системе («цель»), а исходный код и копия двоичного файла, подлежащего отладке, должны находиться на локальном компьютере разработчика («хост»). Соединение может быть TCP или последовательной линией.
Как это работает
[ редактировать ]gdbserver
запускается в целевой системе с аргументами:- Либо имя устройства (для использования последовательной линии), либо имя хоста TCP и номер порта, а также
- Путь и имя файла исполняемого файла, который необходимо отладить.
- Затем он пассивно ожидает, пока хост-gdb свяжется с ним.
gdb
запускается на хосте с аргументами:- Путь и имя файла исполняемого файла (и любых источников) на хосте и
- Имя устройства (для последовательной линии) или IP-адрес и номер порта, необходимые для подключения к целевой системе.
Пример отладки программы под названием hello_world
на удаленной цели с использованием TCP («2159» — это зарегистрированный номер TCP-порта для удаленного GDB ):
remote@~$ gdbserver :2159 hello_world
Process hello_world created; pid = 2509
Listening on port 2159
local@~$ gdb -q hello_world
Reading symbols from /home/user/hello_world...done.
(gdb) target remote 192.168.0.11:2159
Remote debugging using 192.168.0.11:2159
0x002f3850 in ?? () from /lib/ld-linux.so.2
(gdb) continue
Continuing.
Program received signal SIGSEGV, Segmentation fault.
0x08048414 in main () at hello_world.c:10
10 printf("x[%d] = %g\n", i, x[i]);
(gdb)
Альтернативы
[ редактировать ]Другой метод удаленной отладки программ — использование удаленной заглушки . [2] [ нужны разъяснения ] В этом случае отлаживаемая программа связана с несколькими специальными подпрограммами, реализующими удаленный последовательный протокол GDB. Файл, содержащий эти подпрограммы, называется «заглушкой отладки».
См. также
[ редактировать ]Примечания
[ редактировать ]Ссылки
[ редактировать ]- Андреас Зеллер: Почему программы терпят неудачу: Руководство по систематической отладке , Морган Кауфманн, 2005. ISBN 1-55860-866-4
Внешние ссылки
[ редактировать ]