Задать вопрос
@amberav

Как выловить ошибку в приложении QT?

Написал приложение на QT, которое читает и пишет в COM порт. Все нужные библиотеки положил. Приложение запускается, но при запуске функции чтения (запускается SetTimer, вызывающий мою функцию чтения) с СОМ порта падает без каких-либо сообщений. Просто появляется "windows ищет ошибку..." Функции отправки сообщений(через writefile) в порт работают корректно.
Но дело видимо не в самой работе с портом. На 2 компьютерах(windows 7 и 8) с установленной QT все работает. При запуске на компьютерах без QT программа падает.
Вопрос заключается в том, как выловить эту ошибку. Получить как-нибудь осмысленное сообщение, чтобы понять на чем спотыкается программа.
Или может кто-нибудь знает, что такого загружает QT при установке, чего может не хватать.
Сделал вывод получаемых данных в файл. Судя по выводу, функция чтения один раз отрабатывает корректно, запись полученного тоже работает. После вывода моего кода больше нет. Программа должна ожидать следующего вызова чтения по таймеру, но падает.

Отчет WER

Sig[3].Name=Имя модуля с ошибкой
Sig[3].Value=USER32.dll
Sig[4].Name=Версия модуля с ошибкой
Sig[4].Value=6.3.9600.17031
Sig[5].Name=Отметка времени модуля с ошибкой
Sig[5].Value=53086d13
Sig[6].Name=Смещение исключения
Sig[6].Value=00035eed
Sig[7].Name=Код исключения
Sig[7].Value=c0000409
Sig[8].Name=Данные исключения
Sig[8].Value=00000001

Сомневаюсь, что ошибка в user32. Версии файла одинаковы и на работающих компьютерах, и на тех, где падает. Вспомнил еще момент. При отладке не получалось просмотреть больше одного вызова чтения, после него вылезал SegFault. Но при "Запуск без отладки" все работало, поэтому забил. Может с этим связано.
Предотвращение выполнения данных уже отключал для экзешника.
  • Вопрос задан
  • 2608 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
EvgenijDv
@EvgenijDv
C/C++ programmer
При отладке не получалось просмотреть больше одного вызова чтения, после него вылезал SegFault. Но при "Запуск без отладки" все работало, поэтому забил.

facepalm.png
Ответ написан
Комментировать
GavriKos
@GavriKos
Ну так и разберитесь с SegFault. Единственное что можно сказать. Собственно он у вас вылазит и без отладки, только в виде падения.
Ответ написан
EXL
@EXL
Энтузиаст
На 2 компьютерах(windows 7 и 8) с установленной QT все работает. При запуске на компьютерах без QT программа падает.

Читать документацию. Вы неправильно разворачиваете своё приложение в средах Windows:
Как развернуть(deployment) Qt приложение на windows?
https://qt-project.org/doc/qt-5/windows-deployment...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы