如何在调试MSVC ABI Rust程序时检查变量值?

时间:2016-04-14 11:01:20

标签: debugging rust pdb-files

我已经下载了Rust 1.7.0的MSVC ABI版本,并按照文档中的猜谜游戏部分进行了操作。

我注意到构建使用本机工具链(在我的情况下是Visual Studio 2015 Update 2),因此生成本机调试器可以使用的本机PDB(调试符号),例如WinDBG,CDB或Visual Studio调试器。我可以轻松设置断点,步入标准库源等等。

我不能做的是检查变量值。无论使用何种调试器,“本地人”显示都是空的。

从我可以收集的内容来看,Visual Rust / RustDT IDE在使用GDB或LLDB作为后端时显示本地,而不是本机Windows调试引擎。我不完全确定我是否可以使用它们来调试为MSVC ABI编译的Rust程序(使用PDB等)。

如果我想获得必要的调试经验,我唯一的选择是切换到GNU ABI?除此之外,是否有一种从原始调试工具(寄存器,存储器映射)映射到Rust符号(变量值)的简单方法?

1 个答案:

答案 0 :(得分:3)

功能在实施之前不存在。 Rust建立在LLVM和full PDB support has only recently been considered for LLVM之上。目前,LLVM仅支持有限的PDB,其限制在Clang project's MSVC compatibility page上有最佳描述。在我看来,最好等到有支持,尽管已经实现了其他编程语言interesting workarounds