MyTetra Share
Делитесь знаниями!
Что делать если не работает отладка в QtCreator под Android
Время создания: 24.07.2023 10:13
Текстовые метки: qt, QtCreator, android, андроид, отладка, debug, дебаг
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - Среда разработки QtCreator
Запись: xintrea/mytetra_syncro/master/base/1690182780m13t86dszy/text.html на raw.github.com

В связке QtCreator 3.0.0 + Qt 5.2 при разработке под Андроид может не работать отладка. Выглядит это так: ставится брекпоинт, программа запускается под отладчиком, но брекпоинт не срабатывает, хотя программа гарантированно проходит данный участок кода. Как в этом случае заставить работать отладчик?


Вот какое решение проблемы найдено на просторах Интернета:



Проблема оказалась в том, что отладка под Андроид не может работать в случае, если в файле проекта *.pro вручную указан каталог сборки через опции OBJECTS_DIR и MOC_DIR и каталог результата через DESTDIR.

Сборка в стандартном режиме Android Kit правильно распознает OBJECTS_DIR и MOC_DIR, и складывает туда moc-и и объектники. Сборка правильно распознает DESTDIR и складывает туда конечный бинарник.

А при отладчике, похоже, что эти опции игнорируются. Причем никаких ошибок нигде не видно - лог запуска отладки аналогичен логу запуска программы, в которой каталоги не сконфигурированы и используются дефолтные. Просто молча не работает остановка на брекпоинтах.

Решение проблемы: для сборки под Андроид в QtCreator 3.0.0 не использовать опции DESTDIR, OBJECTS_DIR, MOC_DIR, (и UI_DIR, я формами не пользуюсь, поэтому не проверял). То есть, не прописывать эти опции в *.pro файле. QtCreator сам установит в Android Kit эти опции по своему разумению. Тогда отладка будет работать.



Да, это workaround, но если сам инструмент не позволяет сделать правильно, приходится использовать вот такие странные методы.


 
MyTetra Share v.0.65
Яндекс индекс цитирования