使用breakpad生成和分析crash文件

本文介绍Mac上使用Breakpad生成分析崩溃文件

Breakpad简介

Breakpad是谷歌提供的一个跨平台崩溃转储和分析工具集。主要由以下组件构成:

  1. 客户端,Breakpad以库的形式包含在应用程序中,可以监视当前进程或其他进程的运行状态,在进程崩溃或主动请求时写入minidump中。
  2. 符号文件生成器,是Breakpad提供的一个程序(tools/dump_syms),读取程序文件中的调试信息,生成符号文件*.sym。
  3. 分析处理器,也是Breakpad提供的一个程序(tools/minidump_stackwalk),输入dump和对应符号文件,输出进程崩溃时的堆栈信息。

源码下载地址:https://github.com/google/breakpad
感兴趣的可以下载自己编译,这里不再赘述。

生成符号集

调用方法:dump_syms 应用(库)文件 > 符号文件
符号文件后缀名需用.sym
sym文件第一行说明了需要的符合文件目录名,必须按照这个目录存放符号文件,否则下一步分析失败。

dump_syms ../../test/test.app >../../test/test.sym
head -n1 test.sym
MODULE mac x86_64 AA5EBCBRDBJJ3AF5AATY6U1990A1OPCLO Test2
mkdir -p ./symbols/Test2/AA5EBCBRDBJJ3AF5AATY6U1990A1OPCLO 
mv test.sym ./symbols/Test2/AA5EBCBRDBJJ3AF5AATY6U1990A1OPCLO 

符号文件是纯文本,我们可以直接打开查看,其中每一行一条记录,字段以空格分割。第一个字段表示类型:

MODULE:模块记录
FILE:文件记录
FUNC:函数记录
空:行号记录
详见 https://github.com/google/breakpad/blob/master/docs/symbol_files.md

分析崩溃文件

调用方法:minidump_stackwalk 崩溃文件 符号文件目录
默认输出在控制台,可以添加“ >输出文件”到指定文件中,方便查看

minidump_stackwalk ./test.dmp ./symbols >./test.txt

由于dump存在众多未解析字节,很多情况下无法定位到函数名和具体行号。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值