如何调试锈病应用步步交互像我能够与红宝石“撬”呢?
我希望能够在达到断点时实时查看并最好实时更改变量。是否有任何生产准备完成的项目?
如何调试锈病应用步步交互像我能够与红宝石“撬”呢?
我希望能够在达到断点时实时查看并最好实时更改变量。是否有任何生产准备完成的项目?
Answers:
launch.json
将打开一个文件,如果没有打开,则将其放在.vscode
文件夹下您launch.json
应该看起来像这样:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceRoot}/target/debug/hello_world",
"args": [],
"cwd": "${workspaceRoot}/target/debug/",
"sourceLanguages": ["rust"]
}
]
}
如果要保持通用性,并且仅编译与cargo文件夹名称匹配的二进制文件,则可以使用$ {workspaceRootFolderName}变量替代“ program”键:
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceRoot}/target/debug/${workspaceRootFolderName}",
"args": [],
"cwd": "${workspaceRoot}/target/debug/",
"sourceLanguages": ["rust"]
}
]
}
这是有关Rust和VS Code的一些博客文章:
Rust编译器生成带有本机调试信息(符号)信息的本机二进制文件,因此任何本机调试器都可以。如果您使用的是Rust的MSVC ABI版本,则意味着gdb
和lldb
,或者Windows调试器(WinDBG或只是Visual Studio)。如果您希望获得集成的体验,则可以使用RustDT(在Windows上进行设置:如何设置GDB以在Windows中调试Rust程序?)。请注意,您可能会在调试MSVC ABI Rust程序时遇到如何检查变量值的问题?在Windows上则为https://github.com/rust-lang/rust/issues/33062(在Mac上)。
gdb 7.12
,现在有了适当的支持,而不仅是“有效,因为它已编译为本机”。
我有gdb 7.11,并且与gdb本机相比,rust-gdb命令似乎提供了更多与rust相关的信息。例如,rust-gdb正确显示了具有全名的rust对象,而gdb根本不显示它们。
在下面的示例中,gdb现在将显示所有粗体部分。
$ 1 = Args = {inner = ArgsOs = {inner = Args = {iter = IntoIter = {buf = NonNull = {pointer = NonZero <* const std :: ffi :: os_str :: OsString> = {0x7ffff6c20060}}},幻影= PhantomData,上限= 1,ptr = 0x7ffff6c20060,结束= 0x7ffff6c20078},_ dont_send_or_sync_me = PhantomData <* mut()> }}}