Google Breakpad 捕获程序崩溃报告代码简解
来源:互联网 发布:jy男装淘宝店网址 编辑:程序博客网 时间:2024/06/06 01:24
Google Breakpad 捕获程序崩溃报告代码简解
版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
一、简述
在上一篇 Qt 使用 Google Breakpad 捕获程序崩溃报告(dump文件) 中,我们用实例来演示了如何使用Google Breakpad 来捕获程序崩溃报告,主要引用三个lib文件以及一些头文件。实际写的代码很简单,下面简单介绍一下捕捉程序异常对象。
二、代码简解
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
我们使用google_breakpad::ExceptionHandler 创建了一个捕捉异常的对象,我们先看一下构造方法。在exception_handler.h 文件中。
const wstring& dump_path : 第一个参数指定了dmp文件生成的路径,在给定值时请确保路径存在,如果不存在,不会生成dmp文件。
FilterCallback filter : 程序崩溃后的回调函数,在生成dmp文件之前调用,并且FilterCallback 的返回值决定了Breakpad是否会生成dmp文件,返回true则继续处理异常,并写入dump文件,返回false,则停止处理,并且不会写入dump文件。下面为FilterCallback 回调函数的参数形式以及介绍。
MinidumpCallback callback : 程序崩溃后的回调函数,在生成dmp文件之后调用。其返回值表示当前是否已处理异常。返回true,说明当前已经处理完异常,不会再让其他处理者再对此异常进行处理、返回false,说明异常未处理,并且允许其他处理者进行处理。下面为MinidumpCallback 回调函数的参数形式以及介绍。
void* callback_context : 设备上下文,作为回调函数的参数,在回调函数中使用。
int handler_types : 捕捉异常的类型,通过HandlerType 来区分 当前处理程序应该捕获何种类型的异常。
注释中讲到了 HANDLER_NONE 不会捕获任何异常,但是如果手动调用 WriteMinidump 处理程序仍然会被触发,而HANDLER_ALL会捕捉所以的异常。
其实我们看到 ExceptionHandler 类还有其他两个构造函数,如下图,而这两个构造函数与上面相比多了三个参数,而区别是上面那个是进程内生成dmp文件,而下面两个构造函数用于进程外生成dmp文件。
尾
关于代码我们就简单介绍到这里,想要深入了解的小伙伴可以尝试查看Google Breakpad的源码。相关资料已经上传,小伙伴们可以通过下方链接下载查看。
相关文件下载
google_breakpad 源码
Google Breakpad 使用实例
GoogleBreakpad捕获崩溃文件需要的文件,包括lib库文件及头文件
- Google Breakpad 捕获程序崩溃报告代码简解
- Google Breakpad 捕获程序崩溃报告代码简解
- Google Breakpad 在 windows下捕获程序崩溃报告
- Google Breakpad在windows下捕获程序崩溃报告
- Qt 使用 Google Breakpad 捕获程序崩溃报告(dump文件)
- Qt之使用Google Breakpad捕获程序崩溃报告(dump文件)
- Qt 使用 Google Breakpad 捕获程序崩溃报告(dump文件)
- Linux下用breakpad抓取C++程序崩溃报告
- Windows下用breakpad抓取C++程序崩溃报告
- Android应用开发笔记:JNI的崩溃捕获及google-breakpad的使用
- 开源崩溃处理系统:Google Breakpad
- 开源跨平台程序崩溃抓取工具---breakpad
- Breakpad :一个开源的多平台崩溃报告系统
- Breakpad 跨平台崩溃报告系统 入门指南
- Breakpad 跨平台崩溃报告系统 入门指南
- Breakpad 跨平台崩溃报告系统 入门指南
- Android程序崩溃捕获
- 捕获程序崩溃异常
- 二级购物车Demo
- SpringCloud学习笔记-打包和多实例
- Greendao+多线程断点续传
- Linux下区分物理CPU、逻辑CPU和CPU核数
- 1072. 开学寄语(20)
- Google Breakpad 捕获程序崩溃报告代码简解
- Python -mysql 连接池
- [转]基于AXI VDMA的图像采集系统
- 构建Spring Cloud微服务分布式云架构详细步骤
- pug解析传的数据是undefinded
- C# ini文件读写 类
- ubuntu下一些软件的安装
- TabLayout
- Java语言程序设计(基础篇)(原书第10版) 练习题答案 第2章