HarmonyOS libuv.so崩溃
崩溃信息:
Generated by HiviewDFX@OpenHarmony
Device info:MatePad Pro
Build info:XYAO-W00 5.0.0.18(SP32DEVC00E18R1P1log)
Fingerprint:ae6d8e7765ed1c2bcca6cdd861267e7f80c44ff46e0fbe43917a4de1d1c81d73
Module name:com.xxx.xxx
Version:1.0.2
VersionCode:1000002
PreInstalled:No
Foreground:Yes
Timestamp:2024-05-13 20:03:26.077
Pid:xxx
Uid:xxx
Process name:com.xxx.xxx
Process life cycle:5s
Reason:Signal:SIGSEGV(SEGV_MAPERR)@0x0000000000000001 probably caused by NULL pointer dereference
Fault thread info:
Tid:xxx, Name:.xxx.xxx
#00 pc 0000000000017b14 /system/lib64/platformsdk/libuv.so(uv_run+724)(695211df6a3b75b52cec82e69c3c465b)
#01 pc 000000000006c474 /system/lib64/platformsdk/libruntime.z.so(OHOS::AbilityRuntime::OHOSLoopHandler::OnTriggered()+156)(8bc0488a9cd7b4826476b535921cb6f9)
#02 pc 000000000006ca04 /system/lib64/platformsdk/libruntime.z.so(std::__h::__function::__func<OHOS::AbilityRuntime::OHOSLoopHandler::OnTriggered()::$_0, std::__h::allocator<OHOS::AbilityRuntime::OHOSLoopHandler::OnTriggered()::$_0>, void ()>::operator()() (.9efded9864dc55830f61b3b92d59beab)+48)(8bc0488a9cd7b4826476b535921cb6f9)
#03 pc 0000000000013ca8 /system/lib64/chipset-pub-sdk/libeventhandler.z.so(OHOS::AppExecFwk::EventHandler::DistributeEvent(std::__h::unique_ptr<OHOS::AppExecFwk::InnerEvent, void (*)(OHOS::AppExecFwk::InnerEvent*)> const&)+940)(f056611c03a22ac39445298fd3e4fb94)
#04 pc 0000000000020f78 /system/lib64/chipset-pub-sdk/libeventhandler.z.so(OHOS::AppExecFwk::(anonymous namespace)::EventRunnerImpl::Run()+764)(f056611c03a22ac39445298fd3e4fb94)
#05 pc 0000000000023130 /system/lib64/chipset-pub-sdk/libeventhandler.z.so(OHOS::AppExecFwk::EventRunner::Run()+120)(f056611c03a22ac39445298fd3e4fb94)
#06 pc 000000000007d630 /system/lib64/platformsdk/libappkit_native.z.so(OHOS::AppExecFwk::MainThread::Start()+740)(9573a3c6d6c74c2f9713f94df6f40517)
#07 pc 0000000000013104 /system/bin/appspawn(RunChildProcessor+296)(fac2a838ca823d318e3ac6dd4513d837)
#08 pc 0000000000038dfc /system/bin/appspawn(AppSpawnChild+284)(fac2a838ca823d318e3ac6dd4513d837)
#09 pc 0000000000038c14 /system/bin/appspawn(AppSpawnProcessMsg+560)(fac2a838ca823d318e3ac6dd4513d837)
#10 pc 00000000000338c8 /system/bin/appspawn(OnReceiveRequest+2380)(fac2a838ca823d318e3ac6dd4513d837)
#11 pc 0000000000018300 /system/lib64/chipset-pub-sdk/libbegetutil.z.so(HandleRecvMsg_+260)(95cad246ce0aaf53caac912e70808f04)
#12 pc 0000000000017e80 /system/lib64/chipset-pub-sdk/libbegetutil.z.so(HandleStreamEvent_+148)(95cad246ce0aaf53caac912e70808f04)
#13 pc 0000000000015800 /system/lib64/chipset-pub-sdk/libbegetutil.z.so(ProcessEvent+112)(95cad246ce0aaf53caac912e70808f04)
#14 pc 0000000000015418 /system/lib64/chipset-pub-sdk/libbegetutil.z.so(RunLoop_+308)(95cad246ce0aaf53caac912e70808f04)
#15 pc 0000000000031b3c /system/bin/appspawn(AppSpawnRun+172)(fac2a838ca823d318e3ac6dd4513d837)
#16 pc 0000000000020c80 /system/bin/appspawn(main+956)(fac2a838ca823d318e3ac6dd4513d837)
#17 pc 00000000000a3118 /system/lib/ld-musl-aarch64.so.1(libc_start_main_stage2+64)(e7a78c0e604fec896ce7e6877f18ee4b)
#18 pc 000000000001251c /system/bin/appspawn(_start_c+76)(fac2a838ca823d318e3ac6dd4513d837)
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 引用so库程序崩溃
1033浏览 • 1回复 待解决
HarmonyOS so库的崩溃反解如何处理?
1016浏览 • 1回复 待解决
HarmonyOS模拟器上使用libjsvm.so崩溃
1447浏览 • 1回复 待解决
libuv的简单实现,通过使用libuv库实现C++子线程操作
1585浏览 • 1回复 待解决
sdk 10升级sdk 11后,加载链接的so库崩溃
2975浏览 • 1回复 待解决
基于libuv异步库进行线程通信
2951浏览 • 0回复 待解决
HarmonyOS 崩溃时,看不到崩溃栈和崩溃原因
2473浏览 • 1回复 待解决
HarmonyOS App Gallery中的C++崩溃,我们App的so中的符号没有解析出来
943浏览 • 1回复 待解决
HarmonyOS HiAppEvent在进程崩溃时实时拿到崩溃
830浏览 • 1回复 待解决
HarmonyOS sendable崩溃问题
803浏览 • 1回复 待解决
HarmonyOS 加密程序崩溃
763浏览 • 1回复 待解决
HarmonyOS使用HashMap崩溃
1429浏览 • 1回复 待解决
#鸿蒙通关秘籍#使用Libuv实现鸿蒙开发的异步线程管理
1323浏览 • 1回复 待解决
HarmonyOS API调用崩溃问题
1414浏览 • 1回复 待解决
HarmonyOS 应用崩溃日志问题
1807浏览 • 1回复 待解决
HarmonyOS 使用NavDestinationModifier出现崩溃
846浏览 • 1回复 待解决
HarmonyOS flutter崩溃问题处理
1601浏览 • 1回复 待解决
HarmonyOS IDataSource的onDatasetChange()崩溃
1010浏览 • 1回复 待解决
HarmonyOS List.clear崩溃
762浏览 • 1回复 待解决
是libuv事件驱动么?
1442浏览 • 1回复 待解决
HarmonyOS 打包so问题
975浏览 • 1回复 待解决
HarmonyOS线程池使用崩溃
1482浏览 • 1回复 待解决
HarmonyOS 全局崩溃捕获问题
956浏览 • 1回复 待解决
HarmonyOS 崩溃收集问题咨询
1218浏览 • 1回复 待解决
HarmonyOS 崩溃日志的收集
826浏览 • 1回复 待解决
关于libuv中的uv_close总结了一些正确和错误的写法供参考:
错误用法一:
将uv_handle_t句柄作为对象的成员变量,其生命周期与该对象一致。一旦调用了uv_close后,loop所在线程还未执行传入的回调函数,对象生命周期结束,则会crash。该crash是否必现需要看loop所在线程的业务繁忙程度。
该错误用法导致的崩溃信息一般有两个:
如果是非指针变量,崩溃信息通常都是空指针解引用。
如果是指针对象,崩溃有可能是空指针解引用,也有可能是一个被释放了的内存地址。
错误用法二:
在紧跟着uv_close之后进行内存释放。
Handles推荐写法:
深刻理解uv_close函数对您正确地管理handles生命周期至关重要。在使用uv的handles时,如果您不想使用开发文档中对handles的封装,下面是我们总结出来的正确写法,它可以保证您使用Handles的过程中不会出错(写法一、写法二尽管正确,但它并不是一个好的写法)。
写法一、用全局指针变量管理的Handles:
写法二、通过全局变量管理的Handles:
这种写法尽管正确,但不建议该写法。
写法三、通过对象的成员变量进行管理的Handles:
通过动态分配内存申请的成员变量,可以在析构函数中调用uv_close,在传入的回调函数中delete它。