Russian Qt Forum

Qt => Вопросы новичков => Тема начата: opera от Январь 26, 2021, 15:23



Название: Непонятное падение программы
Отправлено: opera от Январь 26, 2021, 15:23
Добрый день, есть непонятное падение программы только в режиме Debug, выдает следущее сообщение:
"Exception thrown at 0x00007FFB144F3C4D (Qt5Guid.dll) in MyApp.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF."
на строчке
Код:
QApplication app( argc, argv );
----->int app_ret = app.exec();
Гуггл особо не помог, может кто скажет,что это и как лечить?Спасибо


Название: Re: Непонятное падение программы
Отправлено: tux от Январь 26, 2021, 15:30
1) Версия Qt какая?
2) Программа падает любая или определённая?


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 26, 2021, 15:45
1)5.13.2
2)Определенная


Название: Re: Непонятное падение программы
Отправлено: qate от Январь 26, 2021, 15:59
Что говорит запуск под отладчиком ?


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 26, 2021, 16:05
Что говорит запуск под отладчиком ?

все то,что я скинуд в шапке темы. Все проходит и работает, но когда отпускаешь breakpoint и нажимаешь f5, то падает на app.exec()


Название: Re: Непонятное падение программы
Отправлено: tux от Январь 26, 2021, 16:52
Может просто попробовать собрать на более свежей версии Qt? На дворе уже 5.15.2.
Если не хочется ломать рабочую Qt - можно завести виртуалку.


Название: Re: Непонятное падение программы
Отправлено: qate от Январь 26, 2021, 19:35
все то,что я скинуд в шапке темы. Все проходит и работает, но когда отпускаешь breakpoint и нажимаешь f5, то падает на app.exec()

обычно отладчик останавливается и показывает где упал

без кода - предположу что идет освобождение ранее освобожденного экземпляра класса


Название: Re: Непонятное падение программы
Отправлено: __Heaven__ от Январь 27, 2021, 08:14
Убедитесь ещё на всякий, что либы используются от одного компиля и что все они дебажные


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 27, 2021, 14:04
Может просто попробовать собрать на более свежей версии Qt? На дворе уже 5.15.2.
Если не хочется ломать рабочую Qt - можно завести виртуалку.
а инсталлера для 5.15 я не нашел, последний который был,это как раз 5.14. Если есть ссылка,то можно?


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 27, 2021, 14:05
все то,что я скинуд в шапке темы. Все проходит и работает, но когда отпускаешь breakpoint и нажимаешь f5, то падает на app.exec()

обычно отладчик останавливается и показывает где упал

без кода - предположу что идет освобождение ранее освобожденного экземпляра класса


он останавливается на строчке:
----->int app_ret = app.exec();


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 27, 2021, 14:05
Убедитесь ещё на всякий, что либы используются от одного компиля и что все они дебажные
как это сделать,как проверить?


Название: Re: Непонятное падение программы
Отправлено: ecspertiza от Январь 27, 2021, 15:39
может быть callstack есть?


Название: Re: Непонятное падение программы
Отправлено: tux от Январь 27, 2021, 15:43
а инсталлера для 5.15 я не нашел, последний который был,это как раз 5.14. Если есть ссылка,то можно?
Качаете любой инсталлятор Qt и просто ставите. Там уже 6.0.1 вполне ставится, буквально сегодня пробовал. На винде.
На linux 5.15.2. И свежее, в ближайшем будущем, точно не будет.


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 27, 2021, 15:55
а инсталлера для 5.15 я не нашел, последний который был,это как раз 5.14. Если есть ссылка,то можно?
Качаете любой инсталлятор Qt и просто ставите. Там уже 6.0.1 вполне ставится, буквально сегодня пробовал. На винде.
На linux 5.15.2. И свежее, в ближайшем будущем, точно не будет.
Можно ссылку на инсталлер,чтобы установить 5.15?НЕ совсем понимаю, где я на любом инсталлере смогу выбрать 5.15, если он для конкретной версии?На винду. Пример:https://download.qt.io/archive/qt/5.14/5.14.0/ файл qt-opensource-windows-x86-5.14.0.exe Для 5.15 и 6.0 не вижу таких файлов в архиве   


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 27, 2021, 15:58
может быть callstack есть?


Название: Re: Непонятное падение программы
Отправлено: tux от Январь 27, 2021, 16:35
Можно ссылку на инсталлер,чтобы установить 5.15?НЕ совсем понимаю, где я на любом инсталлере смогу выбрать 5.15?
Прямо сейчас проверил. Допустим https://www.qt.io/download-qt-installer?hsCtaTracking=99d9dd4f-5681-48d2-b096-470725510d34%7C074ddad0-fdef-4e53-8aa8-5e8a876d6ab4 Вообще, в гугле или яндексе набираем "qt download" и с сайта качаем инсталлятор. Там можно поставить хоть несколько версий.


