Необходимость перекрестного gdb для устройства

Я установил кросс-компилятор gcc-linux-gnueabihf на Ubuntu 12.04, и теперь я могу создать программу для встроенного устройства. Где можно найти перекрестный gdb для отладки?

Ссылка gcc-arm-linux-gnueabihf содержит gdb-arm-linux-gnueabihf в списке связанных пакетов, который, похоже, является отладчиком, который я ищу. Но этот пакет недоступен.

Ответ 1

Я рекомендую получить gdb из инструментальной линейки Linaro, а не репозиториев Ubuntu. Загрузите gcc-linaro-arm-linux-gnueabihf-4.7-2012.10-20121022_linux.tar.bz2 из здесь, и вы найдете:

  • bin/arm-linux-gnueabihf-gdb
  • arm-linux-gnueabihf/debug-root/usr/bin/gdbserver

Последний статически связан и, конечно, построен для ARM Linux.

Предполагая, что у вас есть сеть, уже настроенная на вашу целевую плату, скопируйте ее gdbserver и запустите:

$ gdbserver --multi :2345

На вашей машине разработки запустите:

$ arm-linux-gnueabihf-gdb
(gdb) target extended BOARD-IP-ADDR:2345
(gdb) set remote exec-file /bin/true
(gdb) run

и вы работаете с удаленной кросс-отладкой.

Ссылки на отслеживание ошибок Linaro, список рассылки и веб-форум здесь. Они очень активны в инструментальной цепочке ARM Linux, ядре, разработке QEMU, как вы можете видеть из их заметок о выпуске.

Ответ 2

Вам нужно установить пакет gdb-multiarch, а затем запустить команду gdb-multiarch, чтобы удаленно отлаживать вашу цель.

Ответ 3

gdb-multiarch работает gdb-multiarch, просто apt-get и запускай