LINUX.ORG.RU

Отладка через GDB в Qt Creator

 ,


1

1

Добрый день.В использовании Qt Creator новичок, а в Embedded Linux и вообще в работе с Linux зеленый. Возник вопрос на который пока что я не нагуглил ответ.Собственно, хочется отлаживать мое приложение для платы через GDB.И вроде даже все получается, единственный нюанс который не нравится - это то что мне нужно в ручную закинуть свой бинарник на плату,запустить сервер и в Creatore подключиться к серверу отладки.Собственно мне не нравится количество моих действий что бы произвести отладку.Можно ли как то это все автоматизировать...Что бы при начале отладки Creator сам заливал бинарник на плату и запускал там сервер?

Ответ на: комментарий от UVV

Скрипт накатать для платы, который будет запускать сервер.Это в принципе понятно.Но, а как мне через Qt Creator заливать бинарник в плату при нажатии кнопки отладки?

NikishinRoman
() автор топика
Ответ на: комментарий от UVV

Невозможно запустить процесс «scp /home/nikishin/AppCM-FX6/HelloWorld/HW/HW root@192.168.3.158:/home» Ошибка при сборке/установке проекта HW (комплект: CM-FX6 Qt embedded) Во время выполнения этапа «Особый»

Я наверное чего-то не понимаю.

NikishinRoman
() автор топика
Ответ на: комментарий от NikishinRoman

Маловато информации будет. Может быть команда не найдена (проверить PATH) или ещё что. Доступ по ssh по ключу или по паролю?

UVV ★★★★★
()
Ответ на: комментарий от UVV

Плата CM-FX6.Процессор - i.mx6(Linux Ubuntu). Доступ по SSH - пароль.

NikishinRoman
() автор топика

QtCreator с давних времен умеет заливать бинарник на линуксовый хост (через SFTP).

Как сие сделать: Первое - в файле %myproject%.pro вписать что-то типа

#путь пишите тот, какой вам нужен.
target.path = /home/root
INSTALLS += target

Второе - вам нужно в настройках Qt добавить конфиг для удаленной Linux-машины. (Инструменты -> Параметры -> Устройства) Там задаете все что нужно, включая пароль к SSH, если он есть. Убедитесь что на целевом устройстве установлен gdbserver

И третье - настройки запуска проекта. Где запуск выберите установку на удаленую машину. И уберите из «последовательности действий» прокерку свободного места (у меня она почему-то не работает корректно).

Если хочется, там же можно выбрать вместо передачи бинарника создание тарбола и его установку на удаленной машине.

Все. Готово.

Единственное что, в последних версиях QtCreator (не могу точно сказать начиная с какой именно) что-то криво сделали настройку удаленого устройства. Теперь к «комплектам» можно добавлять только одну машину (раньше можно было в настройках запуска выбрать настройки для какой машины использовать).

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 4)
Ответ на: комментарий от RiseOfDeath

Девайс добавлен.gdbserver на плате запущен, даже получается отлаживаться(вкладка Отладка->начать отладку->подключиться к серверу отладки).Так работает.Но как4 только жмякаю просто начать отладку выбивает Не удалось выполнить начальную настройку: Приложение завершилось с кодом 127.При этом бинарник не заливается!!!.

Это добавил в .pro

#путь пишите тот, какой вам нужен. target.path = /home/root INSTALLS += target

NikishinRoman
() автор топика
Ответ на: комментарий от NikishinRoman

Были ошибки в настройках проекта...Новый бинарник заливается на плату(запускаю его на плате- то что надо выводит), но отладка по прежнему не запускается... Без включенного gdbserver пишет Initial setup failed: Application finished with exit code 127.

C включенным пишет :-1: error: Upload of file "/home/nikishin/AppCM-FX6/HelloWorld/HW/HW" failed. The server said: "Failure".

NikishinRoman
() автор топика
Ответ на: комментарий от NikishinRoman

Upload of file «/home/nikishin/AppCM-FX6/HelloWorld/HW/HW» failed

на плате OpenSSH или dropbear в качестве сервера ? Нужен OpenSSH - dropbear не поддерживает sftp и к тому же с ним постоянные проблемы бывают у креатора даже если при настройке проверка соединения без ошибок проходит.

anonymous
()
Ответ на: комментарий от NikishinRoman

gdbserver запускать не надо! Отладчик сам его запустит, когда нужно будет.

А вот что за «Initial setup failed: Application finished with exit code 127.» надо будет загуглить.

bash: gdbserver: command not found

Мне кажется вы как-то не правильно поставили туда gdbserver

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 1)
Ответ на: комментарий от NikishinRoman

Ну тогда не удивительно. Система ищет его в стандартных местах (обычно это /bin и /usr/bin)

Либо кладите бинарь куда следует (я про gdbserver) либо прописывайте пути.

Например вот так

PATH=$PATH:~/opt/bin

Я выше описывал про настройки запуска. Там же можно задать переменные окружения, которые будут использоваться для запуска. Прописывайте ваш путь туда. А еще лучше ставить gdbserver куда положено и как положено, с помощью пакетного менеджера, если он есть в вашем дистрибутиве.

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 3)
Ответ на: комментарий от NikishinRoman

Можно и так. Не знал об этом, ибо не возникало необходимости.

RiseOfDeath ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.