开发日志整理3【Android tombstone分析 升级篇】

  记得我在2011年8月的一篇文章Android Tombstone/Crash的log分析和定位介绍了如何分析tombstone。虽然详细介绍了具体的分析方法,但是想要找到具体的出错地点还是比较困难的。

  前段时间在做海思的项目,自己又遇到了和media有关的tombstone的问题,此时非常的纠结。。。百般挫折,终于从芯片的工程师那得知了一个方法可以确认具体的位置。

  废话不多说,方法如下:

  不过注意的是,这个方法一定要有源码和编译源码的环境,并且你已经编译过了,而且机器用的是你编译的系统。。。如果没有这个环境和条件,那么后面就不需要看了。白搭。。。看了也白看。。。如果你有上面提到的环境,那么恭喜你,请继续往下看。。。

  首先找到tombstone的日志

  其他不用看,只看如下的内容:

  backtrace:

  #00 pc 00003558 /system/lib/libcutils.so (android_atomic_inc+8)

  #01 pc 0000d0d1 /system/lib/libutils.so (android::RefBase::incStrong(void const*) const+6)

  #02 pc 00018c0f  /system/lib/libmedia_jni.so

  #03 pc 00019b59 /system/lib/libmedia_jni.so

  ....

这个堆栈是从下往上看,最上面是最后一步调用出错的地方。调用顺序是从下往上。

紧接着,去你的系统代码目录找:out/target/product/xxxx/obj/lib目录,cd到这个目录下。

xxx表示你编译的产品名

假设现在我们想要找到01出错的位置

则可以addr2line 00018c0f -e libmedia_jni.so(也可以使用prebuilts里面的arm-eabi-addr2line)

由于我是海思平台我使用海思自带的arm-hisiv200-linux-addr2line命令,显示的结果如下:

getVideoSurfaceTexture(android_media_MediaPlayer.cpp 245)

这个时候可以很明显的显示出错的具体文件,以及文件出错的位置。

是不是很简单,希望对大家有所帮助^_^




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值