首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt软件调试技术

Qt软件调试技术
EN

Stack Overflow用户
提问于 2019-02-21 20:00:26
回答 2查看 195关注 0票数 0

我有发布到Microsoft Store的应用程序,在Dev center中的应用程序的健康页面下,它报告崩溃问题:

fail_fast_fatal_app_exit_c0000409_qt5core.dll!qt_logging_to_console

和堆栈跟踪:

代码语言:javascript
运行
复制
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

在调试应用程序时,我不会遇到任何崩溃。问题是如何通过堆栈跟踪获得代码中的崩溃位置或函数行/名称?有什么想法吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-22 10:22:10

我认为问题在于程序图标的创建/销毁,而DestroyIcon破坏了正在使用的句柄。

我添加了一些改进,现在它只创建了HICONQPixmap的一个对象,然后追加到循环中的结构中,在循环退出后调用DestroyIcon函数来破坏HICON句柄。

此外,我还发现了这篇关于从Microsoft:如何为转换后的Windows Store UWP应用程序获取崩溃转储(或任何可用的崩溃报告)?中查找bug的文章

此外,我还将尝试StackWalker应用程序来检查其他问题。谢谢。

票数 0
EN

Stack Overflow用户

发布于 2019-02-23 15:17:13

十六进制看起来像一些偏移,也许是从函数开始,因为它们很小。您可以下载并编译dia2dump实用程序(在VS示例中的某个位置),它可以转储大量有关调试符号的信息,包括每个偏移量的行号。这样你就知道堆栈的行号了。

注意,您需要Qt的pdbs,而不是您的程序pdbs来研究这个堆栈。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54815312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档