В Eclipse, как загрузить исполняемый файл в удаленную встроенную цель на основе ARM при удаленной отладке

Я создаю программу "hello world" в Eclipse CDT с плагином кросс-разработки для платы на базе ARM Cortex-A8. Я определяю компилятор arm-none-linux-gnueabi для кросс-разработки, и когда я передаю свой выходной двоичный файл на плату с USB, он работает нормально. Я подключаюсь к плате с помощью ssh и выполняю команды.

Через ssh я запускаю следующую команду:

gdbserver: 2345 mydebugexecutable

Процесс NeonDenemeler_debug создан; pid = 1692

Прослушивание через порт 2345

"mydebugexecutable" - это исполняемый файл, который кросс-компилируется на моем хост-компьютере (Ubuntu) в Eclipse CDT с настройкой отладки. Я создаю конфигурацию отладки, как описано в http://linuxtortures.blogspot.com.tr/2012/06/cross-compiling-and-cross-debugging-c.html

Чтобы подвести итог процедуры, я создал новую конфигурацию удаленной отладки C/C++, установил отладчик "arm-none-linux-gnueabi-gdb" вместо "gdb" и установил настройки соединения для ip и порта моей удаленной цели. Все работает нормально, когда я запускаю эту конфигурацию отладки, так как встроенный gdbserver ожидает пакеты от порта 2345.

Однако, моя проблема в том, что когда я меняю исходный код и снова компилирую, есть ли способ загрузить двоичный файл через gdb с хоста на целевой объект с помощью Eclipse? Мне не удалось найти такую ​​опцию, как "загрузить исполняемый файл" и т. Д. Я делаю свои изменения и собираю, но всегда старый исполняемый файл запускается на цели. Один из моих компаньонов успешно выполняет тот же процесс удаленной отладки, используя QT, это означает, что у "arm-none-linux-gnueabi-gdb" есть эта функция загрузки удаленных исполняемых файлов.

1 ответ

Дело в том, что вы используете конфигурацию "Ручной удаленный отладчик" (по ссылке, которую вы разместили). Под руководством это означает, что приложение копируется в цель и запускается пользователем.

Все, что вам нужно сделать, это придерживаться конфигурации отладки на рисунке 10, которая является настройкой по умолчанию ("Автоматический удаленный отладчик"). Сеанс отладки скопирует файл в целевое устройство и автоматически запустит отладку, как если бы это было локально. Чтобы это работало, вам просто нужно убедиться, что вы сначала создали работающее Удаленное соединение в перспективе "Удаленный системный обозреватель" и присвоили его своей конфигурации отладки (раскрывающееся меню "Соединение").

Надеюсь, поможет!

Другие вопросы по тегам