c++ - Qt软件调试技巧

标签 c++ windows qt

我有一个发布到 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/

相关文章:

c++ - 链接 : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use/NODEFAULTLIB:library

c - 我正在尝试使用注册表列出 C 中的启动程序

windows - 发送邮件消息 : Cannot validate argument on parameter 'Subject'

windows - 我怎样才能使窗口 sdk 的 setenv.cmd 全局工作,而不是单个 cmd 窗口?

c++ - 如何将包含括号的字符串列表展平为单个列表?

c++ - Qt Label::setPixmap 不工作

c++ - 将库添加到调试配置 - QtCreator、VC 编译器

c++ - 构建一个 pair(string, *node) 插入到一个 unordered_map

c++ - * 对那个类有什么作用?

c# - 如何在 C# 中检查给定的双数是否正常,即既不是零、次正规、无限,也不是 NaN