android 分析堆栈信息,分析android异常时的堆栈信息
android framework異常時(shí)會(huì)打印如下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
因此編寫了一個(gè)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 " %s" % (i, result.read().strip())輸出如下:
總結(jié)
以上是生活随笔為你收集整理的android 分析堆栈信息,分析android异常时的堆栈信息的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Antlr4入门(六)实战之JSON
- 下一篇: 播音提示器软件设计与实现