eskimo9
eskimo9

Reputation: 753

debugging logcat stack trace - no routine information

I'm brand new to debugging logcat, so bear with me.

My Android app SIGSEGVs on a shared library. Logcat tells me this:

04-24 05:36:53.781: D/dalvikvm(1945): threadid=1: still suspended after undo (sc=1 dc=1)
04-24 05:37:00.066: A/libc(1945): Fatal signal 11 (SIGSEGV) at 0x00001a85 (code=1)
04-24 05:37:00.476: I/DEBUG(58): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-24 05:37:00.476: I/DEBUG(58): Build fingerprint: 'Android/full_mini210/mini210:4.0.3/IML74K/eng.root.20120209.191511:eng/test-keys'
04-24 05:37:00.476: I/DEBUG(58): pid: 1945, tid: 1945  >>> tiny.test2 <<<
04-24 05:37:00.476: I/DEBUG(58): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00001a85
04-24 05:37:00.476: I/DEBUG(58):  r0 f6502688  r1 00000000  r2 f6502688  r3 00001a85
04-24 05:37:00.476: I/DEBUG(58):  r4 00003000  r5 00000000  r6 00000039  r7 00000000
04-24 05:37:00.476: I/DEBUG(58):  r8 bec795d8  r9 4b965be8  10 503cd2c1  fp bec795ec
04-24 05:37:00.476: I/DEBUG(58):  ip fffffe68  sp bec79540  lr 40807077  pc 50408a56  cpsr 20000030
04-24 05:37:00.476: I/DEBUG(58):  d0  474957535f5f746e  d1  4e4a6874656e615f
04-24 05:37:00.476: I/DEBUG(58):  d2  4b9671984b967143  d3  4b9672084b967161
04-24 05:37:00.476: I/DEBUG(58):  d4  4b6fa8b92a41c200  d5  0012da7a0012da7a
04-24 05:37:00.476: I/DEBUG(58):  d6  001933a8033f33c4  d7  0000008d001933a8
04-24 05:37:00.476: I/DEBUG(58):  d8  0000000000000000  d9  0000000000000000
04-24 05:37:00.476: I/DEBUG(58):  d10 0000000000000000  d11 0000000000000000
04-24 05:37:00.476: I/DEBUG(58):  d12 0000000000000000  d13 0000000000000000
04-24 05:37:00.476: I/DEBUG(58):  d14 0000000000000000  d15 0000000000000000
04-24 05:37:00.476: I/DEBUG(58):  d16 00000000412adc78  d17 0000000000000000
04-24 05:37:00.476: I/DEBUG(58):  d18 4146605000000000  d19 bfb1be5a93a83e1d
04-24 05:37:00.476: I/DEBUG(58):  d20 3f1155e54e7e8408  d21 bebbbc6c1a570a20
04-24 05:37:00.476: I/DEBUG(58):  d22 3ff0000000000000  d23 3fede16b9c24a98f
04-24 05:37:00.476: I/DEBUG(58):  d24 3e66376972bea4d0  d25 3fc39a09d078c69f
04-24 05:37:00.476: I/DEBUG(58):  d26 0000000000000000  d27 0000000000000000
04-24 05:37:00.476: I/DEBUG(58):  d28 0000000000000000  d29 0000000000000000
04-24 05:37:00.476: I/DEBUG(58):  d30 0000000000000000  d31 0000000000000000
04-24 05:37:00.480: I/DEBUG(58):  scr 60000012
04-24 05:37:00.558: I/DEBUG(58):          #00  pc 50408a56  /data/data/tiny.test2/lib/libcaneth.so
04-24 05:37:00.558: I/DEBUG(58):          #01  lr 40807077  /system/lib/libdvm.so
04-24 05:37:00.558: I/DEBUG(58): code around pc:
04-24 05:37:00.558: I/DEBUG(58): 50408a34 9317681b 2b009b17 9a09d10a 447b4b26  .h.....+....&K{D
04-24 05:37:00.558: I/DEBUG(58): 50408a44 21071c10 f7fd1c1a 2300feed e0382400  ...!.......#.$8.
04-24 05:37:00.558: I/DEBUG(58): 50408a54 681b9b17 23009318 23f0930f 1c18005b  ...h...#...#[...
04-24 05:37:00.558: I/DEBUG(58): 50408a64 ee7cf02a 1c1d1c03 991b1c28 9b0a9a1a  *.|.....(.......
04-24 05:37:00.558: I/DEBUG(58): 50408a74 93009c0b 9b199401 9b189302 9b0f9303  ................
04-24 05:37:00.558: I/DEBUG(58): code around lr:
04-24 05:37:00.558: I/DEBUG(58): 40807054 fd94f7ff 686a4604 46314628 f8d24643  .....Fjh(F1FCF..
04-24 05:37:00.562: I/DEBUG(58): 40807064 46227300 4a0847b8 2100a805 f7fc447a  .s"F.G.J...!zD..
04-24 05:37:00.562: I/DEBUG(58): 40807074 b00afb29 81f0e8bd d5aab57f 00062cfa  )............,..
04-24 05:37:00.562: I/DEBUG(58): 40807084 0004c02e 0006ad96 0004bcd4 41f0e92d  ............-..A
04-24 05:37:00.562: I/DEBUG(58): 40807094 b08a4698 46054b1e 4614af05 447b460e  .F...K.F...F.F{D
04-24 05:37:00.562: I/DEBUG(58): memory map around addr 00001a85:
04-24 05:37:00.562: I/DEBUG(58): (no map below)
04-24 05:37:00.562: I/DEBUG(58): (no map for address)
04-24 05:37:00.562: I/DEBUG(58): 00008000-0000a000 /system/bin/app_process
04-24 05:37:00.562: I/DEBUG(58): stack:
04-24 05:37:00.562: I/DEBUG(58):     bec79500  40869d12  /system/lib/libdvm.so
04-24 05:37:00.562: I/DEBUG(58):     bec79504  00000004  
04-24 05:37:00.562: I/DEBUG(58):     bec79508  00000001  
04-24 05:37:00.562: I/DEBUG(58):     bec7950c  0000f2c8  [heap]
04-24 05:37:00.562: I/DEBUG(58):     bec79510  40806ffd  /system/lib/libdvm.so
04-24 05:37:00.562: I/DEBUG(58):     bec79514  00000000  
04-24 05:37:00.562: I/DEBUG(58):     bec79518  00000039  
04-24 05:37:00.562: I/DEBUG(58):     bec7951c  00000000  
04-24 05:37:00.562: I/DEBUG(58):     bec79520  bec795d8  [stack]
04-24 05:37:00.562: I/DEBUG(58):     bec79524  50406825  /data/data/tiny.test2/lib/libcaneth.so
04-24 05:37:00.562: I/DEBUG(58):     bec79528  00000000  
04-24 05:37:00.562: I/DEBUG(58):     bec7952c  412adc88  /dev/ashmem/dalvik-heap (deleted)
04-24 05:37:00.562: I/DEBUG(58):     bec79530  84400029  
04-24 05:37:00.562: I/DEBUG(58):     bec79534  0000f2c8  [heap]
04-24 05:37:00.566: I/DEBUG(58):     bec79538  df0027ad  
04-24 05:37:00.566: I/DEBUG(58):     bec7953c  00000000  
04-24 05:37:00.566: I/DEBUG(58):     bec79540  00132110  [heap]
04-24 05:37:00.566: I/DEBUG(58):     bec79544  00000000  
04-24 05:37:00.566: I/DEBUG(58):     bec79548  bec795e0  [stack]
04-24 05:37:00.566: I/DEBUG(58):     bec7954c  4b969480  /dev/ashmem/dalvik-LinearAlloc (deleted)
04-24 05:37:00.566: I/DEBUG(58):     bec79550  001a2530  [heap]
04-24 05:37:00.566: I/DEBUG(58):     bec79554  40019ea3  /system/lib/libc.so
04-24 05:37:00.566: I/DEBUG(58):     bec79558  000017c0  
04-24 05:37:00.566: I/DEBUG(58):     bec7955c  6b60001d  
04-24 05:37:00.566: I/DEBUG(58):     bec79560  6bd00019  
04-24 05:37:00.566: I/DEBUG(58):     bec79564  0000f2c8  [heap]
04-24 05:37:00.566: I/DEBUG(58):     bec79568  00003039  
04-24 05:37:00.566: I/DEBUG(58):     bec7956c  00000000  
04-24 05:37:00.566: I/DEBUG(58):     bec79570  00000000  
04-24 05:37:00.566: I/DEBUG(58):     bec79574  00000000  
04-24 05:37:00.566: I/DEBUG(58):     bec79578  409c5460  /dev/ashmem/dalvik-heap (deleted)
04-24 05:37:00.566: I/DEBUG(58):     bec7957c  000000c1  
04-24 05:37:00.566: I/DEBUG(58):     bec79580  00000002  
04-24 05:37:00.566: I/DEBUG(58):     bec79584  00000002  
04-24 05:37:00.566: I/DEBUG(58):     bec79588  412adc88  /dev/ashmem/dalvik-heap (deleted)
04-24 05:37:00.566: I/DEBUG(58):     bec7958c  84400029  
04-24 05:37:00.566: I/DEBUG(58):     bec79590  4bab3d70  /dev/ashmem/dalvik-LinearAlloc (deleted)
04-24 05:37:00.566: I/DEBUG(58):     bec79594  a6200025  
04-24 05:37:00.566: I/DEBUG(58):     bec79598  00000000  
04-24 05:37:00.570: I/DEBUG(58):     bec7959c  00001a85  
04-24 05:37:00.570: I/DEBUG(58):     bec795a0  40876c58  /system/lib/libdvm.so
04-24 05:37:00.570: I/DEBUG(58):     bec795a4  00000001  
04-24 05:37:00.570: I/DEBUG(58):     bec795a8  000017c0  
04-24 05:37:00.570: I/DEBUG(58):     bec795ac  00132248  [heap]
04-24 05:37:00.570: I/DEBUG(58):     bec795b0  00000000  
04-24 05:37:00.570: I/DEBUG(58):     bec795b4  4bbf5e70  /dev/ashmem/dalvik-LinearAlloc (deleted)
04-24 05:37:00.570: I/DEBUG(58):     bec795b8  00012830  [heap]
04-24 05:37:00.570: I/DEBUG(58):     bec795bc  00000003  
04-24 05:37:00.570: I/DEBUG(58):     bec795c0  4b965c00  
04-24 05:37:00.570: I/DEBUG(58):     bec795c4  407ddbf4  /system/lib/libdvm.so
04-24 05:37:00.570: I/DEBUG(58):     bec795c8  79200021  
04-24 05:37:00.570: I/DEBUG(58):     bec795cc  00000001  
04-24 05:37:00.570: I/DEBUG(58):     bec795d0  00001a85  
04-24 05:37:00.570: I/DEBUG(58):     bec795d4  00000000  
04-24 05:37:00.570: I/DEBUG(58):     bec795d8  4b965be8  
04-24 05:37:00.570: I/DEBUG(58):     bec795dc  00000001  
04-24 05:37:00.570: I/DEBUG(58):     bec795e0  412aca10  /dev/ashmem/dalvik-heap (deleted)
04-24 05:37:00.570: I/DEBUG(58):     bec795e4  00012840  [heap]
04-24 05:37:00.570: I/DEBUG(58):     bec795e8  bec79898  [stack]
04-24 05:37:00.570: I/DEBUG(58):     bec795ec  40817c33  /system/lib/libdvm.so
04-24 05:37:00.570: I/DEBUG(58):     bec795f0  4b965be8  
04-24 05:37:00.570: I/DEBUG(58):     bec795f4  503cd2bb  /data/dalvik-cache/data@[email protected]@classes.dex
04-24 05:37:00.570: I/DEBUG(58):     bec795f8  50408909  /data/data/tiny.test2/lib/libcaneth.so
04-24 05:37:00.570: I/DEBUG(58):     bec795fc  00012840  [heap]
04-24 05:37:00.570: I/DEBUG(58):     bec79600  00000008  
04-24 05:37:00.570: I/DEBUG(58):     bec79604  00000000  
04-24 05:37:00.570: I/DEBUG(58):     bec79608  6bd00019  
04-24 05:37:00.574: I/DEBUG(58):     bec7960c  4c1f228a  /data/dalvik-cache/system@[email protected]@classes.dex
04-24 05:37:00.574: I/DEBUG(58):     bec79610  fffffe4c  
04-24 05:37:00.574: I/DEBUG(58):     bec79614  f6502688  
04-24 05:37:00.574: I/DEBUG(58):     bec79618  4bb9da38  /dev/ashmem/dalvik-LinearAlloc (deleted)
04-24 05:37:00.574: I/DEBUG(58):     bec7961c  00000000  
04-24 05:37:00.574: I/DEBUG(58):     bec79620  00000000  
04-24 05:37:00.574: I/DEBUG(58):     bec79624  00000000  
04-24 05:37:00.574: I/DEBUG(58):     bec79628  00000000  
04-24 05:37:00.574: I/DEBUG(58):     bec7962c  00000000  
04-24 05:37:00.574: I/DEBUG(58):     bec79630  00156cae  [heap]
04-24 05:37:00.574: I/DEBUG(58):     bec79634  00156c98  [heap]
04-24 05:37:00.574: I/DEBUG(58):     bec79638  4004c4d8  
04-24 05:37:00.574: I/DEBUG(58):     bec7963c  4004c4d8  
04-24 05:37:00.574: I/DEBUG(58):     bec79640  00161678  [heap]
04-24 05:37:00.574: I/DEBUG(58):     bec79644  001616b0  [heap]
04-24 05:37:00.699: W/ActivityManager(189): Launch timeout has expired, giving up wake lock!
04-24 05:37:00.804: W/ActivityManager(189): Activity idle timeout for ActivityRecord{41571d28 tiny.test2/.Test2Activity}

And running this through ndk-stack gives

********** Crash dump: **********
Build fingerprint: 'Android/full_mini210/mini210:4.0.3/IML74K/eng.root.20120209.191511:eng/test-keys'
pid: 1945, tid: 1945  >>> tiny.test2 <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00001a85
Stack frame #00  pc 50408a56  /data/data/tiny.test2/lib/libcaneth.so: Unable to locate routine information for address 50408a56 in module ./obj/local/armeabi/libcaneth.so

addr2line on 50408a56, or 408a56, or 8a56 returns ?? (I changed the numbers because I have read that addr2line needs the offset address). I also tried the last address by libcaneth.so on the stack, 50406825, same deal.

readelf told me that the nearest address is in dynsyms, and I've tried exporting the contents of dynsyms but it doesn't have address info.

ndk-gdb gave me the same pc address for the SIGSEGV, but also didn't find a function name or line number. Given that there is no identified function label, would that suggest the fault is in the class variable initialisation? How can I find the fault line? What might I be doing wrong?

Upvotes: 1

Views: 1339

Answers (1)

SonicBison
SonicBison

Reputation: 790

Are you compiling and linking debug symbols

LOCAL_CFLAGS +=-g

LOCAL_LDLIBS :=-g

Upvotes: 1

Related Questions