概述
今天给大家介绍一个在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: %sn", 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就是最终生成的可读的异常文件用于分析
希望与广大网友互动??
点此进行留言吧!
最后
以上就是野性小霸王为你收集整理的linux qt程序崩溃_QT中使用google breakpad捕获程序崩溃异常的全部内容,希望文章能够帮你解决linux qt程序崩溃_QT中使用google breakpad捕获程序崩溃异常所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复