调试崩溃
崩溃
当应用崩溃时,macOS 会在 ~/Library/Logs/DiagnosticReports
中创建一个 .ips
文件。你可以使用内置的控制台应用(cmd-space Console
)在“崩溃报告”下查看这些文件。
如果你启用了 Zed 的遥测,这些文件会在你重新启动应用时上传给我们。它们最终会进入 Datadog,以及一个 Slack 频道(仅限内部)。
这些崩溃报告是由崩溃的二进制文件生成的,其中包含大量信息;但由于以下几个原因,它们很难阅读
- 它们不包含源文件和行号
- 符号是 混淆 的
- 内联函数被省略
为了更好地了解崩溃的回溯,你可以下载本地 .ips
文件并运行
./script/symbolicate ~/path/zed-XXX-XXX.ips
这将从我们的公共 digital ocean bucket 下载正确的调试符号,并为你运行 symbolicate。
输出包含源文件和行号,以及每个内联帧的去混淆符号信息。
恐慌
当应用在 rust 级别恐慌时,Zed 会在 ~/Library/Logs/Zed
中创建一个文件,其中包含恐慌的文本和回溯摘要。在启动时,如果你启用了遥测,我们会上传这些恐慌,以便我们跟踪它们。
恐慌也被认为是一种崩溃,因此对于大多数恐慌,我们都会同时获得崩溃报告和恐慌。