LINUX.ORG.RU

Нужна помощь. Опенсорчный проект. Не работает отладка в QtCreator 3 под Андроидом.


0

1

Имеется опенсорчный проект:

https://github.com/xintrea/mytetra_dev

Ветка experimental.

Сейчас пытаюсь портировать под Андроид. Используемые инструменты: QtCreator 3.0.0, Qt 5.2.

Проблема в том, что программа под Андроидом сегфолтится после первого окошка (на декстопах в Lin, Win и MacOsX работает нормально).

Но я не могу отдебажиться по причине того, что на этом проекте дебаг в QtCreator не работает. Остановки на брекпоинтах не происходит.

В мелких тестовых проектах дебаг в QtCreator работает. А вот в этом проекте - нет. То есть, вопрос скорее всего в настройках проекта в *.pro файле. Но я никакого криминала в этом файле не вижу.

Компиляцию провожу, само собой, в дебаг-режиме.

Необходимо понять, как заставить работать отладчик в QtCreator 3.0.0

Все действия по установке инструментария я описал здесь:

http://webhamster.ru/mytetrashare/index/mtb0/1388591956bp3mf2jywh

★★★★★

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

а серьезный просто не работает

клин клином вышибают ©

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

Это несерьезный подход.

Ты будешь смеяться, но у меня дохрена проектов, где только «несерьёзный» подход и выручал. Никогда не сталкивался с ситуацией, когда программа глючит, а после установки точки останова глюки волшебным образом пропадают? Я сталкивался. Ещё когда на Delphi писал.

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

Это несерьезный подход.

Лог это не серьезно?

andreyu ★★★★★
()

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

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

Вот к стати да, особенно если прога многопоточная или асинхронно принимает данные - тут точки останова сильно все меняют и некоторые стабильно возникающие баги вообще не получается воспроизвести.

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

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

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

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

мы же в 21 веке живем

Поэтому будем защемлять себе яйца дверью до победного. Чем конкретно лог-то не устраивает?

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

Поэтому будем защемлять себе яйца дверью до победного. Чем конкретно лог-то не устраивает?

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

Xintrea ★★★★★
() автор топика

Кароче, спасение утопающих - дело рук самих утопающих.

Таки смог запустить отладку.

Проблема оказалась в том, что отладка под Андроид не может работать в случае, если в файле проекта *.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 эти опции по своему разумению. Тогда отладка будет работать.

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

Ужас какой. Ну молодец, что разобрался.

А кстати, раз пошла такая пьянка - этот набор инструментов какие версии Андроида поддерживает? К примеру, на 2.3.4 твой проект работать будет?

// Я на Qt пишу, но исключительно под десктоп, и пока мне 4-й ветки хватает.

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

Ну там не под версию андроида, а по версии SDK вроде ориентироваться нужно.

В комплекте идет Android target SDK «android-19»

В наборе идет конфигуратор виртуалок, у которых доступен выбор только из одного пункта - Android 4.4.

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

Ну не знаю, может быть можно подключить SDK и NDK более старых версий. Там в принципе просто каталог с SDK и NDK указывается и все.

Компилер под ARM v5 тоже есть в комплекте.

У меня на Android V 4.2 (у которого и API 17) запускается моя самосборная прога с API 19.

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