Mat*_*ias 7 debugging rust visual-studio-code
在 VS Code 中调试 Rust 代码时,导航变量对象的所有嵌套对象臂既困难又耗时。
是否可以使用更易读的变量内容表示形式,例如调试期间将光标悬停在 IDE 中的变量上时显示的内容?
例如,查看"b"String 变量的内容ident会在 Visual Studio Code 中显示,如下所示:
如果能够像 C# 中的调试器显示属性那样看到更简洁的内容缩略图,那就太好了。
我不喜欢println!调试:p
使用 GDB 或 LLDB 作为调试引擎有区别吗?
作为另一个例子,类型变量Symbol
pub struct Symbol {
pub ident: String,
pub childs: Vec<Symbol>,
pub depth: u32,
pub fixed: bool,
}
Run Code Online (Sandbox Code Playgroud)
在 VS Code 调试器中显示如下:
fmt::Debug是为了该结构返回而实现的A(a),而不是{depth:2, fixed:true}如图所示。
在 Microsoft 世界中,MSVC 支持natvis - Rust 源代码已经使用的相当进化的 CPP 标准 - 请参阅src/etc/natvis。AFAIK,natvis 文件链接到 .pdb 文件,因此它们可能无法在非 pdb 平台上使用(未经证实)。
Rust 社区中有一个关于如何处理 natvis 的pre-RFC讨论。
当与 LLDB 调试器一起使用时, JetBrain 的 CLion 有一些natvis 支持(博客),不确定它是否也适用于 Rust。
就我个人而言,我希望它能够超越 Microsoft 独有的工具链,并且能够可视化复杂类型 - 就像DebuggerTypeProxy适用于复杂 C# 对象的方式。natvis似乎是朝这个方向迈出的一步。
| 归档时间: |
|
| 查看次数: |
822 次 |
| 最近记录: |