Android开发Android开发经验谈程序员

android捕获Native bug日志踩坑之路

2017-09-15  本文已影响542人  xbase

首先android端捕获bug,记录下来,最后上传服务器,java层有系统提供的方法,暂时按下不表,今天我们就来唠唠这个Native层的bug日志。
市面上有三种方式:

  1. coffeecatch(实现简洁,改动容易 存在兼容性问题)
    2.利用logcat获取系统日志(利用安卓系统实现 需要在crash时启动新进程过滤logcat日志,不可靠)
    3.breakpad(权威,跨平台 代码体量较大)

咱们着重来谈一谈breakpad,首先我满怀着憧憬来到了google的官方网站,https://chromium.googlesource.com/breakpad/breakpad,使用git下载,然而。。。。得到的结果是:

breakpad.png

what fxxk?Are you kidding me?我翻着墙呢,后来得知google好像把服务关了。。。。。。

这个时候,我发现了github上也有google上传的源代码(欣喜若狂),https://github.com/google/breakpad,带着满腔的憧憬,我下载了源代码,按照README上的要求,

breakpad.png
打开了depot_tools的网站,如图: depot_tools.png

当时我整个人又不好了,还是google的git服务,这明摆着不能用。。。。。。然后我索性直接从刚才的github上下载了源代码。
接着打开终端,cd到下载的目录,执行./configure指令,报了
A compiler with support for C++11 language features is required.
上网搜索了一下说是gcc的版本太老,需要升级至少是4.7,才支持c++11,此处又是上网一顿搜,终于解决。
然后执行make指令,结果如下:

breakpad.png

这个报错真是日了狗了,竟然缺少文件,我一找对应的文件夹,你猜猜怎么招,没有,没有,没有,压根就没有lss文件夹,google,你逗我么?然后又是翻天覆地一通找,找到了这篇文章:http://blog.csdn.net/gsls200808/article/details/53195274?locationnum=6&fps=1,里面有这么一段:

breakpad.png

总之就是下载一个文件,自己建立这个文件夹,把下载的文件放进去,再执行make指令,终于成功了。

其实编译成功只是为了得到/breakpad-master/src/tools/linux/dump_syms文件夹下面的dump_syms文件和/breakpad-master/src/processor文件夹下面的minidump_dump文件,用它们来解析dmp文件。

后记:不知道google为什么这么坑,但是听说印度工程师在google的比例越来越多,我好像明白了些神马。。。。

最后,最最重要的送上修复之后的breakpad源码(追加了linux_syscall_support.h文件)https://github.com/xfmax/FixedBreakPad,愉快的编译去吧。

介绍一个很好的breakpad开源项目:https://github.com/yinyinnie/breakpad-for-android

上一篇下一篇

猜你喜欢

热点阅读