1.下载源码
1)下载breakpad: breakpad源码可在https://github.com/google/breakpad.git
2)linux_syscall_support.h: https://download.csdn.net/download/bingzhongdehuoyan/9716614 (需要CSDN下载)
从https://chromium.googlesource.com/linux-syscall-support/下载该文件(这个需要FQ)
将linux_syscall_support.h放到breakpad/src/third_party/lss/中
要新建lss目录复制文件到该目录。
2. 编译
控制台cd breakpad 进入目录
运行指令 ./configure
运行指令 make -j4
运行指令 sudo make install
3. 配置Qt环境
1)在.pro工程文件里面添加配置,链接到库 记得要定义:DEFINES += USE_BREAKPAD
2)为了生成可读的stack trace, breakpad需要你将binaries里的调试符号(debugging symbols)转换成基于文本格式的symbol files。首先确保你在编译代码的时候加上 -g 参数来生成带调试符号。
即在Pro文件里面添加:QMAKE_CXXFLAGS += -g
4. 测试breakpad,生成dmp文件
运行后崩溃报错:
生成了dmp文件:
5. 将dmp文件转换成能看的懂的txt文件
1)获取symbol文件
命令:dump_syms ~/wjg/build-DC520-debug/DC520 > DC520.sym
DC520是我的可执行文件 如图:
2)生成Stack Trace
(1)为了可以使用 ``minidump_stackwalk` 工具来生成stack trace,你需要将文件放置在一定的目录结构,symbol file的第一行说明了需要放置的目录结构
(2)查看该文件头信息:# head -n1 DC520.sym
(3)并根据该信息建立文件夹,并放入符号文件
(4) 解析dmp文件
Sudo minidump_stackwalk ~/wjg/build-DC520-debug/crash/9e907142-d52c-47dd-6865798a-be243b8c.dmp ./symbols > DC520.txt
6. 查看转换成txt文档的日志文件
至此成功用breakpad抓取崩溃报告并解析完成
参考链接:
https://blog.csdn.net/u011720560/article/details/105639279
https://blog.csdn.net/BingZhongDeHuoYan/article/details/53743659