linux qt程序崩溃_QT中使用google breakpad捕获程序崩溃异常

今天给大家介绍一个在linux下如何捕获程序崩溃异常的方法

一、google breakpad源码的下载和编译

1、https://github.com/google/breakpad.git,源码地址,git clone xxx克隆即可

2、cd breakpad

3、./configure

4、make

5、make完这里会报错breakpad/src/third_party/lss/linux_syscall_support.h没有这个文件,编译时会出现这个错误

6、该文件可在下载,并放到breakpad/src/third_party/lss/中,若实在无法fq下载的同学,可以在以下链接下载linux_syscall_support.h:

7、再次执行3和4,即可成功

二、如何使用

1 #include "client/linux/handler/exception_handler.h"

2

3 // 写完minidump后的回调函数

4 static bool dumpcallback(const google_breakpad::minidumpdescriptor& descriptor, void* context, bool succeeded)

5 {

6 printf("dump path: %s\n", descriptor.path()); return succeeded;

7 }

8 // 触发crash来测试

9 void crash()

10 {

11 volatile int* a = (int*)(null); *a = 1;

12 }

13

14 int main(int argc, char* argv[])

15 {

16 // 初始化

17 exceptionhandler google_breakpad::minidumpdescriptor descriptor("/tmp");

18 // minidump文件写入到的目录

19 google_breakpad::exceptionhandler eh(descriptor, null, dumpcallback, null, true, -1); crash();

20 return 0;

21 }

1、这样就会在/tmp下生成.dmp文件

2、为了生成可读的stack trace, breakpad需要你将binaries里的调试符号(debugging symbols)转换成基于文本格式的symbol files。

3、接着运行 dump_syms 命令来生成 symbol files,如下:$ google-breakpad/src/tools/linux/dump_syms/dump_syms ./test > test.sym

4、breakpad包含一个叫做 minidump_stackwalk 的工具来将 minidump 文件,外加symbol files来生成一个人可读的stack trace

5、$ google-breakpad/src/processor/minidump_stackwalk minidump.dmp test.sym > test.txt

6、test.txt就是最终生成的可读的异常文件用于分析

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值