由于一直都在做android系统相关的工作,获取native crash日志文件比较方便,只要发生native crash我们直接去/data/tombstones下找就行了,然后找到当天系统的symbols文件,再配合addr2line就可以分析了。因为今天被人问了app 没有权限应该怎么获取native crash堆栈,自己也只是大概知道是通过捕获信号量的方式处理的,并没有能说得很清楚,所以花了一晚上网上各种查资料参考别人的代码先搞了一个能用的案例,有空的时候再研究一下详细过程。
一.下载代码:git clone https://gitee.com/water_p/CollectNativeCrash.git
二.编译代码:./configure && make
三.sudo make install
四.idea 导入安卓项目CollectNativeCrashTest
五.运行安卓项目CollectNativeCrashTest
六.点击crash按钮
七.日志如下:
06-30 03:22:41.521 11476-11496/com.example.pzc.collectnativecrashtest I/Adreno: PFP: 0x016ee181, ME: 0x00000000
06-30 03:22:41.526 11476-11496/com.example.pzc.collectnativecrashtest I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 1
06-30 03:22:41.527 11476-11496/com.example.pzc.collectnativecrashtest