我正在使用最新的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)