跳到主要内容

崩溃分析、ANR分析、错误分析

崩溃分析、ANR分析、错误分析的查看方式较为相似,本章的1 问题列表2 问题详情节中将介绍它们通用的查看方法。3 崩溃分析4 ANR分析节将介绍崩溃分析和ANR分析的独有功能。

1 问题列表

选择“崩溃分析”/“ANR分析”/“错误分析”页签即可进入对应问题列表。问题列表列举了所有该类型的问题,您可以提供页面上方的输入框来配置筛选,可用的筛选项有版本、上报时间、处理状态、是否关联缺陷单、异常类型、问题处理人、指定版本的新增问题、指定时间段内的新增问题、问题ID或异常名。如果这些筛选条件不能满足您的需求,您可以点击下方的“高级搜索”链接,跳转至高级搜索页来执行更复杂的筛选。

Alt text

此外,您还可以勾选“开启对比查询”来划定两个筛选范围,并查看它们的补集或交集。

Alt text

下方的列表显示了所有通过筛选的异常问题。CrashSight会自动将问题分类,列表中每一行代表发生原因相同的一类问题。鼠标移至问题上,单击“快速预览”,即可快速查看该问题的详情。

Alt text

点击“进入问题详情”,跳转至问题详情

Alt text

点击右侧“状态变更”,可以设置问题处理人和问题处理状态。 点击“创建缺陷单“,即可快速提单。此功能需要在缺陷平台管理配置配置完成后才可使用。

Alt text

点击下方“添加标签”,可为问题添加标签。标签常用于标注问题的某些特征,例如,已知的发生原因(“FD溢出”)、发生问题的范围(“体验服”、“华为专属崩溃”)、发生问题的模块(“libc”、“更新模块”)或者仅仅是一个提示(“紧急!”)。添加的标签可在标签管理中查看和管理。

Alt text

列表标题栏中提供了“数据下载”按钮,可以将所有问题转换为xlsx表格下载到本地。

Alt text

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

挑选关键行的方法:

  1. 无native应用堆栈行、无java应用堆栈行: 4行native堆栈 + 1行java堆栈
  2. 无native应用堆栈行、有java应用堆栈行: 1行native堆栈 + 3行java应用堆栈
  3. 有native应用堆栈行: 2行native应用堆栈
  4. 有native应用堆栈行、第一行java为native方法(包含Native Method): 2行native应用堆栈 + 第一行java堆栈

注:对于Android native崩溃,堆栈行中的地址信息参与分类。

1.1.3 iOS崩溃

判断应用堆栈行的方法:

  1. 如果进程名不为空,模块名等于进程名视为应用堆栈行
  2. 如果进程名为空,堆栈不包含main,或者不是最后3行,则视为应用堆栈行

挑选关键行的方法:

  1. 有大于两行的应用行,则取三行应用行,以及错误消息
  2. 不足三行应用行且有应用行,则取应用行和应用行的前后堆栈,最多五行,以及错误消息
  3. 无应用行,取堆栈前的五行,以及错误消息

注:对于iOS崩溃,分类时不考虑堆栈行中的地址信息。

1.1.4 Windows崩溃

判断应用堆栈行的方法:

  1. 模块路径不包含“windows”或者“system”

挑选关键行的方法:

  1. 有大于两行的应用行,则取三行应用行,以及异常名
  2. 不足三行应用行,按堆栈顺序优先取应用行,没有应用行后按顺序取系统行,最多取三行,以及异常名

注:对于Windows崩溃,分类时不考虑堆栈行中的地址信息。

1.1.5 错误

错误的分类不进行应用堆栈行的挑选。
Android错误使用异常消息、异常名以及全部堆栈作为关键行;
iOS错误使用异常名以及全部堆栈作为关键行;
Windows错误使用异常名以及全部堆栈作为关键行。

2 问题详情

问题详情展示了一类问题的详细信息。页面最上方展示了该类问题的问题ID、异常名、首次上报异常消息、首次上报出错堆栈、发生次数以及影响设备数。您还可以在这里变更问题处理状态和快速提单。

