HarmonyOS鸿蒙Next中崩溃时,看不到崩溃栈和崩溃原因
HarmonyOS鸿蒙Next中崩溃时,看不到崩溃栈和崩溃原因 启动崩溃等情况下,faultlog中,看不到崩溃堆栈,全是cpp的crash,如何查看崩溃的日志来定位问题
崩溃日志获取可以通过如下几个方式获取,尝试如下几种发送可否获取到崩溃的堆栈信息, 可以进行参考:
一.通过shell获取日志
二.通过DevEco Studio获取日志 DevEco Studio会收集设备/data/log/faultlog/faultlogger/路径下的进程崩溃故障日志到FaultLog下面,根据进程名和故障和时间分类显示。点击ide下方log->FaultLog,窗口左侧异常列表,选择点击会显示当前报错信息和堆栈信息。
1和2的相关链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-faultlogger-V5
三.通过faultlogger接口获取 相关链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-faultlogger-V5
四. hiAppEvent.addWatcher 方法监听appcrash 相关链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-hiviewdfx-hiappevent-V5
五.应用想要捕获js crash,可以使用@ohos.app.ability.errorManager (ErrorManager)。
ErrorManager模块提供对错误观察器的注册和注销的能力。https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-app-ability-errormanager-V5
1、当出现奔溃堆栈时,当出现崩溃现象时,系统会生成对应的崩溃日志文件,这里的日志文件包含3类:hilog日志、cppcrash日志、asan日志。
hilog/FaultLog日志:/data/log/hilog 日志文件包含设备全量日志,日志范围最全面,可以分析崩溃前后的系统动作。 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-fault-log-V5
cppcrash日志:/data/log/faultlog/faultlogger 日志在每次崩溃后会生成一个日志文件,里面记录了崩溃栈信息,可以工具【堆栈轨迹分析】工具获得代码行分析代码:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-release-app-stack-analysis-V5。 也可以使用SDK中携带的llvm-addr2line通过命令行进行反解。
asan日志路径:/data/log/faultlog/faultlogger 如果涉及C++代码,想追踪可开启asan,参考https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-asan-V5
可以将生成的日志保存在本地后用文本编辑器查看,或者直接在DevEco上查看:
2、崩溃测试,需要DevEco Testing,获取地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-tools/download-0000001822993593#section6862181916442。 详细使用见工具指导。可参考步骤: 点击稳定性测试栏下的Wukong稳定性测试进入测试任务创建页面,在任务创建页面选择好测试时长和应用包名后即可开启自动测试
更多关于HarmonyOS鸿蒙Next中崩溃时,看不到崩溃栈和崩溃原因的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,如果崩溃时看不到崩溃栈和崩溃原因,可能是由于以下原因导致的:
-
日志级别设置问题:系统的日志级别可能被设置为较低,导致崩溃信息未被记录。可以通过调整日志级别来捕获更多信息。
-
崩溃处理机制:鸿蒙Next可能采用了不同于传统的崩溃处理机制,导致崩溃信息未被直接输出。可以检查系统提供的崩溃捕获工具或API,确保正确配置。
-
调试信息未启用:在发布版本中,调试信息可能被默认关闭,导致崩溃栈和原因无法查看。确保在开发或测试环境中启用了调试信息。
-
第三方库或框架干扰:某些第三方库或框架可能会干扰崩溃信息的捕获和输出。检查是否有第三方库或框架与系统的崩溃处理机制冲突。
-
系统资源限制:在资源受限的设备上,系统可能无法完整记录崩溃信息。确保设备有足够的资源来记录和处理崩溃信息。
-
版本差异:不同版本的鸿蒙Next可能在崩溃处理机制上存在差异。确保使用的是最新版本,并查看相关文档了解具体变化。
-
权限问题:某些崩溃信息可能受到权限限制,无法被访问或记录。检查相关权限设置,确保有足够的权限来捕获崩溃信息。
通过以上步骤,可以排查和解决鸿蒙Next中崩溃时看不到崩溃栈和崩溃原因的问题。
在HarmonyOS鸿蒙Next中,如果崩溃时看不到崩溃栈和原因,可能是日志级别设置过低或日志输出被关闭。建议检查以下步骤:
- 日志级别:确保日志级别设置为
DEBUG或INFO,以便捕获详细日志。 - 日志输出:确认日志输出未被禁用,检查相关配置如
hilog的输出设置。 - 调试工具:使用DevEco Studio的调试工具,可以实时查看崩溃信息。
- 异常捕获:在代码中添加全局异常捕获机制,记录未捕获的异常。
通过这些步骤,可以有效定位和解决崩溃问题。

