首先确认两个目录:
1. libs/armeabi-v7a/libdecoder.so
2.obj/local/armeabi-v7a/libdecoder.so
我们在应用程序中使用的是第一个目录的so文件。但我们遇到崩溃时需要的是第二个目录的so文件来定位.
看看下面的崩溃部分,看上去是不是很晕?
来! 按下面的方式定位就能找出问题所在:
arm-linux-androideabi-addr2line -C -f -e libdecoder.so 00319bf2
arm-linux-androideabi-addr2line -C -f -e libdecoder.so 0031986d
arm-linux-androideabi-addr2line -C -f -e libdecoder.so 00324b09
运行上面的命令会出现如下信息:
RunDecodeServer
/Users/mine/Work/develop/TestDecoder/decodeserver.c:433
告诉你源码的位置了,赶快去分析吧!
I/DEBUG ( 1462): r0 0074006f r1 6307b978 r2 0003a003 r3 00000001
I/DEBUG ( 1462): r4 00a41aa4 r5 6307b9f8 r6 6307b978 r7 6307b958
I/DEBUG ( 1462): r8 00000001 r9 6307ba7a sl 00000080 fp 00000000
I/DEBUG ( 1462): ip 6307b960 sp 6307b7b8 lr 658a3871 pc 658a3bf2 cpsr 000f0030
I/DEBUG ( 1462): d0 0000000000000000 d1 0000000000000000
I/DEBUG ( 1462): d2 0000000000000000 d3 0000000000000000
I/DEBUG ( 1462): d4 4407000044803000 d5 44070000c4070000
I/DEBUG ( 1462): d6 41a0000000000438 d7 4040000000000003
I/DEBUG ( 1462): d8 408f400000000000 d9 412378ea00000000
I/DEBUG ( 1462): d10 41d7c59eb3c00000 d11 0000000000000000
I/DEBUG ( 1462): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 1462): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 1462): d16 000000000000001c d17 0000000000000000
I/DEBUG ( 1462): d18 3ff4000000000000 d19 3ee3e7f972c800a2
I/DEBUG ( 1462): d20 0000000000000000 d21 3f5618e60e4920a7
I/DEBUG ( 1462): d22 3ef99342e0ee5069 d23 bfc54b4e1580a7ae
I/DEBUG ( 1462): d24 bf29fda05b9ddc68 d25 3fc86133156b82f2
I/DEBUG ( 1462): d26 3ff0000000000000 d27 bf56bcc61e9572d1
I/DEBUG ( 1462): d28 3ff0000000000000 d29 bfc88790a22168c0
I/DEBUG ( 1462): d30 0000000000000000 d31 3ff6110940000000
I/DEBUG ( 1462): scr 80000013
I/DEBUG ( 1462):
I/DEBUG ( 1462): backtrace:
I/DEBUG ( 1462): #00 pc 00319bf2 /data/data/com.play.play.aw/files/play/common/libdecoder.so
I/DEBUG ( 1462): #01 pc 0031986d /data/data/com.play.play.aw/files/play/common/libdecoder.so
I/DEBUG ( 1462): #02 pc 00324b09 /data/data/com.play.play.aw/files/play/common/libdecoder.so
I/DEBUG ( 1462): #03 pc 0000d220 /system/lib/libc.so (__thread_entry+72)
I/DEBUG ( 1462): #04 pc 0000d3b8 /system/lib/libc.so (pthread_create+240)
I/DEBUG ( 1462):
I/DEBUG ( 1462): stack:
I/DEBUG ( 1462): 6307b778 6307b7c8 [stack:6313]
I/DEBUG ( 1462): 6307b77c 65ce6df8
I/DEBUG ( 1462): 6307b780 65ce6df8
I/DEBUG ( 1462): 6307b784 00000002
I/DEBUG ( 1462): 6307b788 00000001
I/DEBUG ( 1462): 6307b78c 658ae8e7 /data/data/com.play.play.aw/files/play/common/libdecoder.so
I/DEBUG ( 1462): 6307b790 00000002
I/DEBUG ( 1462): 6307b794 a07fb1b7
I/DEBUG ( 1462): 6307b798 00000083
I/DEBUG ( 1462): 6307b79c 00991090 [heap]
I/DEBUG ( 1462): 6307b7a0 6307b7c8 [stack:6313]
I/DEBUG ( 1462): 6307b7a4 6307b958 [stack:6313]
I/DEBUG ( 1462): 6307b7a8 00000001
I/DEBUG ( 1462): 6307b7ac 6307ba7a [stack:6313]
I/DEBUG ( 1462): 6307b7b0 00000080
I/DEBUG ( 1462): 6307b7b4 658a3ca5 /data/data/com.play.play.aw/files/play/common/libdecoder.so
I/DEBUG ( 1462): #00 6307b7b8 00000000
I/DEBUG ( 1462): 6307b7bc 00000000
I/DEBUG ( 1462): 6307b7c0 00000000
I/DEBUG ( 1462): 6307b7c4 00000010
I/DEBUG ( 1462): 6307b7c8 658a3d65 /data/data/com.play.play.aw/files/play/common/libdecoder.so
I/DEBUG ( 1462): 6307b7cc 00991090 [heap]
I/DEBUG ( 1462): 6307b7d0 658a3ec9 /data/data/com.play.play.aw/files/play/common/libdecoder.so
I/DEBUG ( 1462): 6307b7d4 00000000
I/DEBUG ( 1462): 6307b7d8 00000000
I/DEBUG ( 1462): 6307b7dc 00000001
I/DEBUG ( 1462): 6307b7e0 00000000
I/DEBUG ( 1462): 6307b7e4 00000000
I/DEBUG ( 1462): 6307b7e8 00000000
I/DEBUG ( 1462): 6307b7ec 00000000
I/DEBUG ( 1462): 6307b7f0 00000000
I/DEBUG ( 1462): 6307b7f4 00000000
I/DEBUG ( 1462): ........ ........
I/DEBUG ( 1462): #01 6307b960 00000000
I/DEBUG ( 1462): 6307b964 00000000
I/DEBUG ( 1462): 6307b968 00000000
I/DEBUG ( 1462): 6307b96c 00000000
I/DEBUG ( 1462): 6307b970 6307bcac [stack:6313]
I/DEBUG ( 1462): 6307b974 00000000
I/DEBUG ( 1462): 6307b978 00000000
I/DEBUG ( 1462): 6307b97c 00000000
I/DEBUG ( 1462): 6307b980 00000000
I/DEBUG ( 1462): 6307b984 08000000
I/DEBUG ( 1462): 6307b988 00000000
I/DEBUG ( 1462): 6307b98c 00000000
I/DEBUG ( 1462): 6307b990 00000000
I/DEBUG ( 1462): 6307b994 00000000
I/DEBUG ( 1462): 6307b998 00000000
I/DEBUG ( 1462): 6307b99c 00000000
I/DEBUG ( 1462): ........ ........
I/DEBUG ( 1462): #02 6307bd50 00000000
I/DEBUG ( 1462): 6307bd54 65ce6e1c
I/DEBUG ( 1462): 6307bd58 65ce6e00
I/DEBUG ( 1462): 6307bd5c 65ce6e94
I/DEBUG ( 1462): 6307bd60 65ce6dfc
I/DEBUG ( 1462): 6307bd64 5f167ad4 [stack:2607]
I/DEBUG ( 1462): 6307bd68 23c34600
I/DEBUG ( 1462): 6307bd6c 5f167acf [stack:2607]
I/DEBUG ( 1462): 6307bd70 0009bc75
I/DEBUG ( 1462): 6307bd74 a07fb1b7
I/DEBUG ( 1462): 6307bd78 00000000
I/DEBUG ( 1462): 6307bd7c 00000000
I/DEBUG ( 1462): 6307bd80 00000000
I/DEBUG ( 1462): 6307bd84 00000000
I/DEBUG ( 1462): 6307bd88 00000000
I/DEBUG ( 1462): 6307bd8c 00000000
I/DEBUG ( 1462): ........ ........
I/DEBUG ( 1462):
I/DEBUG ( 1462): memory near r0:
I/DEBUG ( 1462): 0074004c 0000001b 00020182 13041200 40060001
I/DEBUG ( 1462): 0074005c 40040001 00000018 0000001b 00050184
I/DEBUG ( 1462): 0074006c 21080108 09f90afb 00000009 00000000
I/DEBUG ( 1462): 0074007c 00000013 00040184 11040005 00000213
I/DEBUG ( 1462): 0074008c 00000013 00040184 11040006 0005fa0b
I/DEBUG ( 1462): 0074009c 00000013 00040184 11040005 00000213
I/DEBUG ( 1462): 007400ac 00000013 00040184 11040005 00000213
I/DEBUG ( 1462): 007400bc 00000013 00040184 11040005 00000213
I/DEBUG ( 1462): 007400cc 00000013 00040184 11040005 00000213
I/DEBUG ( 1462): 007400dc 00000013 00040184 11040005 00000213
I/DEBUG ( 1462): 007400ec 00000013 00040184 11040005 00000213
I/DEBUG ( 1462): 007400fc 00000013 00040184 0d040005 0000090a
I/DEBUG ( 1462): 0074010c 00000013 00040184 0c040005 0000090a
I/DEBUG ( 1462): 0074011c 0000001b 00070184 21080108 0b090809
I/DEBUG ( 1462): 0074012c 00000001 00000000 00000013 00040184
I/DEBUG ( 1462): 0074013c 01020005 0000090a 00000013 00040184