E文好的直接移步--》http://code.google.com/p/google-breakpad/wiki/ClientDesign
部分按照自己的理解来说,一部分来自翻译软件,一些和模块相关术语还是用英文比如handler和sender。
Breakpad 客户端库
目标
说白了,就是handler负责产生dump,sender负责上传。因为程序crash时,自己的堆栈被破坏,本身是不安全的,不适合再做其他事情。
打个比方:进程1是crash进程,使用handler,进程2是监控进程,进程1crash时,handler会产生一个minidump,通过管道发送给进程2,进程2此时使用sender发送到服务器。
背景
理解 dump files 有助于理解handler。
概述
Breakpad 提供库包括这些平台 Windows on x86 and Mac OS X on both x86 and PowerPC. Linux 版的实现正在审查。其实还有android,我发现了代码现在没有深入研究。是不是支持64位程序待研究。
不同操作系统差异较大所以handler的实现也存在差异,多核操作系统会把每个核的信息产生,在不同平台的handler的使用类似。
说在载入某个库的最前面使用handler。
crash或者程序要求时,都能产生dump,后者利于调试断言或查看运行状态。产生dump时会调用设好的回调函数 ,它可以收集程序的信息,退出时调用crash 报告,或执行其

本文详细介绍了Google Breakpad客户端的设计,包括目标、背景和详细设计。客户端由异常handler生成dump,Sender负责上传。handler根据平台不同(如Windows、Mac OS X、Linux)采用不同实现,确保在程序崩溃时安全地产生dump。Sender库通过HTTP/HTTPS发送dump到服务器。未来规划涉及改进异常处理的稳健性和提供更强大的管理工具。
最低0.47元/天 解锁文章
776

被折叠的 条评论
为什么被折叠?