Название: Re: Непонятное падение программы
Отправлено: qate от Январь 27, 2021, 16:40
думаю сторонний код мешает работе - комментируй его до тех пор пока падать не перестанет


Название: Re: Непонятное падение программы
Отправлено: ecspertiza от Январь 27, 2021, 18:39
В папке с приложением есть библиотеки Qt? Как будто разные версии Qt.


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 27, 2021, 19:07
Можно ссылку на инсталлер,чтобы установить 5.15?НЕ совсем понимаю, где я на любом инсталлере смогу выбрать 5.15?
Прямо сейчас проверил. Допустим https://www.qt.io/download-qt-installer?hsCtaTracking=99d9dd4f-5681-48d2-b096-470725510d34%7C074ddad0-fdef-4e53-8aa8-5e8a876d6ab4 Вообще, в гугле или яндексе набираем "qt download" и с сайта качаем инсталлятор. Там можно поставить хоть несколько версий.
там архив с папками, какой файл запустить из них,чтобы такой инсталлер был?


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 27, 2021, 19:16
В папке с приложением есть библиотеки Qt? Как будто разные версии Qt.
нет, не вижу


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 27, 2021, 19:20
В папке с приложением есть библиотеки Qt? Как будто разные версии Qt.
У меня еще почему-то настройки стоят(см.картинку 5.14), а при сборке пишет : 'BksMtRisk.exe' (Win32): Loaded 'C:\Qt\Qt5.13.2\5.13.2\msvc2017_64\bin\Qt5Guid.dll'.


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 27, 2021, 19:27
Можно ссылку на инсталлер,чтобы установить 5.15?НЕ совсем понимаю, где я на любом инсталлере смогу выбрать 5.15?
Прямо сейчас проверил. Допустим https://www.qt.io/download-qt-installer?hsCtaTracking=99d9dd4f-5681-48d2-b096-470725510d34%7C074ddad0-fdef-4e53-8aa8-5e8a876d6ab4 Вообще, в гугле или яндексе набираем "qt download" и с сайта качаем инсталлятор. Там можно поставить хоть несколько версий.
все разобрался,спасибо


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 27, 2021, 19:45
В папке с приложением есть библиотеки Qt? Как будто разные версии Qt.
У меня еще почему-то настройки стоят(см.картинку 5.14), а при сборке пишет : 'BksMtRisk.exe' (Win32): Loaded 'C:\Qt\Qt5.13.2\5.13.2\msvc2017_64\bin\Qt5Guid.dll'.
сменил : 'BksMtRisk.exe' (Win32): Loaded 'C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin\Qt5Guid.dll'.
результат такой же


Название: Re: Непонятное падение программы
Отправлено: tux от Январь 28, 2021, 10:30
Без кода можно гадать вечно. Допустим, я бы ещё попробовал собрать проект на MinGW. Ну и расставил бы 100500 точек остановки.


Название: Re: Непонятное падение программы
Отправлено: ecspertiza от Январь 28, 2021, 10:35
Release тоже падает?


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 28, 2021, 11:57
Release тоже падает?

нет,релиз работает


Название: Re: Непонятное падение программы
Отправлено: qate от Январь 28, 2021, 16:45
ставь в чистую виртуалку и собирай в ней
если не будет падать - проблема в текущей ОС
если будет - проблема в коде


Название: Re: Непонятное падение программы
Отправлено: ecspertiza от Январь 28, 2021, 19:31
Release тоже падает?

нет,релиз работает

С какими еще библиотеками компилируешь проект кроме Qt?  Велика вероятность что проблема в них.


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 28, 2021, 22:54
Release тоже падает?

нет,релиз работает

С какими еще библиотеками компилируешь проект кроме Qt?  Велика вероятность что проблема в них.
boost,metatreder4/5


Название: Re: Непонятное падение программы
Отправлено: tux от Январь 29, 2021, 14:17
Ну, буст использует куча людей и вряд ли дело в нём. А вот по метатрейдеру я бы напрягся.
Оно ведь кривое, даже без Qt.


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 29, 2021, 15:24
Ну, буст использует куча людей и вряд ли дело в нём. А вот по метатрейдеру я бы напрягся.
Оно ведь кривое, даже без Qt.
да, но это проблема возникает только при закрытии (X) одного из окон приложения и только в режиме debug, во всех остальных случаях, которые я видел и использовал,ничего подобного и критичного нет.Когда приложение создает окно дополнительное и ты его закрываешь, то приложение падает на строке, которую я писал выше. Ни на access violation ни на что-то подобное он не ругается


