# 了解崩溃和异常报告

> Learn how to view, filter, and interpret crash and exception reports in the Cloud Diagnostics Dashboard.

​崩溃和异常报告功能会捕获问题数据并将其显示在 [Unity Dashboard（Unity 后台）](http://dashboard.unity3d.com/)的 **Cloud Diagnostics** > \*\*Crash and Exception Reporting（崩溃和异常报告）\*\*部分中。

崩溃和异常报告显示崩溃线程的原生 stack trace。如果崩溃是由未捕获的托管异常引起的，报告还会显示异常发生的托管 stack trace，以及原生堆栈跟踪。

崩溃和异常报告捕获的问题类型包括：

* **原生崩溃**：原生崩溃报告会捕获应用程序停止响应时的 stack trace 和其他元数据。在大多数情况下，这是由应用程序的原生（通常为 C++）层的故障引起的。

* **托管异常**：托管异常报告会捕获应用程序因托管（通常为 C#）层发生未处理异常而停止响应时的 stack trace 和其他元数据。

崩溃和异常报告功能会将一个问题的各个报告汇总为一个问题报告。您可以在 Dashboard（后台）的 Occurrence（出现概率）视图中查看这些崩溃和异常发生的频率。

要查看崩溃和异常报告，请从 Unity 编辑器的 Cloud Diagnostics 面板中打开 Dashboard（后台），或者从浏览器窗口中登录 [Unity Dashboard（Unity 后台）](http://dashboard.unity3d.com/)。

要从编辑器访问崩溃和异常报告，请执行以下操作：

1. 在 Unity 编辑器中打开您的项目。
2. 从菜单栏中，选择 **Window（窗口）**> **General（常规）**> **Services（服务）**。
3. 从 Services（服务）窗口中，选择 **Cloud Diagnostics**。
4. 在 Cloud Diagnostics 面板上，选择 **Go to Dashboard**。
5. 从主导航菜单中，选择 **DevOps** > **Cloud Diagnostics** > **Crash and Exception Reporting（崩溃和异常报告）**。

要从 Dashboard（后台）访问崩溃和异常报告，请执行以下操作：

1. 从浏览器中登录 [Unity Dashboard（Unity 后台）](http://dashboard.unity3d.com/)。
2. 从顶部导航菜单的项目选择器中选择连接到 Cloud Diagnostics 的项目。
3. 指定项目后，从主导航菜单中，转到 **Cloud Diagnostics** > **Crash and Exception reports（崩溃和异常报告）**。


**Frame:**
![](/api/media?file=/cloud-diagnostics/media/images/crashand-exceptionpage.png)

## 了解崩溃和异常报告页面##understanding-the-crash-and-exception-reports-page

Crash and Exception Reporting（崩溃和异常报告）页面包括以下三个主要部分：

1. 概述和过滤器
2. 出现概率图
3. 问题列表

### 概述和过滤器##overview-and-filters

在 Crash and Exception Reporting（崩溃和异常报告）页面顶部，可以查看报告概述和各种过滤选项。

页面顶部的报告总计显示了过去一天内生成的报告数量以及您帐户的报告使用情况。如果您需要更高的报告限额，请升级到 Unity Pro 或 Plus，或者联系支持团队。在此概述中，可以通过 **Total native crashes（总原生崩溃）**、\*\*Impacted users（受影响的用户）\*\*和 \*\*Total exceptions counts（总异常技术）\*\*来快速了解相关情况。

您可以过滤报告来集中关注特定类型的问题。您所选过滤器的结果会显示在出现概率图和问题列表中。您可以打开 \*\*Add filter（添加过滤器）\*\*下拉菜单，从一组预选过滤器中进行选择，然后应用函数和值。


**Frame:**
![](/api/media?file=/cloud-diagnostics/media/images/crashand-exceptionpageoverview.png)

要应用过滤器，请执行以下操作：

1. 选择 \*\*Add filter（添加过滤器）\*\*按钮。
2. 选择过滤器类型。如果过滤器需要函数和值，则会打开另一个下拉菜单。
3. 如果适用，指定 **function（函数）**（\*\*equals（等于）\*\*或 **does not equal（不等于）**）和 \*\*value（值）\*\*以应用过滤器。
4. 选择 \*\*Apply（应用）\*\*以应用过滤器。

要移除过滤器，请选择相应过滤器类型旁边的 **x**。

### 出现概率图##occurrences-graph

出现概率图显示一段时间内的问题计数。您可以根据预定义的时间段进行过滤，从 12 小时到 7 天（适用于 Cloud Diagnostics），或者 90 天（适用于 Advanced Cloud Diagnostics）。要指定日期范围，请选择报告周期下拉菜单，然后选择要显示的时间或日期范围。

从出现概率图中，您还可以选择删除报告。如果报告的问题已经解决并且不再需要在 Dashboard（后台）中看到相关问题，则可以使用此功能。


**Frame:**
![](/api/media?file=/cloud-diagnostics/media/images/occurencesgraph.png)

### 问题列表##problems-list

问题列表显示按各类型报告总数排序的问题报告列表。要查看报告详细信息，请选择相应的报告名称。


**Frame:**
![](/api/media?file=/cloud-diagnostics/media/images/problemslist.png)

## 了解问题报告详细信息##understanding-problem-report-details

要查看特定问题报告的详细信息，请从问题列表中选择相应的报告。选择之后将打开问题详细信息页面，其中显示了所选报告的具体细节。

问题报告详细信息页面的顶部部分显示所选报告的摘要，其中包括 ID、问题消息、类型和受影响的用户。

问题报告详细信息页面的中间部分显示一段时间内的出现概率汇总数据，以及受影响的操作系统、应用程序版本和设备型号。


**Frame:**
![](/api/media?file=/cloud-diagnostics/media/images/problemreportdetails.png)

底部部分显示各个问题报告，其中包括问题报告的标题以及所选崩溃或异常报告发生的日期和时间。

问题报告详细信息页面的底部包括以下选项卡：

* **Stack trace**：包含您正在查看的特定问题报告的 stack trace。Stack trace 可以帮助您确定代码中发生问题的位置。
* **Metadata（元数据）**：包含发生问题的设备的设备特有元数据。在这里，您还可以查看您可能在代码中定义的自定义元数据。要设置自定义元数据，请使用 [CrashReportHandler.SetUserMetadata](https://docs.unity3d.com/Documentation/ScriptReference/CrashReportHandler.CrashReportHandler.SetUserMetadata.html) 方法。
* **Logs（日志）**：包含您使用 [Debug](https://docs.unity3d.com/ScriptReference/Debug.html) 类中 Log 方法输出的日志消息。日志消息包括消息类型、日期和时间、发生的帧以及消息内容。默认捕获的日志消息数量为 10 条，您可以使用 [CrashReportHandler.logBufferSize](https://docs.unity3d.com/Documentation/ScriptReference/CrashReportHandler.CrashReportHandler.html) 方法重新配置为捕获 0 到 50 条消息。

以 JSON 格式下载特定问题报告的数据。要下载报告，请在问题详细信息页面的底部选择 **JSON** 按钮。


**Frame:**
![](/api/media?file=/cloud-diagnostics/media/images/problemreportdetailsbottom.png)

## 后续工作##whats-next

现在您已经设置并了解了崩溃和异常报告，接下来了解如何添加[调试符号](../debugging-symbols/about-debugging-symbols)以进一步识别问题。
