我有发布到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在调试应用程序时,我不会遇到任何崩溃。问题是如何通过堆栈跟踪获得代码中的崩溃位置或函数行/名称?有什么想法吗?谢谢。
发布于 2019-02-22 10:22:10
我认为问题在于程序图标的创建/销毁,而DestroyIcon破坏了正在使用的句柄。
我添加了一些改进,现在它只创建了HICON和QPixmap的一个对象,然后追加到循环中的结构中,在循环退出后调用DestroyIcon函数来破坏HICON句柄。
此外,我还发现了这篇关于从Microsoft:如何为转换后的Windows Store UWP应用程序获取崩溃转储(或任何可用的崩溃报告)?中查找bug的文章
此外,我还将尝试StackWalker应用程序来检查其他问题。谢谢。
发布于 2019-02-23 15:17:13
十六进制看起来像一些偏移,也许是从函数开始,因为它们很小。您可以下载并编译dia2dump实用程序(在VS示例中的某个位置),它可以转储大量有关调试符号的信息,包括每个偏移量的行号。这样你就知道堆栈的行号了。
注意,您需要Qt的pdbs,而不是您的程序pdbs来研究这个堆栈。
https://stackoverflow.com/questions/54815312
复制相似问题