cppcrash进程: /system/bin/bootanimation,崩溃libskia_canvaskit.z.so
日志信息:
#00 pc 000718ae /system/lib/ld-musl-arm.so.1(strlen+174)(f8f8d3840b4171fc7a9ce04e7eeaec87)
#01 pc 000dd9f4 /system/lib/ld-musl-arm.so.1(__isoc99_sscanf+64)(f8f8d3840b4171fc7a9ce04e7eeaec87)
#02 pc 0100831d /system/lib/platformsdk/libskia_canvaskit.z.so(GrGLGetStandardInUseFromString(char const*)+32)(9ff4c1847815a6b2ebc5f529208ed001)
#03 pc 00fe6a65 /system/lib/platformsdk/libskia_canvaskit.z.so(GrGLCreateNativeInterface()+40)(9ff4c1847815a6b2ebc5f529208ed001)
#04 pc 001024d5 /system/lib/lib2d_graphics.z.so(OHOS::Rosen::Drawing::SkiaGPUContext::BuildFromGL(OHOS::Rosen::Drawing::GPUContextOptions const&)+20)(6e1c6ef5439c61d1180e83a9328ccafa)
#05 pc 0043c1b5 /system/lib/platformsdk/librender_service_base.z.so(OHOS::Rosen::RenderContext::SetUpGpuContext(std::__h::shared_ptrOHOS::Rosen::Drawing::GPUContext)+248)(81d8d29e9b45d7064d403e31ac77731e)
#06 pc 0043c313 /system/lib/platformsdk/librender_service_base.z.so(OHOS::Rosen::RenderContext::AcquireSurface(int, int)+38)(81d8d29e9b45d7064d403e31ac77731e)
#07 pc 00438923 /system/lib/platformsdk/librender_service_base.z.so(OHOS::Rosen::RSSurfaceFrameOhosGl::CreateSurface()+26)(81d8d29e9b45d7064d403e31ac77731e)
#08 pc 00438889 /system/lib/platformsdk/librender_service_base.z.so(OHOS::Rosen::RSSurfaceFrameOhosGl::GetCanvas()+24)(81d8d29e9b45d7064d403e31ac77731e)
#09 pc 00019041 /system/bin/bootanimation(OHOS::BootPicturePlayer::Draw()+208)(4a841507a99f6e693c0aba24031ba405)
#10 pc 000155f7 /system/lib/chipset-pub-sdk/libeventhandler.z.so(OHOS::AppExecFwk::EventHandler::DistributeEvent(std::__h::unique_ptr<OHOS::AppExecFwk::InnerEvent, void ()(OHOS::AppExecFwk::InnerEvent)> const&)+1090)(c3b41af1e41698d18aee6c18eebe7ddf)
#11 pc 00023eb1 /system/lib/chipset-pub-sdk/libeventhandler.z.so(OHOS::AppExecFwk::(anonymous namespace)::EventRunnerImpl::ExecuteEventHandler(std::__h::unique_ptr<OHOS::AppExecFwk::InnerEvent, void ()(OHOS::AppExecFwk::InnerEvent)>&)+912)(c3b41af1e41698d18aee6c18eebe7ddf)
#12 pc 000235eb /system/lib/chipset-pub-sdk/libeventhandler.z.so(OHOS::AppExecFwk::(anonymous namespace)::EventRunnerImpl::Run()+578)(c3b41af1e41698d18aee6c18eebe7ddf)
#13 pc 000260f9 /system/lib/chipset-pub-sdk/libeventhandler.z.so(OHOS::AppExecFwk::EventRunner::Run()+280)(c3b41af1e41698d18aee6c18eebe7ddf)
#14 pc 000130bd /system/bin/bootanimation(OHOS::BootAnimationOperation::StartEventHandler(OHOS::BootAnimationConfig const&)+1084)(4a841507a99f6e693c0aba24031ba405)
#15 pc 00012063 /system/bin/bootanimation(4a841507a99f6e693c0aba24031ba405)
#16 pc 000f2884 /system/lib/ld-musl-arm.so.1(start+248)(f8f8d3840b4171fc7a9ce04e7eeaec87)
#17 pc 0006f5d8 /system/lib/ld-musl-arm.so.1(f8f8d3840b4171fc7a9ce04e7eeaec87)
Registers:
r0:00000059 r1:00000058 r2:b615c774 r3:b615c770
r4:00000001 r5:00000059 r6:b615c770 r7:b615c870
r8:b615c758 r9:b615c870 r10:afd61cbc
fp:b615c750 ip:ffffffff sp:b615c688 lr:b6ed89f8 pc:b6e6c8ae
解决方法:
1.排除libc库musl,找到crash的so:
libskia_canvaskit.z.so
2.找到crash的源码文件及位置:
#llvm-addr2line -e lib.unstripped/thirdparty/skia/libskia_canvaskit.z.so 0x0100831d -f -C
third_party/skia/src/gpu/gl/GrGLUtil.cpp:57
3.分析源码
此函数是对一个字符串进行处理来获取 版本号,因为字符串的内容非法导致进程crash
4.解决方案
增加对字符串内容的检查,并且优化代码:
5验证
压测12小时后,未复现此问题
更多推荐
所有评论(0)