native code crash (android)? -
native code crash (android)? -
i'm having android app heavily uses ffmpeg ported android. works pretty on devices crashes on galaxy tab 10:
06-20 13:16:36.136 505-561/? d/crashanrdetector﹕ build: samsung/espresso10rfxx/espresso10rf:4.2.2/jdq39/p5100xxdmj2:user/release-keys hardware: piranha revision: 9 bootloader: unknown radio: unknown kernel: linux version 3.0.31-1919150 (se.infra@sep-107) (gcc version 4.4.1 (sourcery g++ lite 2010q1-202) ) #1 smp preempt fri oct 18 15:31:19 kst 2013 *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** build fingerprint: 'samsung/espresso10rfxx/espresso10rf:4.2.2/jdq39/p5100xxdmj2:user/release-keys' revision: '9' pid: 22003, tid: 22003, name: om.company.project >>> com.company.project <<< signal 11 (sigsegv), code 1 (segv_maperr), fault addr deadbaad r0 00000027 r1 deadbaad r2 401b5258 r3 00000000 r4 00000000 r5 bebb936c r6 00000004 r7 40d63400 r8 00000000 r9 409d81b0 sl 4000c0d8 fp 00000001 ip 62675144 sp bebb9368 lr 4018854d pc 40184be2 cpsr 60000030 d0 65706d666662696c d1 732e6e6f656e2d67 d2 732e30323763692e d3 2f322d6c6f6f6863 d4 ff00edc0e4c09680 d5 000c000c000c000c d6 03fc0378033000e0 d7 3f8000003f800000 d8 41c0000000000000 d9 000000a13f000000 d10 0000000000000000 d11 0000000000000000 d12 0000000000000000 d13 0000000000000000 d14 0000000000000000 d15 0000000000000000 d16 00ffffffffffffff d17 004c481a004aca6e d18 004f4372004dc5c6 d19 00523eca0050c11e d20 00f5403e00ef803c d21 0101404100fb403f d22 0000004400000042 d23 0000004700000045 d24 010d404401074042 d25 0119404701134045 d26 0000004300000041 d27 0000004600000044 d28 00f5400000ef8000 d29 0101400000fb4000 d30 0000000100000001 d31 0000000100000001 scr 60000010 backtrace: #00 pc 0001abe2 /system/lib/libc.so #01 pc 00018208 /system/lib/libc.so (abort+4) #02 pc 0066b8e0 /data/app-lib/com.company.project-2/libffmpeg-neon.so #03 pc 000032b3 /system/bin/linker #04 pc 0000510b /system/bin/linker #05 pc 0004f973 /system/lib/libdvm.so (dvmloadnativecode(char const*, object*, char**)+186) #06 pc 0006681d /system/lib/libdvm.so #07 pc 000276e0 /system/lib/libdvm.so #08 pc 0002b5c4 /system/lib/libdvm.so (dvminterpret(thread*, method const*, jvalue*)+184) #09 pc 0005fc79 /system/lib/libdvm.so (dvmcallmethodv(thread*, method const*, object*, bool, jvalue*, std::__va_list)+272) #10 pc 0005fca3 /system/lib/libdvm.so (dvmcallmethod(thread*, method const*, object*, jvalue*, ...)+20) #11 pc 0006ad49 /system/lib/libdvm.so (dvminitclass+1036) #12 pc 000225dc /system/lib/libdvm.so (dvmasmsisterstart+412) #13 pc 0002b5c4 /system/lib/libdvm.so (dvminterpret(thread*, method const*, jvalue*)+184) #14 pc 0005ff4f /system/lib/libdvm.so (dvminvokemethod(object*, method const*, arrayobject*, arrayobject*, classobject*, bool)+374) #15 pc 00067879 /system/lib/libdvm.so #16 pc 000276e0 /system/lib/libdvm.so #17 pc 0002b5c4 /system/lib/libdvm.so (dvminterpret(thread*, method const*, jvalue*)+184) #18 pc 0005fc79 /system/lib/libdvm.so (dvmcallmethodv(thread*, method const*, object*, bool, jvalue*, std::__va_list)+272) #19 pc 00049a43 /system/lib/libdvm.so #20 pc 00047f43 /system/lib/libandroid_runtime.so #21 pc 000492df /system/lib/libandroid_runtime.so (android::androidruntime::start(char const*, char const*)+390) #22 pc 00000db7 /system/bin/app_process #23 pc 0001287f /system/lib/libc.so (__libc_init+38) #24 pc 00000ae8 /system/bin/app_process stack: bebb9328 f930001d bebb932c 5f7a1cc8 bebb9330 4015bcf8 /system/bin/linker bebb9334 4015bf40 /system/bin/linker bebb9338 4015c4f4 bebb933c 4015b0ac /system/bin/linker bebb9340 401b2254 /system/lib/libc.so bebb9344 401b21b4 /system/lib/libc.so bebb9348 00000000 bebb934c 4018854d /system/lib/libc.so (_fwalk+32) bebb9350 00000001 bebb9354 bebb936c [stack] bebb9358 00000004 bebb935c 40d63400 [heap] bebb9360 df0027ad bebb
since no app symbols in output (no methods in jni code) how can understand what's wrong? missing .so lib should loaded before loading libffmpeg.so ?
you can utilize ndk-stack tool provided android ndk. details can found ndk doc: android-ndk-r10d\docs\programmers_guide\html\md_3__key__topics__debugging__n_d_k-_s_t_a_c_k.htm
this tool helps convert content in memory human-readable debug information. sometimes, extremely helpful.
the next copied ndk document:
the tool can convert next information
i/debug ( 31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** i/debug ( 31): build fingerprint: 'generic/google_sdk/generic/:2.2/frf91/43546:eng/test-keys' i/debug ( 31): pid: 351, tid: 351 %gt;%gt;%gt; /data/local/ndk-tests/crasher <<< i/debug ( 31): signal 11 (sigsegv), fault addr 0d9f00d8 i/debug ( 31): r0 0000af88 r1 0000a008 r2 baadf00d r3 0d9f00d8 i/debug ( 31): r4 00000004 r5 0000a008 r6 0000af88 r7 00013c44 i/debug ( 31): r8 00000000 r9 00000000 10 00000000 fp 00000000 i/debug ( 31): ip 0000959c sp be956cc8 lr 00008403 pc 0000841e cpsr 60000030 i/debug ( 31): #00 pc 0000841e /data/local/ndk-tests/crasher i/debug ( 31): #01 pc 000083fe /data/local/ndk-tests/crasher i/debug ( 31): #02 pc 000083f6 /data/local/ndk-tests/crasher i/debug ( 31): #03 pc 000191ac /system/lib/libc.so i/debug ( 31): #04 pc 000083ea /data/local/ndk-tests/crasher i/debug ( 31): #05 pc 00008458 /data/local/ndk-tests/crasher i/debug ( 31): #06 pc 0000d362 /system/lib/libc.so i/debug ( 31):
into more readable output:
********** crash dump: ********** build fingerprint: 'generic/google_sdk/generic/:2.2/frf91/43546:eng/test-keys' pid: 351, tid: 351 >>> /data/local/ndk-tests/crasher <<< signal 11 (sigsegv), fault addr 0d9f00d8 stack frame #00 pc 0000841e /data/local/ndk-tests/crasher : routine zoo in /tmp/foo/crasher/jni/zoo.c:13 stack frame #01 pc 000083fe /data/local/ndk-tests/crasher : routine bar in /tmp/foo/crasher/jni/bar.c:5 stack frame #02 pc 000083f6 /data/local/ndk-tests/crasher : routine my_comparison in /tmp/foo/crasher/jni/foo.c:9 stack frame #03 pc 000191ac /system/lib/libc.so stack frame #04 pc 000083ea /data/local/ndk-tests/crasher : routine foo in /tmp/foo/crasher/jni/foo.c:14 stack frame #05 pc 00008458 /data/local/ndk-tests/crasher : routine main in /tmp/foo/crasher/jni/main.c:19 stack frame #06 pc 0000d362 /system/lib/libc.so
android android-ndk
Comments
Post a Comment