signal 11
LOG:
- F/libc ( 1783): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
- I/DEBUG ( 115): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
- I/DEBUG ( 115): Build fingerprint: 'intel/mfld_dv10/mfld_dv10:4.0.4/IMM76D/release.20130301:eng/dev-keys'
- I/DEBUG ( 115): pid: 1783, tid: 1783 >>> com.example.apis <<<
- I/DEBUG ( 115): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
- I/DEBUG ( 115): eax bfb0eb4e ebx 5e35753c ecx 00000000 edx 5f200019
- I/DEBUG ( 115): esi bfb0eb48 edi 08b20db0
- I/DEBUG ( 115): xcs 00000073 xds 0000007b xes 0000007b xfs 00000000 xss 0000007b
- I/DEBUG ( 115): eip 5e35464a ebp bfb0eb98 esp bfb0eb30 flags 00010206
- DEBUG ( 115): #00 eip: 0000264a /data/data/com.example.apis/lib/libSampleJNIBinder.so
- I/DEBUG ( 115): #01 eip: 0007a959 /system/lib/libdvm.so (_Z16dvmCallJNIMethodPKjP6JValuePK6MethodP6Thread+0x1e9)
1.查看调用堆栈:ndk-stack
./ndk-stack -sym <.so文件目录> -dump foo.txt(出错调用堆栈,上附log)
2.addr2line
/data/tools/android-ndk-r11c$ find . -name "*addr2line"
./toolchains/mipsel-linux-android-4.9/prebuilt/linux-x86_64/bin/mipsel-linux-android-addr2line
./toolchains/x86_64-4.9/prebuilt/linux-x86_64/bin/x86_64-linux-android-addr2line
./toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-addr2line
./toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-addr2line
./toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/mips64el-linux-android-addr2line
./toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-addr2line
./i686-linux-android-addr2line -f -e <.so文件的pathName> <出错的地址>
如上:
./i686-linux-android-addr2line -f -e /home/hwh/Android_Project/Code/HHDemos/obj/local/x86/libSampleJNIBinder.so 0000415C