Название: Re: Непонятное падение программы
Отправлено: kambala от Январь 29, 2021, 16:03
тогда, очевидно, надо искать проблему именно в том окне


Название: Re: Непонятное падение программы
Отправлено: tux от Январь 29, 2021, 17:20
то приложение падает на строке, которую я писал выше.
Проблема не обязательно именно в этой строке. Но, опять же, без кода это всё - гадание.


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 29, 2021, 17:29
то приложение падает на строке, которую я писал выше.
Проблема не обязательно именно в этой строке. Но, опять же, без кода это всё - гадание.
я понимаю, но почему отладчик тогда не показывает причину, а ссылается на QtGuid.dll и указывает на общую строку exec?


Название: Re: Непонятное падение программы
Отправлено: Igors от Январь 29, 2021, 17:35
я понимаю, но почему отладчик тогда не показывает причину, а ссылается на QtGuid.dll и указывает на общую строку exec?
А он (отладчик) в "нутро" заходит? Т.е. если дойти до app.exec() и сделать "step in" (не знаю какая клавиша в Вашем IDE), то Вы "ходите" по коду Qt либы? Если нет, то надо "пересобирать", иначе ловить нечего. И собирать в новые папки/мамки  (а не поверх старых)


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 29, 2021, 19:39
я понимаю, но почему отладчик тогда не показывает причину, а ссылается на QtGuid.dll и указывает на общую строку exec?
А он (отладчик) в "нутро" заходит? Т.е. если дойти до app.exec() и сделать "step in" (не знаю какая клавиша в Вашем IDE), то Вы "ходите" по коду Qt либы? Если нет, то надо "пересобирать", иначе ловить нечего. И собирать в новые папки/мамки  (а не поверх старых)
Поставил break на строчку app.exec(), естественно приложение там встало, никакие окна не отображаются, нажал Step Into, все заработало, пошел процесс отображения окон и работы самого приложения. По чему конкретно я еще должен ходить?К примеру, по событию закрытия окна closeEvent я хожу


Название: Re: Непонятное падение программы
Отправлено: kambala от Январь 29, 2021, 20:11
если совсем нет догадок о причинах, берешь то окно и начинаешь отключать куски его кода, пока не локализуешь краш.

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


Название: Re: Непонятное падение программы
Отправлено: opera от Январь 29, 2021, 20:54
если совсем нет догадок о причинах, берешь то окно и начинаешь отключать куски его кода, пока не локализуешь краш.

еще попробуй через valgrind или подобную утилиту прогнать — высока вероятность, что где-то бьется память, оттого и такой странный стэктрейс.
еще раз, я прохожу корректно closeEvent и деструктор окна, потом я иду по dll типо Q5Widgets и нажимаю f10,f10 как только я дохожу до Q5Guid он попадает в нее и падает, куски кода комментировать не имеет смысла, я прохожу полность события в отладке close и деструктора, больше кода и нету в принципе,чтобы его проходить и отлаживать,это уже внутренности Qt!


Название: Re: Непонятное падение программы
Отправлено: kambala от Январь 29, 2021, 23:59
если бы проблема была во внутренностях Qt, то падало бы при закрытии любого окна. а мое предложение ниже ты, видимо, полностью проигнорировал.

дебаг сборка без подключенного отладчика тоже падает? (например, если просто из файлового менеджера запустить)

можно еще на другой машине и/или в другой ОС потестить.


Название: Re: Непонятное падение программы
Отправлено: tux от Январь 30, 2021, 09:23
я понимаю, но почему отладчик тогда не показывает причину, а ссылается на QtGuid.dll и указывает на общую строку exec?
Отладчик - штука не волшебная. Допустим, что исключение вылетело при вызове функции из DLL. Или асинхронно вызвали фукцию из той же DLL, а обработчик уже закрыт на тот момент - "по крестику". Программа упадёт и отладчик, максимум, что сможет показать, что "упала" функция exec. Или покажет окно с ассемблером.
Можно расставить 100500 Q_ASSERT и ловить - вдруг, что попадётся.


Название: Re: Непонятное падение программы
Отправлено: Igors от Январь 30, 2021, 09:32
По чему конкретно я еще должен ходить?К примеру, по событию закрытия окна closeEvent я хожу
Так, отладчик работает и стек падения тоже есть - ну так это хорошо. Отладчик должен показывать код/исходники всех вызовов стека, по крайней мере для дебажных Qt либ. Напр по дабл-клику или контекстному меню - ищите. В крайнем случае поставить break в ассемблере перед падением