Gdbserver - Gdbserver

gdbserver это компьютерная программа, которая позволяет удаленно отлаживать другие программы.[1] Работая в той же системе, что и отлаживаемая программа, он позволяет Отладчик GNU для подключения из другой системы; то есть только исполняемый файл, который нужно отлаживать, должен находиться в целевой системе («target»), в то время как исходный код и копия двоичного файла для отладки должны находиться на локальном компьютере разработчика («host»). Соединение может быть TCP или последовательной линией.

Как это устроено

  1. gdbserver запускается в целевой системе с аргументами:
    • Либо имя устройства (для использования последовательной линии), либо имя хоста TCP и номер порта, и
    • Путь и имя исполняемого файла для отладки
    Затем он пассивно ожидает, пока хост GDB свяжется с ним.
  2. GDB запускается на хосте с аргументами:
    • Путь и имя исполняемого файла (и любых источников) на хосте, и
    • Имя устройства (для последовательной линии) или IP-адрес и номер порта, необходимые для подключения к целевой системе.

Пример отладки программы под названием Привет, мир на удаленной цели с использованием TCP ("2159" - это зарегистрированный номер порта TCP для удаленного GDB ):

удаленный @ ~ $ gdbserver: 2159 hello_worldПроцесс hello_world создан; pid = 2509Прослушивание через порт 2159
местный @ ~ $ gdb -q hello_worldЧтение символов из /home/user/hello_world...done.(GDB) целевой пульт 192.168.0.11:2159Удаленная отладка с использованием 192.168.0.11:21590x002f3850 в ?? () из /lib/ld-linux.so.2(GDB) ПродолжитьПродолжаем.Программа получила сигнал SIGSEGV, Ошибка сегментации.0x08048414 в main () на hello_world.c: 1010 printf ("x [% d] =% g  n", i, x [i]);(GDB)

Альтернативы

Еще один метод удаленной отладки программ - использование удаленная заглушка.[2][требуется разъяснение ] В этом случае отлаживаемая программа связана с несколькими подпрограммами специального назначения, реализующими удаленный последовательный протокол GDB. Файл, содержащий эти подпрограммы, называется «заглушкой отладки».

Смотрите также

Примечания

Рекомендации

  • Андреас Целлер: Почему программы терпят неудачу: руководство по систематической отладке, Морган Кауфманн, 2005. ISBN  1-55860-866-4

внешняя ссылка