Windows下使用GDB + VS Code调试Rust程序

Posted 跨链技术践行者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows下使用GDB + VS Code调试Rust程序相关的知识,希望对你有一定的参考价值。

在Windows下调试Rust程序,我就在这里写个简单的指南(以Rust 1.10为例)。

本文参考Stackoverflow
http://stackoverflow.com/questions/33570021/how-to-set-up-gdb-for-debugging-rust-programs-in-windows

Rust目前支持使用LLDB和GDB调试(貌似LLVM工具链越来越受欢迎),可惜LLDB目前没有Windows版(后面会有的,耐心等待),所以在Windows下调试Rust程序,你需要GDB。

一、下载GDB
使用TDM-GCC的GDB(需要支持Python扩展,MinGW64的GDB貌似不支持)
https://sourceforge.net/projects/tdm-gcc/files/GDB/
我是64位系统,所以下载的是GDB64,32位的请下载GDB32

二、解压GDB
压缩包里有bin、gdb64、share,直接解压到Rust安装目录(我的是D:\\Programming\\Rust,下面以此为例)。

三、配置rust-gdb
下载rust源代码,将src目录下的etc目录解压到D:\\Programming\\Rust\\lib\\rustlib目录下。
修改D:\\Programming\\Rust\\gdb64\\bin目录下的gdbinit,将下面代码加入gdbini末尾:
python
print "---- Loading Rust pretty-printers ----"

sys.path.insert(0, "D:/Programming/Rust/lib/rustlib/etc")
import gdb_rust_pretty_printing
gdb_rust_pretty_printing.register_printers(gdb)

end

四、测试
执行gdb,如果没有什么错误且输出:
---- Loading Rust pretty-printers ----
说明gdb配置好了。

五、使用gdb
写一个hello world:
notepad hello.rs
rustc -g hello.rs
gdb hello.exe
 

命令行实用GDB调试Rust程序




六、配置VS Code
安装Native Debug插件(https://marketplace.visualstudio.com/items?itemName=webfreak.debug
ext install debug

用Cargo创建一个工程
cargo hello --bin

用VS Code打开该工程,然后点击左侧面板上的调试按钮,调试配置中类型选择GDB。
然后修改Native Debug插件生成的launch.json文件,将target指向Debug版本的exe程序。launch.json文件大致如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "gdb",
"request": "launch",
"target": "./target/debug/hello.exe",
"cwd": "${workspaceRoot}"
}
]
}

然后在源文件中设断点,开始调试吧。
 

最终界面

以上是关于Windows下使用GDB + VS Code调试Rust程序的主要内容,如果未能解决你的问题,请参考以下文章

code::blocks 如何打断点

VS Code GD调试嵌入式Linux程序无法断点调试

如何用vs code调试运行c语言程序

在 Windows 10 上使用 VS Code 在 iphone 上调试颤振

使用 GDB 在 Windows 下调试 DLL

如何使用带有 eigen 数学库的 gdb 进行调试