Присоединитесь к процессу Android от Qt Creator

Я использую Qt Creator для разработки динамической библиотеки Android, то есть файла .so. Этот .so файл затем используется приложением Android, но он разработан в Eclipse.

Мне нужно отладить мой собственный код, но поскольку это библиотека, я не могу запустить приложение из Qt Creator, я должен присоединяться к уже запущенному процессу.

Теперь, если бы это было настольное приложение, я бы использовал Debug->Start Debugging->Attach to Running Application, но как я могу подключиться к процессу Android, который будет работать на эмуляторе или на подключенном телефоне, что больше похоже на удаленную отладку

Я думаю, что я должен использовать Debug->Start Debugging->Attach to Running Debug Server:

введите описание изображения здесь

Тем не менее, я не уверен, что такое точные шаги: как мне запустить сервер отладки для ADB и с каким портом я подключаюсь?

Ответ 1

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

http://lists.qt-project.org/pipermail/qt-creator/2012-June/001017.html

Установите инструментальную цепочку с этой версией gdb и установите для нее проект. В Инструменты → Параметры → Отладчик → GDB вставьте свои команды в "Дополнительно Startup Commands"

...

Я использую Debug → Start Debugging → Attach to Remote. Все поля там (solib-absolute-prefix является псевдонимом для sysroot, а "местоположение" отладочная информация "- это solib-search-path), а последние несколько" Конфигурации" хранятся, поэтому вы можете легко их перезвонить. у меня есть для запуска gdbserver вручную, установите ярлык, чтобы открыть 'attach to remote', и он отлично работает для меня так.

Это старый (июнь 2012 г.), но он более подробно описывает, как запускается gdbserver и настройка для отладчика и присоединение к процессу в Qt. В нем также упоминаются некоторые из соответствующих переменных среды:

set solib-absolute-prefix $ANDROID_SRC/out/target/product/MYPRODUCT/symbols/
set solib-search-path $ANDROID_SRC/out/target/product/MYPRODUCT/symbols/system/lib/

Надеюсь, что это поможет.

Ответ 2

Присоединение к adb logcat не зависит от Qt и того, какой Android-источник вы используете. Убедитесь, что adb.exe можно найти на вашем пути, например: C:\Android\SDK\platform-tools, и у вас есть драйверы adb для устройства, от которого вы отлаживаете. Попробуйте это, если вы боретесь: http://www.koushikdutta.com/post/universal-adb-driver

Команды ADB командной строки

Это должно распечатать любые подключенные устройства, которые можно найти:

adb devices

Это очищает текущие журналы журналов:

adb logcat -c

Запустится соединение с logcat:

adb logcat

Обычно вам не нужно беспокоиться о том, к какому порту подключиться, потому что он автоматически найден adb.

Прикрепление к logcat через wifi также не работает.

adb tcpip
adb connect 192.168.XX.XX:5555

Надеюсь, что это поможет.