使用 Pernosco 调试 Firefox¶
此页面旨在帮助 Firefox/Gecko 开发人员开始使用 Pernosco 调试 Firefox。
Mozilla 员工拥有 Pernosco 的付费订阅,并鼓励使用它。贡献者也可以使用 Pernosco。 免费账户 提供 5 次上传,以查看它是否适合您的工作流程。
先决条件¶
您需要能够生成
rr
跟踪。请参阅 使用 rr 调试 Firefox员工还可以通过 Treeherder 为某些 CI 作业失败生成 Pernosco 跟踪。
工作流程¶
在高级别,使用 Pernosco 包括记录跟踪,然后上传跟踪进行处理。
安装 Pernosco 配置¶
如果您使用自己的 Pernoso 帐户,请按照 此处 的说明安装您的凭据。
Mozilla 员工,请参阅 Pernosco 安装和配置文档 获取凭据。
通常,您需要
您的电子邮件在
~/.config/pernosco/user
中您的组在
~/.config/pernosco/group
中您的密钥在
~/.config/pernosco/user_secret_key
中
收集本地跟踪¶
通常,要收集跟踪,请按照 使用 rr 调试 Firefox 中记录 rr
跟踪的说明进行操作。但是,要收集与 Pernosco 兼容的本地 rr 跟踪,您需要禁用一些不兼容的 CPU 功能(目前仅限 AVX-512)
在英特尔机器上,您可以在命令行中禁用此功能。为了简化操作,可以创建如下所示的 shell 脚本 pernosco-record
,
#!/bin/bash
rr record --disable-avx-512 "$@"
在命令行中替换纯 rr
(mach --debugger pernosco-record
)
在 AMD Zen 机器上,您可以在启动时禁用 AVX-512 和 5 级页面表。
在 Debian 派生发行版上,这涉及编辑 /etc/default/grub
并将 clearcpuid=304,no5lvl
添加到 GRUB_CMDLINE_LINUX_DEFAULT
中,然后运行 sudo update-grub
。
上传跟踪¶
找到您感兴趣的跟踪 ~/.local/share/rr/<trace>
,并调用 pernosco-submit
pernosco-submit upload ~/.local/share/rr/<trace> PATH_TO_CENTRAL --title "Name Of Trace"
其中 PATH TO CENTRAL
是您构建源代码的路径,检出到与构建匹配的修订版。
最后一个记录的跟踪始终是符号链接,因此您也可以使用 ~/.local/share/rr/latest-trace
。
等待邮件¶
处理跟踪后,您将收到一封包含跟踪链接的电子邮件。祝您狩猎愉快!
Treeherder 工作流程¶
您还可以尝试通过 Treeherder 界面生成跟踪。在合格的失败测试中,在“工件和调试工具”中,您将看到一个链接到
此链接将带您进入自助重现器
选择一个测试和一个计数,以及是否应使用 chaos-mode,然后单击重现。此时需要等待很长时间;页面将在重现开始时使用 alert
对话框通知您。