来自/system/framework/arm/boot-framework.oat的JNI调用崩溃

时间:2017-10-26 19:47:21

标签: java android java-native-interface dalvik android-runtime

我正在使用最新的Android N运行在MTK HW上的设备上的system_server中遇到这种奇怪的崩溃,其中回溯指向来自 /system/framework/arm/boot-framework.oat <的JNI调用中的崩溃/ strong>。 我无法弄清楚如何调试此崩溃,因为它既不是java代码也不是本机库的实际c / c ++部分。

我觉得,它正处于两者的中间,因为它与SIGSEGV崩溃并且回溯并不表示共享库具有本机调用的实际实现。

有趣的是要注意的是故障地址总是 0x10 。问题不容易再现。

请建议如何调试此类崩溃。非常感谢任何帮助。

例如一个这样的bactrace -

构建指纹:'XYZ / ABC / ABC:7.1.2 / NZH54D / 0152310:user / release-keys'

修订版:'0'

ABI:'手臂'

pid:1804,tid:1814,name:Binder:1804_1&gt;&gt;&gt; system_server&lt;&lt;&lt;

信号11(SIGSEGV),代码1(SEGV_MAPERR),故障地址0x10

r0 00000000  r1 d80f35c6  r2 00000000  r3 00000000
r4 70edda68  r5 00002759  r6 712de7bc  r7 12de17a0
r8 00000000  r9 ac783000  sl ac9626fc  fp ffffffff
ip 00000000  sp ac960f24  lr adb05c11  pc 7445198e  cpsr 600b0030
d0  006e006f00690074  d1  006f002f0030002f
d2  0064002e00670072  d3  00640069006f0072
d4  006e002e00760074  d5  0076007400740065
d6  0069006700650072  d7  0061007200740073
d8  0000000000000000  d9  0000000000000000
d10 0000000000000000  d11 0000000000000000
d12 0000000000000000  d13 0000000000000000
d14 0000000000000000  d15 0000000000000000
d16 00000000024aef90  d17 00000000022e8888
d18 00000000024ae790  d19 00000000022e8388
d20 0000000000000000  d21 0000000000000000
d22 d762c4e3e31ef623  d23 2ec7d021e172f340
d24 213dec24a83d36ce  d25 a5d214f608e470a4
d26 0000000100000000  d27 0000000100000000
d28 0000000100000001  d29 0000000100000001
d30 0000000000000000  d31 0000000000cbd10d
scr 80000093

回溯:

#00 pc 01bd298e  /system/framework/arm/boot-framework.oat (offset 0x15a3000) (android.os.Parcel.nativeWriteInt+121)
#01 pc 01bd918d  /system/framework/arm/boot-framework.oat (offset 0x15a3000) (android.os.Parcel.writeInt+56)
#02 pc 017cc87d  /system/framework/arm/boot-framework.oat (offset 0x15a3000) (android.content.pm.ApplicationInfo.writeToParcel+616)
#03 pc 017c89fb  /system/framework/arm/boot-framework.oat (offset 0x15a3000) (android.content.pm.ComponentInfo.writeToParcel+110)
#04 pc 01817f15  /system/framework/arm/boot-framework.oat (offset 0x15a3000) (android.content.pm.ProviderInfo.writeToParcel+48)
#05 pc 0168a325  /system/framework/arm/boot-framework.oat (offset 0x15a3000) (android.app.IActivityManager$ContentProviderHolder.writeToParcel+48)
#06 pc 000a9a41  /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#07 pc 0040554d  /system/lib/libart.so (art_quick_invoke_stub+232)
#08 pc 000b0cd5  /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+136)
#09 pc 001ed20d  /system/lib/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+200)
#10 pc 001e77bd  /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+492)
#11 pc 003ff9c7  /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#12 pc 000a0614  /system/lib/libart.so (ExecuteMterpImpl+29972)
#13 pc 001caae7  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#14 pc 001cf5b9  /system/lib/libart.so (_ZN3art11interpreter30EnterInterpreterFromEntryPointEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameE+92)
#15 pc 003f49f7  /system/lib/libart.so (artQuickToInterpreterBridge+706)
#16 pc 000ae493  /system/lib/libart.so (art_quick_to_interpreter_bridge+34)
#17 pc 00f046bd  /system/framework/oat/arm/services.odex (offset 0xcdd000)

0 个答案:

没有答案