Alt text

2.1 版本信息

第二栏展示了该问题分类的详细信息。“版本信息”列举了各版本发生该问题的情况。

Alt text

2.2 上报趋势

“上报趋势”按时间展示该问题发生次数和影响设备数。您可以选择特定的版本和时间跨度来进一步分析上报趋势。

Alt text

2.3 设备信息

“设备信息”根据各类机型指标展示该问题发生的比例。您还可以提供上方的筛选条件框进行进一步搜索。

Alt text

2.4 用户行为

“用户行为”根据各类用户行为指标展示该问题发生的比例。您还可以提供上方的筛选条件框进行进一步搜索。

Alt text

2.5 自定义数据

“自定义数据”根据自定义关键字展示该问题发生的比例。为了使用这个功能,您必须先配置自定义字段分析及展示功能。您还可以提供上方的筛选条件框进行进一步搜索。

Alt text

2.6 上报详情

上报详情区域默认展示最近一次上报的详细信息。如果您需要查看更多上报的详细信息,可以点击“查看更多记录”。

Alt text

“复制本条上报的链接”可用于将本条上报分享给项目成员。如果您需要将上报信息分享给非项目成员,可以使用“生成匿名访问链接”,该链接不会暴露您项目的其它信息。

Alt text

2.7 出错堆栈

“出错堆栈”选项卡展示了问题的出错堆栈。通常情况下,native崩溃堆栈需要使用符号表进行还原,上传符号表请参考符号表使用处理相关说明。新上报的崩溃会自动开始还原,如果您在崩溃上报后才补充上传了符号表,请点击“重试还原堆栈”来手动触发还原。

Alt text

2.8 跟踪数据

“跟踪数据”展示了当前问题的一些详细数据,它包含如下部分:
(1)“基础数据”包含了设备的一些状态参数。

Alt text

(2)“自定义数据”是由您配置的键值对,配置方法可参考添加自定义数据(unity)添加自定义数据(unreal)。您还可以在此处点击“固定展示”将它们设置快捷展示字段,这样它们就能直接显示在上报详情区域。

Alt text

Alt text

(3)“页面跟踪”展示了应用的页面切换情况。

Alt text

2.9 跟踪日志

“跟踪日志”中显示了系统日志和用户自定义日志。切换到“System Log”时,显示的是系统日志,由于系统限制,此功能仅Android端可用。

Alt text

切换到“Custom Log”时,显示的是用户自定义日志。您可用参考添加自定义日志(unity)添加自定义日志(unreal)来使用此功能。

Alt text

2.10 同设备/用户最近上报

“同设备/用户最近上报”展示了当前发生问题的设备或用户在3天内的所有上报,您可以据此分析特定用户或设备的行为。

Alt text

3 崩溃分析

3.1 问题重分类预览

“问题重分类预览”提供了问题重新分类的功能。CrashSight默认以堆栈前两行作为问题分类依据,如果您对CrashSight的自动问题分类不满意,您可以在这个选项卡中配置需要跳过的堆栈关键词,以及参与问题分类的堆栈行数,通过调整这些参数来实现更精确的分类。

Alt text

3.2 符号表

“符号表”显示了当前崩溃的堆栈还原需要使用的符号表,您可以查看符号表对应的模块名,以及它们的上传状态。"

Alt text

3.3 崩溃线程寄存器信息

“崩溃线程寄存器信息”显示了崩溃发生时,崩溃线程的寄存器的值。

Alt text

3.4 加载模块信息

“加载模块信息”显示了崩溃发生时,各加载段的信息。

Alt text

3.5 FD信息

“FD信息”显示了崩溃发生时使用的FD信息。FD已进行分类,您可以查看各类FD的占比。此功能仅Android可用,需要CrashSight SDK 4.2.17或以上版本,使用时请咨询CrashSight开发组。

Alt text

4 ANR分析

4.1 ANR Message

此处展示了CrashSight收集到的ANR Message。

Alt text

4.2 ANR Trace

此处展示了ANR发生时dump的堆栈信息。

Alt text