「这是我参与11月更文挑战的第 8 天,活动详情查看:2021最后一次更文挑战」
最近在学习一些 rust lib 时,需要观察内部的数据转换以及 API 使用,而最好的办法就是在看源码。在学习源码过程中,可以运行过程中 debug 看看流程。
目前 rust-analyzer 在vscode支持比较好,所以本文配置是在vscode完成的。
本文也是为了省未来思考的时间,记录一下配置的步骤
前置准备
需要现在 vscode 安装好以下plugin:
- 安装 rust-analyzer plugin
- 安装 C/C++ plugin(Windows) → DEBUGER
debug+lang上的插件都准备好了,下面需要配置一下 debug 的启动属性
debug config
单击 “调试(Debug)” → “添加配置(Add Configuration)”
在 Windows 上,请选择 C++ (Windows) → 使用的是 GDB 进行调试
会创建一个新的 launch.json
。需要开发者自行修改 program(可执行文件)
1 | json复制代码{ |
当然如果你需要debug多个文件,那需要在 launch.json
配置多项。
然后需要验证一下是否开始 break:
剩下就可以开始添加断点 → 按 F5 开始启动执行。
限制条件
调试Rust的效果很好。它并不完美。基本类型工作良好。当然,前提是它们没有被编译器优化掉。
我发现Rust编译器在优化 “未使用的” 变量时比C++更积极一些。有时我在变量中存储中间值,只是为了调试器。它们的缺失会让人感到迷惑,这点不是很好。
vector的调试就很好。我希望未展开的 “预览”能提供更多信息:
不幸的是,其他的容器根本就不能工作。HashMap是难以辨认的垃圾,很难看清楚。 :(
本文转载自: 掘金