崩溃报告搜索指南

注意

请阅读关于单个崩溃报告的文档,然后再阅读此页面。

Mozilla 的 crash-stats 网站提供了调查大量 Firefox 崩溃报告 的工具。本崩溃报告搜索指南可以帮助您找到有助于发现和修复您正在处理的 Firefox bug 的崩溃报告。

具体来说,crash-stats 提供了两个基本功能

搜索

您可以根据 100 多个条件搜索崩溃报告数据库:崩溃签名、日期、平台、产品、版本等。

分组

您可以使用相同的条件将每次搜索的结果聚类到组中。

要充分发挥其强大功能和灵活性,需要充分了解这两个功能。搜索很容易理解,但分组功能很容易被忽视。

搜索

搜索表单

您可以通过点击 crash-stats 中任何页面顶部的工具栏右侧的“超级搜索”链接,访问 搜索页面。这将显示一个类似于以下屏幕截图中的搜索表单。

Search in crash-stats

提供了四个常见搜索条件的字段:产品、版本、平台和进程类型。产品字段预填充了“Firefox”,因为这是一种常见情况。如说明文字所述,默认日期范围是过去一周。

默认搜索:签名方面

如果您点击“搜索”按钮,您将获得 结果,类似于以下屏幕截图中的结果。

Results of a default search in crash-stats

默认情况下,会选中“签名方面”选项卡。(“方面”一词表示“组”。)在这些结果中,找到的崩溃报告根据崩溃签名进行分组,并按组大小进行排序。列显示每个组的排名、签名、大小(计数和匹配崩溃报告的比例),最后是已标记为与该签名相关的 Bug 列表。

数字很大,因为此搜索匹配了过去七天中的所有 Firefox 崩溃报告。第一个组有超过 100,000 个崩溃报告,占所有匹配崩溃的 7.77%。这表明有超过 130 万个崩溃报告与本次搜索匹配。

您可以通过点击列标题以各种方式重新排序组。结果中的链接执行以下操作。

  • 每个“签名”列单元格中的第一个链接指向签名报告,其中包含有关具有该签名的崩溃报告的其他详细信息。

  • 每个“签名”列单元格中的“添加术语”链接允许您在具有该签名的崩溃报告中执行更窄的后续搜索。

  • 每个“Bug”列单元格中的链接指向 Bugzilla 中的 Bug 报告。

默认搜索:崩溃报告

如果您切换到“崩溃报告”选项卡,您将看到 结果,类似于以下屏幕截图中的结果。

Results of a default search in crash-stats (crash reports tab)

这是与搜索条件匹配的所有单个崩溃报告的列表。如果匹配项数量很大——在本例中超过 130 万,正如我们在“签名方面”选项卡中看到的那样——结果将分布在多个页面上,您可以通过点击选项卡右上角的链接访问这些页面。

结果中的链接执行以下操作。

  • 每个“崩溃 ID”列单元格中的链接指向单个崩溃报告。

  • 每个“签名”列单元格中的链接与我们在“签名方面”选项卡中看到的链接具有相同的效果。

  • 其余列单元格中的链接还允许您在将该链接的值添加到搜索条件后执行更窄的后续搜索。

原型签名

“原型签名”字段只是串联在一起的原始未处理崩溃堆栈。

您可以执行以下操作,例如

  • 搜索签名为 Foo 且原型签名包含 Bar 的崩溃。如果您有一个相当通用的签名,并且想要查看其中有多少是您遇到的特定情况,这将很有帮助。或者,代替签名 Foo,使用 moz 崩溃原因或其他内容。

  • 将其用作方面。这允许您快速浏览崩溃的完整签名,并将其稍微归类在一起。请注意,由于原型签名包含整个签名,因此事物不会很好地分组。

分组

在上一节中,我们看到了一个分组示例,即默认显示的“签名方面”选项卡。但是,还有许多其他有趣的分组方式。

搜索表单中的方面

要进行非签名分组搜索,首先点击“更多选项...”文本,这将显示以下屏幕截图中显示的其他字段。

crash-stats Super Search form with different facets

(“显示列”和“按排序”字段很简单。它们适用于任何搜索结果的“崩溃报告”选项卡,并且与分组无关。)

“方面”字段是控制分组的字段。默认情况下,它包含值“签名”,这解释了为什么我们在之前的搜索结果中看到了“签名方面”选项卡。但是,我们可以更改此字段中的值,并在搜索结果中获得不同的方面选项卡。

按平台分组

例如,如果我们从过去一周所有 Firefox 崩溃的默认搜索开始,然后用“平台”和“moz 崩溃原因”替换“签名”方面,我们将获得具有两个方面选项卡的搜索结果。第一个是“平台方面”选项卡,其中 结果 类似于以下屏幕截图中的结果。

Results of a faceted search in crash-stats

除了“Bug”列之外,它与我们之前看到的“签名方面”选项卡具有相同的列,因为这是一个仅适用于签名方面的特殊列。此选项卡显示了各种平台上崩溃报告的分布情况。崩溃报告始终包含平台字段(即使在出现问题时可能为空),因此百分比总和为 100。

按“moz 崩溃原因”分组

第二个方面选项卡是“Moz 崩溃原因方面”选项卡,其中 结果 类似于以下屏幕截图中的结果。

Results of a faceted search in crash-stats (moz crash reason tab)

这立即显示了用户频繁触发的 MOZ_CRASH 调用。只有一部分崩溃报告具有“moz 崩溃原因”字段——那些由于命中 MOZ_CRASH 调用而崩溃的报告——因此所有缺少该字段的崩溃都将从该选项卡中省略。因此,百分比之和不等于 100。

不太有用的分组示例

分组的有用性因字段而异。特别是,可以具有许多可能值的字段(例如数字字段)通常不会很好地分组。例如,如果我们按正常运行时间对默认搜索进行分组,我们将获得 结果,类似于以下屏幕截图中的结果。

Results of a faceted search in crash-stats (uptime)

在此示例中,前 10 个组占所有崩溃的不到 12%,并且存在极长的尾部。通过使用数字范围而不是单个值可以改进这些结果,但不幸的是,不支持这样做。

高级用法

搜索和分组的组合功能强大。搜索查找与特定条件匹配的崩溃报告,而分组将这些崩溃报告组织成有趣的组。

执行搜索时,页面的 URL 会更新以包含搜索参数。这意味着可以通过复制和粘贴页面的 URL 轻松共享任何搜索的结果。

要成为搜索和分组方面的专家,需要了解可用于搜索和分组的 100 多个字段的全部范围。了解它们的一种方法是阅读大量单个崩溃报告;请注意,单个崩溃报告的“详细信息”选项卡中显示的所有字段都带有工具提示,指示其搜索键。或者,您可以浏览 完整列表

此外,还提供了一个 API,可以通过编程方式执行搜索。有关完整详细信息,请参阅API 文档;请注意,它使用术语“聚合”来表示分组/分面。