鸿蒙应用调试与性能预研:把 ArkTS、Native、符号和 Sanitizer 串成一条排障链摘要:鸿蒙应用一旦同时包含 ArkTS 与 C/C++ Native 模块,排障很容易断层:上层知道“功能异常”,Native 侧只有地址,日志和符号又没有统一关联。本文整理一套预研阶段就应建立的调试链路:环境、日志、断点、符号、安装包与 AddressSanitizer。标签:HarmonyOS、ArkTS、C++、LLDB、调试、性能优化一、预研阶段最该验证什么不要把“工程能跑起来”当作调试环境已完成。一个可用于性能和稳定性工作的环境,至少要验证:IDE、SDK、真机和签名链路可用;ArkTS 与 Native 日志都能稳定获取;ArkTS 断点、C/C++ 断点和符号断点至少各走通一次;能安装带符号的测试包,并能将崩溃地址解析到函数;能在测试构建中启用内存错误检测工具;有最小可复现样例,避免第一次排障才发现工具链断裂。把这些步骤写成 checklist,比在出现线上问题后临时找环境高效得多。二、日志要区分“业务线索”和“底层证据”日志并不是越多越好,而是要能跨语言关联。推荐统一以下字段:timestamp | session_id | scene | module | level | event | key_valuesArkTS 日志适合记录页面状态、用户操作、异步任务和业务事件。Native 日志适合记录渲染、性能采样、资源加载、线程状态和底层错误。两侧应共享 session_id 或场景编
HarmonyOS 应用调试与性能预研:日志、Native 调试与问题定位
发布时间:2026/6/30 14:22:49
鸿蒙应用调试与性能预研:把 ArkTS、Native、符号和 Sanitizer 串成一条排障链摘要:鸿蒙应用一旦同时包含 ArkTS 与 C/C++ Native 模块,排障很容易断层:上层知道“功能异常”,Native 侧只有地址,日志和符号又没有统一关联。本文整理一套预研阶段就应建立的调试链路:环境、日志、断点、符号、安装包与 AddressSanitizer。标签:HarmonyOS、ArkTS、C++、LLDB、调试、性能优化一、预研阶段最该验证什么不要把“工程能跑起来”当作调试环境已完成。一个可用于性能和稳定性工作的环境,至少要验证:IDE、SDK、真机和签名链路可用;ArkTS 与 Native 日志都能稳定获取;ArkTS 断点、C/C++ 断点和符号断点至少各走通一次;能安装带符号的测试包,并能将崩溃地址解析到函数;能在测试构建中启用内存错误检测工具;有最小可复现样例,避免第一次排障才发现工具链断裂。把这些步骤写成 checklist,比在出现线上问题后临时找环境高效得多。二、日志要区分“业务线索”和“底层证据”日志并不是越多越好,而是要能跨语言关联。推荐统一以下字段:timestamp | session_id | scene | module | level | event | key_valuesArkTS 日志适合记录页面状态、用户操作、异步任务和业务事件。Native 日志适合记录渲染、性能采样、资源加载、线程状态和底层错误。两侧应共享 session_id 或场景编