Qt添加dmp文件生成及pdb文件

 1.Pdb文件生成

下图先通过构建生成Pdb文件,然后运行程序,通过提前准备的崩溃按钮使得程序崩溃,生成“dump文件”的演示。

# #添加dmp文件生成及pdb文件生成

DEFINES += QT_MESSAGELOGCONTEXT
DEFINES += QT_DEPRECATED_WARNINGS


# # 添加DUMP文件
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO,
QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG

# test crash
QMAKE_CFLAGS_RELEASE += -g
QMAKE_CXXFLAGS_RELEASE += -g
QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_LFLAGS_RELEASE = -mthreads -W

# 方便生成DUMP调试
LIBS += -lDbgHelp
QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG

QMAKE_CXXFLAGS += -g
QMAKE_CFLAGS += -g

# 调试信息以及pdb文件
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO
QMAKE_CFLAGS_RELEASE = $$QMAKE_CLAGS_RELEASE_WITH_DEBUGINFO
QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO

LIBS += -lpsapi


#### 介绍
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO:设置发布版本的编译器和链接器选项,以包含调试信息。

QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG:设置发布版本的链接器选项,禁用增量链接并生成调试信息。

QMAKE_CFLAGS_RELEASE += -g和QMAKE_CXXFLAGS_RELEASE += -g:在发布版本的编译器选项中添加调试信息。

QMAKE_CFLAGS_RELEASE -= -O2和QMAKE_CXXFLAGS_RELEASE -= -O2:从发布版本的编译器选项中移除-O2优化选项。

QMAKE_LFLAGS_RELEASE = -mthreads -W:设置发布版本的链接器选项,添加多线程支持和警告。

LIBS += -lDbgHelp和LIBS += -lpsapi:分别添加DbgHelp和psapi库,以便在代码中使用。

# 拷贝库到执行程序目录


# 配置选项
CONFIG += console
CONFIG(debug, debug|release) {
    TARGET = $${TARGET}UD
    CONFIG += debug
} else {
    CONFIG += release
}

        通过配置编辑项目,并使用系统提供的接口设置Dump文件生成函数,最后使用Vs调试代码即可。 

2.Dump文件调试

下图是先将之前生成的Pdb文件移动至dump文件同级目录,然后使用Visual Studio打开dump文件,在界面中点击使用’仅限本机’进行调试调试程序。

3.参数不全Pdb生成的Dump文件调试

下图使用的Pdb文件为是在缺少相关参数的状态下生成的(只有生成Pdb文件的命令符),可以看到打开后点击使用’仅限本机’进行调试调试程序显示的崩溃位置是异常的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值