jni错误分析之 Fatal signal 11 (SIGSEGV), code 1, fault addr 0x8 in tid 4420

下面是具体错误


2:08:06.731 4420-4420/? A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x8 in tid 4420 (com.tencent.mm)
08-14 02:08:06.832 1393-1393/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-14 02:08:06.832 1393-1393/? I/DEBUG: Build fingerprint: 'Android-x86/android_x86/x86:5.1.1/LMY48Z/denglibo07121054:userdebug/test-keys'
08-14 02:08:06.832 1393-1393/? I/DEBUG: Revision: '0'
08-14 02:08:06.832 1393-1393/? I/DEBUG: ABI: 'x86'
08-14 02:08:06.832 1393-1393/? I/DEBUG: pid: 4420, tid: 4420, name: com.tencent.mm  >>> com.tencent.mm <<<
08-14 02:08:06.832 1393-1393/? I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x8
08-14 02:08:06.838 1393-1393/? I/DEBUG:     eax bf86954c  ebx b3bfca90  ecx bf869af4  edx bf869558
08-14 02:08:06.838 1393-1393/? I/DEBUG:     esi 00000000  edi 00000000
08-14 02:08:06.838 1393-1393/? I/DEBUG:     xcs 00000073  xds 0000007b  xes 0000007b  xfs 00000007  xss 0000007b
08-14 02:08:06.838 1393-1393/? I/DEBUG:     eip b37ed646  ebp bf8695b8  esp bf8694b0  flags 00210286
08-14 02:08:06.838 1393-1393/? I/DEBUG: backtrace:
08-14 02:08:06.838 1393-1393/? I/DEBUG:     #00 pc 00101646  /system/lib/libart.so (art::mirror::ArtMethod::GetShorty(unsigned int*)+22)
08-14 02:08:06.838 1393-1393/? I/DEBUG:     #01 pc 0032b7ab  /system/lib/libart.so (art::GetMethodShorty(_JNIEnv*, _jmethodID*)+411)
08-14 02:08:06.838 1393-1393/? I/DEBUG:     #02 pc 001a9219  /system/lib/arm/libhoudini.so
08-14 02:08:06.933 1393-1393/? I/DEBUG: Tombstone written to: /data/tombstones/tombstone_04
08-14 02:08:06.937 1562-4462/system_process W/ActivityManager:   Force finishing activity 1 com.tencent.mm/.ui.LauncherUI
08-14 02:08:06.937 1562-1584/system_process I/BootReceiver: Copying /data/tombstones/tombstone_04 to DropBox (SYSTEM_TOMBSTONE)


我搞了半天一直以为是jni转 类jstring的问题,后面突然开窍,发现错误里面包含一个关键信息,GetMethodShorty ,那么问题应该是出在方法了,后面我查看了一下是不是混淆了,果然,是找不到方法了。不过我的方法不是short类型的 为什么会这样报错我也很无语。

2018年10月16日 23:03:53
这种不精确的错误还是可以得到详细的堆栈的,debug版本 把.o文件配合指令能快速定位。

    原文作者:情随事迁666
    原文地址: https://www.jianshu.com/p/796a78955ba7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