用 Call Graph Analyzer 揪出 Rust 中的 Panic

Finding Panics with Call Graph Analyzer

在 Rust 开发中,彻底消除 Panic 既困难又未必明智,但明确掌握代码中的 Panic 路径至关重要。我们与 Microsoft 合作,在 Open Device Partnership 框架下推出了 Call Graph Analyzer(CGA)。这款工具通过解析 monomorphized MIR 提取调用图,能精准定位编译后二进制文件中可能触发 Panic 的函数。相比依赖 ELF 调试信息或 HIR 分析的传统方案,CGA 能更深入地检测标准库及依赖项中的潜在问题,尤其适用于对代码体积敏感的嵌入式场景和关键服务路径。虽然它依赖特定版本的 rustc 且编译速度稍慢,但能为开发者提供回归分析,防止意外引入新的 Panic 路径。

努力杜绝所有不可恢复的错误条件在实践中极其困难,通常更好的做法是实现顶层恢复机制。

同日更多故事

2026-10-30