crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

История благодарностей участнику Osolemio ::: Спасибо сказали: 4 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
25.10.2017, 15:33 Приложение Qt+QML зависает через много часов работы
Похоже самому придется разбираться
Вроде все в Sqlite обработке. И похоже я попал на http://beets.io/blog/sqlite-nightmare.html lock timeout.
Поменял настройки SQLite, запустил. Часиков через 10-15 расскажу - оно или нет :)
Всем, кто смотрел, спасибо ;)
9or6UxhWRa1,
25.10.2017, 0:03 Приложение Qt+QML зависает через много часов работы
Доброго дня, други. Может поможете в чем и наставите на мысли умные :)

Не понимаю куда смотреть:
Имеется проект Qt + QML. Без UI. БОльшая часть - интерфейсная QML. Сишная часть не очень большая. Пару объектов, интегрированных в динамически создаваемый QML объект в ApplicationWindow и сетевая читалка по таймеру. берущая удаленно данные всего лишь раз в 5 секунд. Несчастный килобайт. И пишет его в SQLite Db. Кушает CPU на уровне пары процентов. Т.е. легкая совсем. Есть особенность: в интерфейсе есть анимация с particle system.

Проблема в том, что проверил уже на всех платформах: Вынь x32/64, Убунту, МакОС программа через часов 9-10 работы перестает отвечать.
Valgrind - пусто. Ни одной ошибки до зависания. По остановке - тоже. Сейчас запустил с дебагером, может увижу где болтается при зависоне.
Пробовал собирать на 5.9 - 5.9.2, MinGW, MSVC - результат один и тот же.

Режимы OpenGPL менял (кстати, hang signature b3a6) - гуглил, разные проги имеют похожие подписи при "not responding" когда проблемы с видео-драйвером. Но тут на разных компах проверено. :(

Пробовал WhatsHang. Говорит, что некий длииинный цикл. Ничего более хорошего не показывает. Нет у меня циклов. Вообще. И вложенных вызовов тоже не обнаружил. Чтение по сокету исключительно через слоты/сигналы. Один while несчастный чтения из сокета проверен-перепроверен.

Ни один анализатор и профайлер ничего подозрительного не показывает. По всем данным нигде ни затыков, ни длинных операций, съедающих события. В этой части только 2 объекта сразу создаются через new и живут себе.

Как вычислить "героя"? Несколько дней поисков ничего не дали. Буду премного благодарен, если ткнете носом в методику отладки данной погани.
97WzugSKd31, 9or6UxhWRa1, DaLgAMYeVr1,

RSS Текстовая версия Сейчас: 25.11.2024, 18:39