Методы отладки программного обеспечения Qt - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть приложение, которое опубликовано на странице Microsoft Store на странице работоспособности для приложения в Dev center, оно сообщает о проблеме сбоя:

fail_fast_fatal_app_exit_c0000409_qt5core.dll!qt_logging_to_console

И трассировка стека:

0   ucrtbase.dll    abort   0x000000000000004E
1   Qt5Core.dll qt_logging_to_console   0x000000000000017A
2   Qt5Core.dll QMessageLogger::fatal   0x0000000000000093
3   Qt5Gui.dll  QPixmap::paintEngine    0x0000000000000052
4   Qt5Gui.dll  QPixmap::QPixmap    0x0000000000000037

При отладке приложения не происходит никаких сбоев.Вопрос в том, как получить место сбоя или строку / имя функции в коде по трассировке стека?Есть идеи?Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Гексы выглядят как некоторые смещения, возможно, при запуске функции, поскольку они маленькие.Вы можете скачать и скомпилировать утилиту dia2dump (она также находится где-то в сэмплах VS), которая может получить много информации об отладочных символах, включая номера строк для каждого смещения.Таким образом, вы будете знать номера строк для стека.

PS обратите внимание, что для исследования этого стека вам нужны pdbs Qt, а не ваши программные.

0 голосов
/ 22 февраля 2019

Я думаю, что проблема была в создании / уничтожении значков программ на лету, а DestroyIcon уничтожил используемый дескриптор.

Я добавил некоторые улучшения, теперь он создает только 1 объект из HICONи QPixmap, затем добавляет к структуре в цикле и после выхода из цикла вызывает функцию DestroyIcon для уничтожения дескриптора HICON.

Также я нашел эту статью о поиске ошибок в MicrosoftStore: Как получить дамп сбоя (или любой пригодный для использования отчет о сбое) для преобразованного приложения UWP Магазина Windows?

Но я также собираюсь попробовать приложение StackWalker для проверкидругие вопросы.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...