首页 > 编程技术 > Android > native crash定位方法
2020
02-25

native crash定位方法

对于Android中so库产生的native crash,没有java层那般明显和详细的crash堆栈,捕获到的crash信息需要经过处理才能方便定位,比如获取到以下这种native crash。

native crash定位方法 - 第1张  | FreemanApp

其中pc 00006d16就是指向了crash的代码,不过需要工具来协助,在命令行执行

arm-linux-androideabi-addr2line -f -e libmonitortest.so 00006d16

-f表示显示函数名, -e表示execution,后面是包含符号库的文件 以及报错的内存地址(即Crash log里pc后的字段)

native crash定位方法 - 第2张  | FreemanApp

执行完后会显示PC值对应的是哪个方法,是哪行代码

如果so库是裁剪过符号信息,则会显示??,无法定位到对应的代码。所以要保留好带符号信息的so库,要判断so库是否带符号信息,可以使用以下命令

arm-linux-androideabi-nm libmonitortest.so

如果有符号信息,则会打印出来;如果没有,则为空

最后编辑:
作者:freeman
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据