Android Native Crash 排查思路

最近在Android应用开发中遇到了一个Native Crash,仅仅从LogCat打出的日志没能找到崩溃原因。
如何定位错误原因成了目前最大的问题。

有个比较好的方法,利用bugreport命令:
adb bugreport ~\
app crash 的时候,系统会保存一个tombstone文件到/data/tombstones目录,该命令会导出最近的crash相关信息。
通过bugreport导出得到一个zip包,解压后如下:


即可从tombstones文件夹中查找需要的日志。

#01 pc 00000000000e7b48 /system/lib64/libart.so (_ZN3art17ConditionVariable16WaitHoldingLocksEPNS_6ThreadE+160)
#02 pc 000000000037a438 /system/lib64/libart.so (_ZN3art7Monitor4WaitEPNS_6ThreadElibNS_11ThreadStateE+660)
通过这两行日志基本可以确定是造成了死锁导致的崩溃。

接下来就是根据这些日志修复问题啦。

posted @ 2021-11-27 17:16  Devin.Zhou  阅读(708)  评论(0编辑  收藏  举报