Ubuntu搭建breakpad环境及查看dmp文件

直接上步骤。

1.获取breakpad代码

采用前两个方式获取源代码的,记得要在方式3中获取linux_syscall_support.h文件,建议直接用方式3。

#方式1
git clone https://chromium.googlesource.com/breakpad/breakpad
#方式2

要是git clone超时,但是可以打开https://chromium.googlesource.com/breakpad/breakpad网页,则可以选择master的tgz格式下载。
这里写图片描述
这里写图片描述

#方式3

要是前两者都有问题的话,可以用以下分享(目前自己使用的版本,主要是linux_syscall_support.h在CSDN要积分)

链接:https://pan.baidu.com/s/1NFdADuOFwonv5aE3zoUKwA
密码:lr9k

此方式,包含了前两者都缺少的一个头文件linux_syscall_support.h,该头文件要放在\src\third_party\lss目录下,其中lss目录要自己建(这里是windows下的显示格式,偷个懒)。
这里写图片描述

2.编译

进入源代码根目录,我这里,采用的是方式2,然后解压后的目录叫breakpad-master

cd breakpad-master
./configure && make

如果编译时报linux_syscall_support.h未找到,则按方式3下载该文件,然后放到指定的目录下(即\src\third_party\lss目录下),然后重新编译

编译完以后会在生成两个可执行文件,分别是src/processor/minidump_stackwalk和src/tools/linux/dump_syms/dump_syms

3.添加环境变量

打开.bashrc文件

vim ~/.bashrc

.bashrc文件的末尾添加刚刚生成的文件的路径

export BREAKPAD_HOME=/home/lgf/softwares/breakpad/breakpad-master # 这里需要替换自己的breakpad路径
export PATH=$PATH:${BREAKPAD_HOME}/src/processor:${BREAKPAD_HOME}/src/tools/linux/dump_syms # 此处需要注意的是,路径中不要指定具体执行文件名,否则会报找不到相关命令,例如${BREAKPAD_HOME}/src/tools/linux/dump_syms/dump_syms,这样执行dump_syms命令会找不到

更新环境变量

source ~/.bashrc

4.分析Breakpad捕获到的dmp文件

前提条件,找到dmp文件对应的so库文件,这里假设这两个文件分别是test.so,test.dmp。

4.1 获取symbol文件

dump_syms test.so > test.so.sym

4.2 得到可读的堆栈跟踪文件

minidump_stackwalk test.dmp test.so.sym > crash.log

猜你喜欢

转载自blog.csdn.net/fengyulinde/article/details/81707346