Qt生成dump文件——release版

开发环境


项目 版本
QCreator Qt Creator 4.7.1 Based on Qt 5.9.7 (MSVC 2015, 32 bit)
windows win10 企业版

 

生成可调试版本的release包


1.通常情况下Qt的release是不能像debug一样进行调试的,所以我们即使拿到release版本的dump文件也无法进行调试。所以第一步先进行一些配置:
在项目的*.pro文件里添加以下内容(具体含义参考:https://blog.csdn.net/itas109/article/details/83652387):

QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO


2.这时我们的release就可以跟debug一样进行断点调试了。接下来在项目名上右键->清除->执行qmake->重新构建,生成release版本的*.exe,并使用windeployqt或其他方式打包。


Get dump file


1.这里修改注册表的方式是通过一个*.exe文件配置的,使用方法在readme.txt里说明了。自动Dump核心转储文件.rar(https://download.csdn.net/download/weixin_40953784/11564664)


部署


1.在现场使用之前,先使用自动Dump核心转储文件包的Auto_Dump_Set.reg对现场电脑进行注册表配置(只需要配置一次,后续除非注册表修改或者重装系统,否则不需要再次使用)。到这里所有准备工作完毕,等待运行release时崩溃产生dump文件即可(一般生成的文件在桌面的CrashDumps文件夹下)。


调试dump文件


1.拿到现场的dump文件后,根据现场的release程序版本,到git上checkout相应程序源码。编译后(生成*.exe文件),在Qt界面选择工具栏 调试->开始调试->载入核心文件:

Qt生成dump文件——release版_第1张图片

2.打开的弹框中,核心文件选择dump文件,执行档选择*.exe文件:

Qt生成dump文件——release版_第2张图片
3.选择完点击OK按钮将开始调试,并定位到问题的对应代码行。


test


1.下面是写的一个简单例子进行测试(对未初始化的指针赋值):

Qt生成dump文件——release版_第3张图片

 

for debug


当然,这一套对于debug版本同样适用。

 

 

你可能感兴趣的:(QT5问题及解决方法)