qBreakPad使用(windows)

一、介绍
Google breakpad是一个跨平台的崩溃转储和分析框架和工具集合。而且BreakPad本来就是为了解决C、C++异常捕获而开发的。BreakPad支持跨平台,很容易在Qt项目中使用,使跨平台的应用实现跨平台异常捕获。这里介绍一下qBreakPad的使用。

二、编译

  • 源码获取
    链接:qBreakPadBreakPad
  • 步骤
    1、下载qBreakPad源码进行解压,目录如下:
    在这里插入图片描述

2、下载BreakPad源码放入qBreakPad源码目录third_party\breakpad下,如下:
在这里插入图片描述
3、使用QT打开handler文件夹下qt工程
在这里插入图片描述
4、运行工程
在这里插入图片描述
可见编译成功了,我们去对应文件夹看到库也成功的生成了,这样我们就能使用qBreakPad了。
在这里插入图片描述
三、使用

这里我们创建一个名为qBreakPad的qt工程去进行测试使用,工程结构如下
在这里插入图片描述
其中qbreakpadlib文件夹包含的是头文件和lib库,其结构如下
在这里插入图片描述
lib目录下分别编译了debug和release版本库放入,上述操作完毕后需要在pro里面添加对应库和头文件路径,配置如下
在这里插入图片描述
修改pro后记得重新qmake一下,配置才会生效。这样我们就可以编写代码进行使用了,

#include "mainwindow.h"
#include <QApplication>
#include "QBreakpadHandler.h"
#include <QLabel>

void crash()
{
    QLabel *label = nullptr;
    label->setText(QString("hello"));
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
	//设置生成的dump文件位置
    QBreakpadInstance.setDumpPath("crash");
    crash();
    return a.exec();
}

运行demo,程序会异常结束,我们去对应生成exe的目录看看生成的文件,里面生成了crash文件夹,崩溃文件就放在里面
在这里插入图片描述
我们使用winDbg查看这个dump信息,
在这里插入图片描述
可以看到提示的非常明显,是在19行中QLabel调用setText导致崩溃的,这样我们就很快能够知道为题所在了。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

复杂的世界311

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值