开发者

Android crash dump

I have the following crash log and complete source code of app.

All I see is call to abort in libc while calling free (which was probably called from libstdc++ delete which is not even shown.) How do I debug my problem? Any ideas?

Can I use the information in code around pc, code around lr or addresses on stack in any way to know more about the issue?

What could be the possible causes??

06-03 13:57:27.837: INFO/DEBUG(1955): Build fingerprint: 'samsung/GT-I5801/GT-I5801/GT-I5801:2.1-update1/ECLAIR/DDJG6:user/release-keys'
06-03 13:57:27.837: INFO/DEBUG(1955): pid: 14328, tid: 14328  >>> com.google <<<
06-03 13:57:27.837: INFO/DEBUG(1955): signal 11 (SIGSEGV), fault addr deadbaad
06-03 13:57:27.837: INFO/DEBUG(1955):  r0 00000000  r1 afe1337d  r2 00000027  r3 00000000
06-03 13:57:27.837: INFO/DEBUG(1955):  r4 00000000  r5 deadbaad  r6 00002ee0  r7 00000000
06-03 13:57:27.837: INFO/DEBUG(1955):  r8 ac148410  r9 00000000  10 00411930  fp 0002ff84
06-03 13:57:27.842: INFO/DEBUG(1955):  ip ffffffff  sp beb315e8  lr afe1433d  pc afe10ca8  cpsr 40000030
06-03 13:57:27.917: INFO/DEBUG(1955):          #00  pc 00010ca8  /system/lib/libc.so (libc_android_abort)
06-03 13:57:27.917: INFO/DEBUG(1955):          #01  pc 00开发者_开发技巧00b3ae  /system/lib/libc.so (free)
06-03 13:57:27.917: INFO/DEBUG(1955): code around pc:
06-03 13:57:27.917: INFO/DEBUG(1955): afe10c98 4e17d003 51a02001 4d164798 24002227 
06-03 13:57:27.917: INFO/DEBUG(1955): afe10ca8 f7fb702a 2106ee52 ef1ef7fc 05592380 
06-03 13:57:27.922: INFO/DEBUG(1955): afe10cb8 6091aa01 1c116054 94012006 eb0cf7fc 
06-03 13:57:27.922: INFO/DEBUG(1955): code around lr:
06-03 13:57:27.922: INFO/DEBUG(1955): afe1432c 220ce008 2b005eab 1c28d003 47889901 
06-03 13:57:27.922: INFO/DEBUG(1955): afe1433c 35544306 d5f43f01 2c006824 b003d1ee 
06-03 13:57:27.922: INFO/DEBUG(1955): afe1434c bdf01c30 00024ae4 000000b4 1c0fb5f0 
06-03 13:57:27.922: INFO/DEBUG(1955): stack:
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315a8  00000015  
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315ac  afe133ad  /system/lib/libc.so (_sflush)
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315b0  afe3902c  /system/lib/libc.so (_data_start)
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315b4  afe38fd8  /system/lib/libc.so (_data_start)
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315b8  00000000  
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315bc  afe1433d  /system/lib/libc.so (_fwalk)
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315c0  00002bbc  
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315c4  afe1337d  /system/lib/libc.so (_sflush)
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315c8  00000008  
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315cc  afe38e08  /system/lib/libc.so (??)
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315d0  00000000  
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315d4  00002ee0  
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315d8  00000000  
06-03 13:57:27.922: INFO/DEBUG(1955):     beb315dc  afe1361b  /system/lib/libc.so (_cleanup)
06-03 13:57:27.927: INFO/DEBUG(1955):     beb315e0  df002777  
06-03 13:57:27.927: INFO/DEBUG(1955):     beb315e4  e3a070ad  
06-03 13:57:27.927: INFO/DEBUG(1955): #00 beb315e8  00002bbc  
06-03 13:57:27.927: INFO/DEBUG(1955):     beb315ec  000000dc  
06-03 13:57:27.927: INFO/DEBUG(1955):     beb315f0  afe3bb7c  
06-03 13:57:27.927: INFO/DEBUG(1955):     beb315f4  afe0f410  /system/lib/libc.so (pthread_mutex_lock)
06-03 13:57:27.927: INFO/DEBUG(1955):     beb315f8  afe38e08  /system/lib/libc.so
06-03 13:57:27.927: INFO/DEBUG(1955):     beb315fc  fffffbdf  
06-03 13:57:27.927: INFO/DEBUG(1955):     beb31600  afe38e08  /system/lib/libc.so
06-03 13:57:27.927: INFO/DEBUG(1955):     beb31604  afe3b9c4  
06-03 13:57:27.927: INFO/DEBUG(1955):     beb31608  0000a000  [heap]
06-03 13:57:27.927: INFO/DEBUG(1955):     beb3160c  afe0b3b3  /system/lib/libc.so (free)
06-03 13:57:27.927: INFO/DEBUG(1955): #01 beb31610  afe38e08  /system/lib/libc.so
06-03 13:57:27.927: INFO/DEBUG(1955):     beb31614  afe0b3b3  /system/lib/libc.so
06-03 13:57:27.927: INFO/DEBUG(1955):     beb31618  00300fe0  [heap]
06-03 13:57:27.927: INFO/DEBUG(1955):     beb3161c  000bdff8  [heap]
06-03 13:57:27.927: INFO/DEBUG(1955):     beb31620  00300fe0  [heap]
06-03 13:57:27.927: INFO/DEBUG(1955):     beb31624  000be010  [heap]
06-03 13:57:27.927: INFO/DEBUG(1955):     beb31628  000b8c50  [heap]
06-03 13:57:27.927: INFO/DEBUG(1955):     beb3162c  ac0a5118  /system/lib/libskia.so (ft_mem_free)
06-03 13:57:27.927: INFO/DEBUG(1955):     beb31630  00002bbc  
06-03 13:57:27.932: INFO/DEBUG(1955):     beb31634  ac0a997c  /system/lib/libskia.so (FT_Done_Face)
06-03 13:57:27.932: INFO/DEBUG(1955):     beb31638  00124f60  [heap]
06-03 13:57:27.932: INFO/DEBUG(1955):     beb3163c  00124f60  [heap]
06-03 13:57:27.932: INFO/DEBUG(1955):     beb31640  ac14762c  /system/lib/libskia.so
06-03 13:57:27.932: INFO/DEBUG(1955):     beb31644  00410cd8  [heap]
06-03 13:57:27.932: INFO/DEBUG(1955):     beb31648  00000bc0  
06-03 13:57:27.932: INFO/DEBUG(1955):     beb3164c  ac04cedc  /system/lib/libskia.so
06-03 13:57:27.932: INFO/DEBUG(1955):     beb31650  00410eb8  [heap]
06-03 13:57:27.932: INFO/DEBUG(1955):     beb31654  00000000  


First you should get the symbols of your libc.so. You can find it under your "out" directory. after that run "nm –gCl libc.so", this will print out all the symbols in your lib, plus the addresses they were in. Compare those addresses with the addresses in your coredump, you will be able to recover the call stack at the crash time.

Below are some of the output I get on my libc.so 00021595 T wcswidth bionic/libc/wchar/wcswidth.c:44 00020909 T wcsxfrm bionic/libc/stdlib/wchar.c:305 000208d5 T wctob bionic/libc/stdlib/wchar.c:311 000208e1 T wctype bionic/libc/stdlib/wchar.c:316 000208d9 T wcwidth bionic/libc/stdlib/wchar.c:333 000215c5 T wmemchr bionic/libc/wchar/wmemchr.c:40 000215dd T wmemcmp bionic/libc/wchar/wmemcmp.c:40 00021605 T wmemcpy bionic/libc/wchar/wmemcpy.c:41 00021611 T wmemmove bionic/libc/wchar/wmemmove.c:41

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