我正在尝试使用 VSCode 调试 Rust 应用程序,但无法检查任何局部变量或使用监视窗口(请参阅附件)。
所有断点都工作正常,我只是无法查看任何变量等。
LLDB 是 VSCODE 插件中显示的内容,但是当我从终端执行
lldb --version
时,它显示:lldb version 3.8.0 ( revision )
。
从终端启动 lldb 时没有出现任何错误。 调试时所有断点都被命中,我只是看不到任何变量值。
为了完整起见,我将 python 脚本支持验证为先决条件,列于: https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb
**
python-lldb-3.8已经是最新版本了
**
正确的解决方案是安装LLDB 3.9。我现在可以检查局部变量、使用监视窗口并通过工具提示查看值。
步骤如下:
sudo apt-get install python-lldb-3.9
llvm-3.9
(而不仅仅是 llvm
),那么 VSCode 可能无法识别它并抱怨未安装或支持 LLVM。 我的解决方案(您的可能会有所不同)是删除然后重新安装 VSCode 扩展“LLDB Debugger 0.7.3”和“Native Debug 0.21.2”完成此操作并重新启动 VSCode 后,我开始使用 F5 进行调试,然后 VSCode 向我发出警报,指出发现了不同的 LLDB (3.9) 并要求更新到新的可执行文件 - 说“是”,您就可以开始了。
结果:
lldb 并不“真正”支持 Rust。 它使用 C++ 类型系统来支持 Rust 类型,并使用 C++ 表达式解析器来处理表达式。 因此,虽然简单的事情应该可以工作,但“rust as C++”并不能很好地支持更复杂的语言功能。
可以将 clang 前端不直接支持的语言添加到 lldb 中(例如,请参阅 Go 和 OCaml 支持)。
Tom Tromey 正在为 lldb 开发一个实际的 Rust 端口,请参阅:https://archive.fosdem.org/2018/schedule/event/rustdebug/ 例如,他在其中讨论了这个项目。 他还没有将结果提交到主线 lldb,但是如果有人对 lldb 中的 Rust 调试感兴趣的话,可以在 https://github.com/rust-lang-nursery/lldb/commits/rust 获取他的分支一只手。
这适用于 Windows 用户。
首先,您尝试切换到 GNU 工具链
rustup install stable-x86_64-pc-windows-gnu
rustup default stable-x86_64-pc-windows-gnu
当您cargo build时,您很快就会遇到错误,例如:
C:/gcc/bin/../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgcc_eh: No such file or directory
collect2.exe: error: ld returned 1 exit status
取决于您在 Cargo.toml 中包含的内容,您可能会遇到更多错误。
修复:
选项 1. 您可以恢复到 MSVC 工具链:
rustup default stable-x86_64-pc-windows-msvc
但是,您会回到第一个方向:您在 VSCode 监视窗口中看到的内容仍然是乱码
选项 2. 安装 Cygwin
https://www.mingw-w64.org/downloads/
添加C