当前位置:首页 > 公众号精选 > CPP开发者
[导读]Breakpad是Google用C编写的一个开源、跨平台的崩溃报告系统,它支持Windows、Linux和macOS,并提供了一个上传器,可以在进程崩溃时向一个配置好的URL提交minidump文件。目前,有很多大型项目都在使用Breakpad,例如:GoogleChrome、F...

Breakpad 是 Google 用 C 编写的一个开源、跨平台的崩溃报告系统,它支持 Windows、Linux 和 macOS,并提供了一个上传器,可以在进程崩溃时向一个配置好的 URL 提交 minidump 文件。


目前,有很多大型项目都在使用 Breakpad,例如:Google Chrome、Firefox、Google Picasa、Camino、Google Earth 等。


  • 主页:https://chromium.googlesource.com/breakpad/breakpad/

  • 文档:https://chromium.googlesource.com/breakpad/breakpad/ /HEAD/docs

  • GitHub 地址:https://github.com/google/breakpad



1

工作原理


BreakPad 工作原理:



其中,包含了三个主要组件:


  • Breakpad client:是一个库(即:libbreakpad_client.a),将来要集成到我们的程序中。用于写 minidump 文件,捕获当前线程的状态,以及可执行文件/共享库的标识。

  • Breakpad 符号转储工具:是一个程序(即:dump_syms),用于读取由编译器产生的调试信息,并以 Breakpad 自己的格式生成一个符号文件。

  • Breakpad minidump 处理器:是一个程序(即:minidump_stackwalk),用于读取 minidump 文件和符号文件,并生成一个可读的 C/C 堆栈跟踪。



2

编译安装


  1. 下载 Breakpad 源码;

  2. 由于 Breakpad 依赖于 LSS,所以还需要下载它(地址:https://github.com/adelshokhy112/linux-syscall-support);

  3. 将 LSS 中的 linux_syscall_support.h 文件放至 breakpad/src/third_party/lss/ 目录下。

  4. 编译 Breakpad,步骤非常简单:


$ cd breakpad
$ ./configure 
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭
关闭