分析android异常时的堆栈信息

android framework异常时会打印如下log,分析往往无从下手:


24422 08-17 15:09:02.212 I/DEBUG   (   52): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

24423 08-17 15:09:02.212 I/DEBUG   (   52): Build fingerprint: 'marvell/roewe_v2/roewe_v2/:1.5/CUPCAKE/10000:user/ota-rel-keys,test-keys'
24424 08-17 15:09:02.212 I/DEBUG   (   52): pid: 84, tid: 90  >>> system_server <<<
24425 08-17 15:09:02.212 I/DEBUG   (   52): signal 11 (SIGSEGV), fault addr 00000000
24426 08-17 15:09:02.212 I/DEBUG   (   52):  r0 51100404  r1 00000002  r2 0000031f  r3 00000841
24427 08-17 15:09:02.212 I/DEBUG   (   52):  r4 00000800  r5 000001b8  r6 00000000  r7 000001b8
24428 08-17 15:09:02.212 I/DEBUG   (   52):  r8 00100000  r9 a9d28545  10 47c7b000  fp 0018f758
24429 08-17 15:09:02.212 I/DEBUG   (   52):  ip 00000840  sp 47d7ac44  lr acf0b1f8  pc acf0b1c4  cpsr a0000010
24430 08-17 15:09:02.376 I/DEBUG   (   52):          #00  pc 0000b1c4  /system/lib/libpixelflinger.so
24431 08-17 15:09:02.376 I/DEBUG   (   52):          #01  pc 0000b1f4  /system/lib/libpixelflinger.so
24432 08-17 15:09:02.384 I/DEBUG   (   52):          #02  pc 000098ec  /system/lib/libpixelflinger.so
24433 08-17 15:09:02.384 I/DEBUG   (   52):          #03  pc 00014ed0  /system/lib/libagl.so
24434 08-17 15:09:02.384 I/DEBUG   (   52):          #04  pc 00014f24  /system/lib/libagl.so
24435 08-17 15:09:02.384 I/DEBUG   (   52):          #05  pc 00026e6a  /system/lib/libsurfaceflinger.so
24436 08-17 15:09:02.392 I/DEBUG   (   52):          #06  pc 000255e8  /system/lib/libsurfaceflinger.so
24437 08-17 15:09:02.392 I/DEBUG   (   52):          #07  pc 0002657c  /system/lib/libsurfaceflinger.so
24438 08-17 15:09:02.399 I/DEBUG   (   52):          #08  pc 0002d2ee  /system/lib/libsurfaceflinger.so
24439 08-17 15:09:02.399 I/DEBUG   (   52):          #09  pc 0002d4f2  /system/lib/libsurfaceflinger.so
24440 08-17 15:09:02.399 I/DEBUG   (   52):          #10  pc 0002e264  /system/lib/libsurfaceflinger.so
24441 08-17 15:09:02.399 I/DEBUG   (   52):          #11  pc 000280b2  /system/lib/libutils.so
24442 08-17 15:09:02.399 I/DEBUG   (   52):          #12  pc 000285dc  /system/lib/libutils.so
24443 08-17 15:09:02.407 I/DEBUG   (   52):          #13  pc 00011394  /system/lib/libc.so
24444 08-17 15:09:02.407 I/DEBUG   (   52):          #14  pc 00010e78  /system/lib/libc.so
24445 08-17 15:09:02.407 I/DEBUG   (   52): stack:
24446 08-17 15:09:02.407 I/DEBUG   (   52):     47d7ac04  03515104
24447 08-17 15:09:02.407 I/DEBUG   (   52):     47d7ac08  47d7ace0
24448 08-17 15:09:02.407 I/DEBUG   (   52):     47d7ac0c  00190080  [heap]
24449 08-17 15:09:02.415 I/DEBUG   (   52):     47d7ac10  acf16558  /system/lib/libpixelflinger.so
24450 08-17 15:09:02.415 I/DEBUG   (   52):     47d7ac14  47d7ac20

24451 08-17 15:09:02.415 I/DEBUG   (   52):     47d7ac18  03515104


因此编写了一个python脚本分析堆栈信息:

#!/usr/bin/env python
#By Hu Yugui
import string
import os

fd=open("dump_stack.log")
LIBS="/work2/DDD/out/target/product/FFF/symbols" #android image
GCC ="arm-none-linux-gnueabi-addr2line -C -f -e"                  #addr2line
i = 0
for line in fd:
	if line.strip():
		i=i+1
		line=line.rstrip()
		p=line.split()
		cmd = GCC + " " + LIBS + p[9] + " " + p[8]
		result=os.popen(cmd)
		print "<%d> %s" % (i, result.read().strip())
输出如下:



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值