我怎样才能像在Ruby中使用“pry”一样,一步一步地交互地调试Rust应用程序?我希望能够看到,最好是改变变量在真实的当我达到一个转折点。有任何生产准备完成的项目?
6xfqseft1#
我发现VS Code和CodeLLDB扩展具有很好的可用性:
launch.json
.vscode
{ // 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"] } ] }
1.如果您希望保持通用性,并且只编译与货物文件夹名称匹配的二进制文件,则可以使用${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代码的博客文章:
uxhixvfz2#
Rust编译器生成带有原生调试信息(符号)的原生二进制文件,因此任何原生调试器都可以。这意味着gdb和lldb,或者Windows调试器(WinDBG或Visual Studio)(如果您使用的是MSVC ABI版本的Rust)。如果您想要获得集成体验,RustDT是可行之道(在Windows上设置:如何在Windows中设置GDB来调试Rust程序?).请注意,您很可能会在Windows中遇到How can I inspect variable values while debugging MSVC ABI Rust programs?,在Mac中遇到https://github.com/rust-lang/rust/issues/33062。
gdb
lldb
14ifxucb3#
对于图形调试器,有gdbgui。它可用于Linux、Windows和MacOS。它使用浏览器作为显示器并与调试器交互。
piah890a4#
我有gdb 7.11,rust-gdb命令似乎比gdb本地命令给予了更多与rust相关的信息。例如,rust-gdb正确地显示了rust对象的全名,而gdb只是不显示它们。在下面的例子中,gdb将显示在所有的粗体部分。
gdb 7.11
rust-gdb
$1 = Args = { inner = **ArgsOs** = { inner = **Args** = { iter = **IntoIter<std::ffi::os_str::OsString>** = { buf = **NonNull<std::ffi::os_str::OsString>** = { pointer = **NonZero<*const std::ffi::os_str::OsString>** = { 0x7ffff6c20060 } }, phantom = **PhantomData<std::ffi::os_str::OsString>**, cap = 1, ptr = 0x7ffff6c20060, end = 0x7ffff6c20078}, _dont_send_or_sync_me = **PhantomData<*mut ()>** } } }
yrefmtwq5#
答案开头为:1.安装IDE xyz......根本不能解决问题。进入你的项目文件夹,启动rust-gdb target/debug/your_executable,然后选择一些你想要中断的行。点击'运行'...当你没有IDE的时候(否则你不会问,我猜),它是终端/VIM用户世界中最好的。下面是一些如何使用的提示:
rust-gdb target/debug/your_executable
5条答案
按热度按时间6xfqseft1#
我发现VS Code和CodeLLDB扩展具有很好的可用性:
1.从VS代码中搜索并安装扩展rust-analyzer
1.检查您的平台的必要条件和setup CodeLLDB。从v1.6开始,不需要进一步的设置。
1.从VS代码中搜索并安装扩展CodeLLDB
1.当你选择LLDB时,一个
launch.json
文件将被打开,如果没有,打开它,它在.vscode
文件夹下1.您的
launch.json
应该如下所示:1.如果您希望保持通用性,并且只编译与货物文件夹名称匹配的二进制文件,则可以使用${workspaceRootFolderName}变量替换“program”键:
下面是一些关于Rust和VS代码的博客文章:
uxhixvfz2#
Rust编译器生成带有原生调试信息(符号)的原生二进制文件,因此任何原生调试器都可以。这意味着
gdb
和lldb
,或者Windows调试器(WinDBG或Visual Studio)(如果您使用的是MSVC ABI版本的Rust)。如果您想要获得集成体验,RustDT是可行之道(在Windows上设置:如何在Windows中设置GDB来调试Rust程序?).请注意,您很可能会在Windows中遇到How can I inspect variable values while debugging MSVC ABI Rust programs?,在Mac中遇到https://github.com/rust-lang/rust/issues/33062。14ifxucb3#
对于图形调试器,有gdbgui。它可用于Linux、Windows和MacOS。它使用浏览器作为显示器并与调试器交互。
piah890a4#
我有
gdb 7.11
,rust-gdb
命令似乎比gdb本地命令给予了更多与rust相关的信息。例如,rust-gdb
正确地显示了rust对象的全名,而gdb只是不显示它们。在下面的例子中,gdb将显示在所有的粗体部分。
yrefmtwq5#
答案开头为:
1.安装IDE xyz
......根本不能解决问题。
进入你的项目文件夹,启动
rust-gdb target/debug/your_executable
,然后选择一些你想要中断的行。点击'运行'...当你没有IDE的时候(否则你不会问,我猜),它是终端/VIM用户世界中最好的。
下面是一些如何使用的提示: