我有一个发布到 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
调试应用程序时,我没有遇到任何崩溃。问题是如何通过堆栈跟踪获取代码中的崩溃位置或函数行/名称?有任何想法吗?谢谢。
最佳答案
十六进制看起来像一些偏移量,可能是从函数开始的,因为它们很小。你可以下载编译dia2dump实用程序(它也在 VS 示例中的某处),它可以转储有关调试符号的大量信息,包括每个偏移量的行号。所以你会知道堆栈的行号。
请注意,您需要 Qt 的 pdb,而不是您的程序的 pdb,才能调查此堆栈。
关于c++ - Qt软件调试技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54815312/