本文主要目的,记录qbreakpad使用方法,避免遗忘
环境配置
QTC版本:QT5.14.2
编译器:msvc 2017 64bit
其他版本也可,需自行测试验证
qBreadpad源码下载
打包整理gitee,链接 https://gitee.com/ylei123/qbreakpad-pub,下载源码可直接编译(上述环境下已验证)。package文件夹下为源码压缩包,可自行解压(也可源码直接编译,跳过此步骤)
可以将图中两压缩文件解压后放置到qBreakpad解压目录下的“third_party”目录下,完成后的目录如下图所示
源码编译
目录下找到工程文件“qBreakpad.pro”,打开工程后,工程目录下分3个子工程目录
- demo工程 演示程序,program演示生成dump文件,reporter为上报dump文件功能
- handler静态库工程 封装了Breadkpad,编译可获得qBreakpad.lib静态库文件
- tests为测试工程
源码编译后可在handler下目录下找到生成的qBreakpad.lib静态库文件
使用库文件
打包qBreakpad,目录可按下图构建
其中 lib目录下存放对应静态库文件
库使用
将上述qBreakpad打包到要使用的工程目录下,按下图步骤进行静态库引用
pro工程文件下自动添加
工程源码main函数下应用头文件
#include “qBreakpad/include/QBreakpadHandler.h”
设置路径后调用
注:release编译构建,需要在构建目录下生成与执行程序同名的.pdb,执行程序文件和pdb文件在发包后需要进行保存,便于之后的异常定位
使用windbg对dump文件进行异常定位
没有改程序,可在文章资源下载,可以使用网盘下载
链接: https://pan.baidu.com/s/1AWIbSWfTmThyRSxsTVRLKA 提取码: CSDN
1.导入.exe 和.pdb文件目录
这里可以将程序在编译环境下打包,让dll、exe、pdb在同一文件目录下,不然需要导入多个目录文件(用“,”间隔)比较麻烦,建议使用打包目录
2.导入源码目录
3.导入dump文件
4.所有文件导入成功后,在命令栏敲下"!analyze -v",等待分析完成,查看异常位置