android捕獲Native bug日志踩坑之路

首先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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,846評論 25 708
  • 挺拔俊美的懸崖 遍布世界 而兩最都在中國 一處最驚險 在繁簡字的交匯處 一處最壯觀 在古文和白話的斷層線
    長馬閱讀 249評論 3 6
  • 皎皎明月前, 悠悠一抹倩。 潺潺流水音, 聲聲擾人心。 郁郁心中事, 件件皆感煩。 冉冉升日時, 通通過眼煙。 ...
    季悠然奧閱讀 221評論 0 1
  • 1、最近網聊了一個妹紙,我們各種膩歪。妹紙:你發張你照片吧!我:你看了就不喜歡我了!妹紙:我不在乎,我只在意你對我...
    尹星小妞閱讀 460評論 0 0
  • 來到東城的這片出租屋區時,太陽已經西斜了。 我姐夫一家就臨時租住在這片低矮的出租屋區的一間10余平方米的簡易平房內...
    li成林閱讀 601評論 2 4