崩溃分析、ANR分析、错误分析
崩溃分析、ANR分析、错误分析的查看方式较为相似,本章的1 问题列表、2 问题详情节中将介绍它们通用的查看方法。3 崩溃分析、4 ANR分析节将介绍崩溃 分析和ANR分析的独有功能。
1 问题列表
选择“崩溃分析”/“ANR分析”/“错误分析”页签即可进入对应问题列表。问题列表列举了所有该类型的问题,您可以提供页面上方的输入框来配置筛选,可用的筛选项有版本、上报时间、处理状态、是否关联缺陷单、异常类型、问题处理人、指定版本的新增问题、指定时间段内的新增问题、问题ID或异常名。如果这些筛选条件不能满足您的需求,您可以点击下方的“高级搜索”链接,跳转至高级搜索页来执行更复杂的筛选。
此外,您还可以勾选“开启对比查询”来划定两个筛选范围,并查看它们的补集或交集。
下方的列表显示了所有通过筛选的异常问题。CrashSight会自动将问题分类,列表中每一行代表发生原因相同的一类问题。鼠标移至问题上,单击“快速预览”,即可快速查看该问题的详情。
点击“进入问题详情”,跳转至问题详情。
点击右侧“状态变更”,可以设置问题处理人和问题处理状态。 点击“创建缺陷单“,即可快速提单。此功能需要在缺陷平台管理配置配置完成后才可使用。
点击下方“添加标签”,可为问题添加标签。标签常用于标注问题的某些特征,例如,已知的发生原因(“FD溢出”)、发生问题的范围(“体验服”、“华为专属崩溃”)、发生问题的模块(“libc”、“更新模块”)或者仅仅是一个提示(“紧急!”)。添加的标签可在标签管理中查看和管理。
列表标题栏中提供了“数据下载”按钮,可以将所有问题转换为xlsx表格下载到本地。
1.1 分类规则
CrashSight会将发生原因相同的上报归入一类,这个过程被称为分类。CrashSight进行问题分类的步骤是:
- 判断问题的 每一行堆栈是否为应用堆栈行。
- 从所有堆栈行中,挑出数行作为关键行。挑选关键行时优先应用堆栈行,有时也会将错误消息作为关键行。
- 将拥有相同关键行的问题归入一类。
根据问题类型的不同,判断应用堆栈行的方法,以及挑选关键行的方法是不一样的。以下是具体的方法:
1.1.1 Android Java崩溃、ANR
Android Java崩溃和ANR的判定方法相同。
判断应用堆栈行的方法:
堆栈中包含bundleID,或者堆栈以com.开头但不以android.、java.、dalvik.、javax.、junit.、org.apache.http.、org.json.、org.w3c.、org.xml.、org.xmlpull.、UnityEngine、com.unity3d.开头
挑选关键行的方法: 按堆栈顺序优先取应用行,没有应用行后按顺序取系统行,最多取三行,以及错误消息
1.1.2 Android native崩溃
判断应用堆栈行的方法: 1.堆栈中包含bundleID 2.路径包含/data/data/、app-lib 3.so名字不包含libc.so、libdvm.so、libskia.so、libnvddk_2d_v2.so、libnvwsi.so、libskia.so、libjavacore.so、libc.so、libandroid_runtime.so、app_process且路径不包含/system/且库名包含.so
挑选关键行的方法:
- 无native应用堆栈行、无java应用堆栈行: 4行native堆栈 + 1行java堆栈
- 无native应用堆栈行、有java应用堆栈行: 1行native堆栈 + 3行java应用堆栈
- 有native应用堆栈行: 2行native应用堆栈
- 有native应用堆栈行、第一行java为native方法(包含Native Method): 2行native应用堆栈 + 第一行java堆栈
注:对于Android native崩溃,堆栈行中的地址信息参与分类。
1.1.3 iOS崩溃
判断应用堆栈行的方法:
- 如果进程名不为空,模块名等于进程名视为应用堆栈行
- 如果进程名为空,堆栈不包含main,或者不是最后3行,则视为应用堆栈行
挑选关键行的方法:
- 有大于两行的应用行,则取三行应用行,以及错误消息
- 不足三行应用行且有应用行,则取应用行和应用行的前后堆栈,最多五行,以及错误消息
- 无应用行,取堆栈前的五行,以及错误消息
注:对于iOS崩溃,分类时不考虑堆栈行中的地址信息。
1.1.4 Windows崩溃
判断应用堆栈行的方法:
- 模块路径不包含“windows”或者“system”
挑选关键行的方法:
- 有大于两行的应用行,则取三行应用行,以及异常名
- 不足三行应用行,按堆栈顺序优先取应用行,没有应用行后按顺序取系统行,最多取三行,以及异常名
注:对于Windows崩溃,分类时不考虑堆栈行中的地址信息。
1.1.5 错误
错误的分类不进行应用堆栈行的挑选。
Android错误使用异常消息、异常名以及全部堆栈作为关键行;
iOS错误使用异常名以及全部堆栈作为关键行;
Windows错误使用异常名以及全部堆栈作为关键行。
2 问题详情
问题详情展示了一类问题的详细信息。页面最上方展示了该类问题的问题ID、异常名、首次上报异常消息、首次上报出错堆栈、发生次数以及影响设备数。您还可以在这里变更问题处理状态和快速提单。
2.1 版本信息
第二栏展示了该问题分类的详细信息。“版本信息”列举了各版本发生该问题的情况。
2.2 上报趋势
“上报趋势”按时间展示该问题发生次数和影响设备数。您可以选择特定的版本和时间跨度来进一步分析上报趋势。
2.3 设备信息
“设备信息”根据各类机型指标展示该问题发生的比例。您还可以提供上方的筛选条件框进行进一步搜索。
2.4 用户行为
“用户行为”根据各类用户行为指标展示该问题发生的比例。您还可以提供上方的筛选条件框进行进一步搜索。
2.5 自定义数据
“自定义数据”根据自定义关键字展示该问题发生的比例。为了使用这个功能,您必须先配置自定义字段分析及展示功能。您还可以提供上方的筛选条件框进行进一步搜索。