Reputation: 753
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
Reputation: 790
Are you compiling and linking debug symbols
LOCAL_CFLAGS +=-g
LOCAL_LDLIBS :=-g
Upvotes: 1