mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 12:43:16 -04:00
71c7d73416
add dumpresult Created-by: Lutao98 Commit-by: Lutao98 Merged-by: openharmony_ci Description: **IssueNo**: https://gitcode.com/openharmony/hiviewdfx_hidumper/issues/563 **Description**: 本次提交基于 PR #18792 cherry-pick 并解冲突,新增应用进程 native 内存 dump 能力(DumpMem),支持通过 hidumper 触发 native 内存泄漏检测和快照导出。 主要修改: 1. 新增 MemDumpInfo 数据结构及其 Parcelable 序列化/反序列化实现 2. 新增 DumpMem IPC 通道:AppMgrInterfaceCode::DUMP_MEM_PROCESS,支持同步/异步两种调用模式 3. 完整的 IPC 链路:AppMgrClient -> AppMgrProxy -> AppMgrStub -> AppMgrServiceInner -> AppRunningManager -> AppRunningRecord -> AppLifeCycleDeal -> AppSchedulerProxy -> AppSchedulerHost -> MainThread 4. DumpRuntimeHelper 新增 DumpMem/DumpNativeHeap/GetDumpResult/GetSnapshot 实现,通过 dlopen libmemleak.z.so 动态加载内存泄漏检测函数 5. 提取公共 LoadMemLeakFunc 辅助函数消除 dlopen/dlsym 重复代码 6. 补充单元测试和 mock 实现 **稳定性自检:** | 自检项 | 自检结果 | | ------------------------------------------------------------ | -------- | | 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发 | 已检查,ScheduleMem同步模式直接执行,异步模式通过mainHandler PostTask | | 成员变量进行赋值或创建需要排查并发 | 不涉及 | | 谨慎在lambda表达式中使用引用捕获 | 已检查,异步lambda使用值捕获 | | mapector\list\set等stl模板类使用时需要排查并发 | 不涉及 | | 禁止传递this指针至其他模块或线程(特别是eventhandler任务) | 已检查,异步使用wptr | | 禁止在对外接口中未经判空直接使用外部传入的指针 | 已检查 | **安全编码自检:** | 自检项 | 自检结果 | | -------------------------------------------------------------- | -------- | | 指针变量、表示资源描述符的变量、bool变量必须赋初值 | 已检查 | | readParcelable获取的对象使用前需要判空 | 已检查 | | 分配和释放内存的函数需要成对出现 | 已检查 | | 内存分配后必须判断是否成功 | 已检查 | | 必须检查安全函数的返回值,并进行正确处理 | 已检查 | **TDD Result**: **XTS Result**: ### 是否已执行L0用例 - [ ] 已验证 - [ ] 不涉及。如不涉及,请写明理由 See merge request: openharmony/ability_ability_runtime!18879