崩溃事件介绍
概述
崩溃是指应用进程非预期退出。以下两种场景会生成崩溃事件:
- Native代码未处理崩溃异常信号时,会生成崩溃事件。
- Js/ArkTS代码未处理异常时,会生成崩溃事件。
本文面向开发者介绍崩溃事件各字段的含义及规格。如需了解如何使用HiAppEvent接口订阅系统崩溃事件,请参考以下文档。目前提供ArkTs和C/C++两种接口,按需选择。
事件字段说明
params字段说明
崩溃事件信息中params属性的详细描述如下:
| 名称 | 类型 | 说明 |
| time | number | 事件触发时间,单位为毫秒。 |
| crash_type | string | 崩溃类型。支持NativeCrash(native代码异常)和JsError(js代码异常)两种崩溃类型。问题分析请分别参考CppCrash分析指南和JSCrash分析指南。 |
| foreground | boolean | 应用是否处于前台状态。true表示应用处于前台状态;false表示应用处于后台状态。 |
| bundle_version | string | 应用版本。 |
| bundle_name | string | 应用名称。 |
| pid | number | 应用的进程ID。 |
| uid | number | 应用的用户ID。 |
| uuid | string | 根据故障信息生成的故障特征码,用于标识特征相同的崩溃故障。 |
| exception | object | 异常信息, 详见exception字段说明。包含故障简要信息,全量故障信息见external_log文件。 |
| hilog | string[] | 日志信息,最多显示100行hilog日志。更多日志请查看故障日志文件。 |
| threads | object[] | 全量线程调用栈,详见thread字段说明。仅NativeCrash类型的崩溃事件提供。 |
| external_log12+ | string[] | 故障日志文件路径。为避免目录空间超限导致新生成的日志文件写入失败,日志文件处理完后请及时删除,超限规格请参考log_over_limit字段。 |
| log_over_limit12+ | boolean | 生成的故障日志文件与已存在的日志文件总大小是否超过5MB上限。true表示超过上限,日志写入失败;false表示未超过上限。 |
exception字段说明
JsError类型exception字段说明
| 名称 | 类型 | 说明 |
| name | string | 异常类型。 |
| message | string | 异常原因。 |
| stack | string | 异常调用栈。 |
NativeCrash类型exception字段说明
| 名称 | 类型 | 说明 |
| message | string | 异常原因。 |
| signal | object | 信号信息,详见signal字段说明。 |
| thread_name | string | 线程名称。 |
| tid | number | 线程ID。 |
| frames | object[] | 线程调用栈,详见frame字段说明。 |
signal字段说明
信号详细介绍请参考CppCrash分析指南崩溃信号说明。
| 名称 | 类型 | 说明 |
| signo | number | 信号值。 |
| code | number | 信号二级分类。 |
| address | string | 访问出错的地址。 |
thread字段说明
| 名称 | 类型 | 说明 |
| thread_name | string | 线程名称。 |
| tid | number | 线程ID。 |
| frames | object[] | 线程调用栈,详见frame字段说明。 |
frame字段说明
Native帧frame字段说明
| 名称 | 类型 | 说明 |
| file | string | 文件名称。也可能是匿名内存映射,例如 [heap]、[stack] 等。 |
| symbol | string | 函数名称。名称长度超过256字节时将被删除,防止超长字符串引起未知问题。 |
| buildId | string | 文件唯一标识。文件可能没有buildId,请参考CppCrash分析指南崩溃日志内容说明。 |
| pc | string | 在文件内的偏移字节数。 |
| offset | number | 在函数内偏移字节数。 |
Js帧frame字段说明
| 名称 | 类型 | 说明 |
| file | string | 文件名。 |
| packageName | string | 模块包名。 |
| symbol | string | 函数名。 |
| line | number | 异常所在代码行号。 |
| column | number | 异常所在代码列号。 |
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Performance Analysis Kit(性能分析服务)
harmony 鸿蒙分析AppFreeze(应用无响应)
harmony 鸿蒙应用恢复开发指导
harmony 鸿蒙分析CppCrash(进程崩溃)
harmony 鸿蒙错误管理开发指导
harmony 鸿蒙hdc
harmony 鸿蒙事件上报
harmony 鸿蒙HiAppEvent介绍
harmony 鸿蒙订阅踩内存事件(ArkTS)
harmony 鸿蒙订阅踩内存事件(C/C++)