Arm64-v8a平台VIVO/Samsung设备memcpy崩溃排查求助
问题背景
- 近期对应用Native代码做性能优化并发布灰度版本后,收到大量崩溃报告
- 崩溃仅发生在Arm64-v8a架构的VIVO设备,少量出现在Samsung设备
- 崩溃根源指向libc的
memcpy函数,但本次优化未改动该函数的调用路径 - 崩溃集中在Android 13(API33)、Android 14(API34)平台
- 本地VIVO设备用10万条随机输入尝试复现失败,已定位到memcpy调用路径的各层文件及行号,确认优化改动不在该路径中
典型崩溃堆栈
SIGSEGV(SEGV_ACCERR) #00 pc 000000000004eebc /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+60) [arm64-v8a::3bac97c2012f8248ca610b4e558e17d1] #01 pc 000000000014a4c8 /data/app/~~k3_ers-e6zmrSs_FANzwIg==/<OurAPPCorporationName>.<OurAPPTypeName>-yFrQvavwtQa6pbKyOTxrKA==/lib/arm64/<OurNativeSharedObjectName>.so [arm64-v8a::2b50f378ff7e1b8d1d2b6ba552079baf] #02 pc 0000000000087aa8 /data/app/~~k3_ers-e6zmrSs_FANzwIg==/<OurAPPCorporationName>.<OurAPPTypeName>-yFrQvavwtQa6pbKyOTxrKA==/lib/arm64/<OurNativeSharedObjectName>.so [arm64-v8a::2b50f378ff7e1b8d1d2b6ba552079baf] #03 pc 0000000000086c78 /data/app/~~k3_ers-e6zmrSs_FANzwIg==/<OurAPPCorporationName>.<OurAPPTypeName>-yFrQvavwtQa6pbKyOTxrKA==/lib/arm64/<OurNativeSharedObjectName>.so [arm64-v8a::2b50f378ff7e1b8d1d2b6ba552079baf] #04 pc 000000000009e330 /data/app/~~k3_ers-e6zmrSs_FANzwIg==/<OurAPPCorporationName>.<OurAPPTypeName>-yFrQvavwtQa6pbKyOTxrKA==/lib/arm64/<OurNativeSharedObjectName>.so [arm64-v8a::2b50f378ff7e1b8d1d2b6ba552079baf] #05 pc 000000000009bb20 /data/app/~~k3_ers-e6zmrSs_FANzwIg==/<OurAPPCorporationName>.<OurAPPTypeName>-yFrQvavwtQa6pbKyOTxrKA==/lib/arm64/<OurNativeSharedObjectName>.so [arm64-v8a::2b50f378ff7e1b8d1d2b6ba552079baf] #06 pc 000000000008ab80 /data/app/~~k3_ers-e6zmrSs_FANzwIg==/<OurAPPCorporationName>.<OurAPPTypeName>-yFrQvavwtQa6pbKyOTxrKA==/lib/arm64/<OurNativeSharedObjectName>.so [arm64-v8a::2b50f378ff7e1b8d1d2b6ba552079baf] #07 pc 00000000002072e4 /data/app/~~k3_ers-e6zmrSs_FANzwIg==/<OurAPPCorporationName>.<OurAPPTypeName>-yFrQvavwtQa6pbKyOTxrKA==/oat/arm64/base.odex [arm64-v8a::515535bd03fc04c8a3440ba0667ca07e] java: <OurAPPCorporationName>.engine.logic.<OurBusinessLogicModuleName>.F(SourceFile:1) <OurAPPCorporationName>.engine.logic.PinyinLogic.h0(SourceFile:3) <OurAPPCorporationName>.engine.logic.state.PredictionState.o(SourceFile:29) <OurAPPCorporationName>.engine.logic.state.PredictionState.k(SourceFile:165) <OurAPPCorporationName>.engine.logic.state.PredictionState.a(SourceFile:5) <OurAPPCorporationName>.engine.logic.PyLogicStateContext.a(SourceFile:16) <OurAPPCorporationName>.engine.logic.thread.LogicHandler.handleMessage(SourceFile:20) android.os.Handler.dispatchMessage(Handler.java:106) android.os.Looper.loopOnce(Looper.java:223) android.os.Looper.loop(Looper.java:324) android.os.HandlerThread.run(HandlerThread.java:67)
部分设备的特殊堆栈
#00 pc 000000000009d6e0 /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy_aarch64_simd+160) [arm64-v8a::5ba801faadc5ce7796fe32eab5104a1e]
已完成排查动作
- 定位到memcpy调用路径的各层文件及行号,确认本次优化改动未涉及该路径
- 在本地VIVO设备上用10万条随机输入尝试复现,未成功
寻求排查方向
针对该场景,希望得到进一步的排查思路。
内容的提问来源于stack exchange,提问作者larry king
相关产品推荐
相关产品推荐

