我尝试在VS代码中调试Rust程序,但收到错误:
点击OK后,VS代码打开“settings.json”:
我安装了这些扩展:
我的程序是一个简单的“你好世界”应用程序。
ars1skjm1#
不幸的是VS代码不能调试Rust:(但不必担心,只需几步配置就可以了:)步骤1.如果在Windows上,请安装C/C++ extension;如果在OS X/Linux上,请安装CodeLLDB1.单击调试-〉添加配置,应打开一个 launch.json 文件,您需要在此处手动更改 * 程序 * 名称
{ "version": "0.2.0", "configurations": [ { "name": "(Windows) Launch", "type": "cppvsdbg", "request": "launch", "program": "${workspaceRoot}/target/debug/foo.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceRoot}", "environment": [], "externalConsole": true }, { "name": "(OSX) Launch", "type": "lldb", "request": "launch", "program": "${workspaceRoot}/target/debug/foo", "args": [], "cwd": "${workspaceRoot}", } ] }
1.确保在文件-〉首选项-〉设置下选中**允许在任何文件中设置断点 *
55ooxyrt2#
从屏幕截图中可以看出,您使用的是Windows系统,下面是如何继续操作的。这里假设您已经完成了基本操作:
cargo init
cargo run
Run >>> Add Configuration...
C/C++: (Windows) launch
program
"${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe"
cwd
"${workspaceFolder}"
launch.json
preLaunchTask
{ "name": "(Windows) Launch", "type": "cppvsdbg", "request": "launch", "program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe", "preLaunchTask": "rust: cargo build", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "console": "externalTerminal" }
此时,* 只要您已经至少构建了一次项目 ,就可以按F5键进行调试。如果希望F5也*保存更改并在调试 * 之前 * 重新生成项目,则还必须添加一个生成任务并将其配置为在调试开始之前运行。为此,打开Show All Commands框(F1或Ctrl+Shift+p)并选择Tasks: Configure Task,然后选择rust: cargo build,这样会在launch.json旁边创建一个tasks.json文件;默认值就是你所需要的。我的文件看起来像这样:
Show All Commands
Tasks: Configure Task
rust: cargo build
tasks.json
{ "version": "2.0.0", "tasks": [ { "type": "cargo", "command": "build", "problemMatcher": [ "$rustc" ], "group": "build", "label": "rust: cargo build" } ] }
然后,要连接所有内容,您只需手动将preLaunchTask属性添加到启动配置中,其值等于任务中的标签,例如"preLaunchTask": "rust: cargo build",,就像我在上面的示例launch.json中所做的那样。此时,无论何时按F5键,VsCode都将保存您的工作,重新生成项目,然后开始调试它。
"preLaunchTask": "rust: cargo build",
tf7tbtn23#
Visual Studio Code是一个通用编辑器,但可以将其配置为调试rust代码。
步骤1.
假设安装了视觉代码、防 rust 和货物,第一步是启用所需的扩展:
第二步
第二步是创建rust代码,我有一个名为Rust的文件夹,在其中保存rust代码,切换到该文件夹,使用cargo new hello_world创建一个新的rust项目。
Rust
cargo new hello_world
步骤3
第三步是更改项目的文件夹。有两个看似合理的选项,但只有一个可行。我切换到了Rust文件夹,然后可以按照"hello_world - src“命令编辑源代码。
要调试代码,需要创建一个launch.json文件,使用Run - Add configuration...但是,文件不正确,正确的名称应该是<your program>。这是错误的方法。
Run - Add configuration...
<your program>
{ // 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": "${workspaceFolder}/<your program>", "args": [], "cwd": "${workspaceFolder}" } ]
}文档在这一点上是一个很薄的投标。正确的方法是选择一个不同的文件夹,项目hello_world的顶层。Cargo.toml文件是可用的。
hello_world
Cargo.toml
现在,当使用Run - Add configuration...,并且选择LLDB选项时-
LLDB
Cargo.toml文件可以被提取-
然后使用Cargo.toml文件来正确构建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 executable 'hello_world'", "cargo": { "args": [ "build", "--bin=hello_world", "--package=hello_world" ], "filter": { "name": "hello_world", "kind": "bin" } }, "args": [], "cwd": "${workspaceFolder}" }, { "type": "lldb", "request": "launch", "name": "Debug unit tests in executable 'hello_world'", "cargo": { "args": [ "test", "--no-run", "--bin=hello_world", "--package=hello_world" ], "filter": { "name": "hello_world", "kind": "bin" } }, "args": [], "cwd": "${workspaceFolder}" } ] }
现在,Run - Start debugging和Run - Run without Debugging都工作正常。
Run - Start debugging
Run - Run without Debugging
3条答案
按热度按时间ars1skjm1#
不幸的是VS代码不能调试Rust:(但不必担心,只需几步配置就可以了:)
步骤
1.如果在Windows上,请安装C/C++ extension;如果在OS X/Linux上,请安装CodeLLDB
1.单击调试-〉添加配置,应打开一个 launch.json 文件,您需要在此处手动更改 * 程序 * 名称
1.确保在文件-〉首选项-〉设置下选中**允许在任何文件中设置断点 *
有关详细步骤和更多信息,请参阅the article我曾经回答过这个问题
学分-福雷斯特·史密斯
55ooxyrt2#
从屏幕截图中可以看出,您使用的是Windows系统,下面是如何继续操作的。这里假设您已经完成了基本操作:
1.您的项目文件夹已使用
cargo init
初始化。(您的项目文件夹名称必须与Cargo.toml中的包名称相同。)1.您可以从项目目录中使用
cargo run
,它可以正常工作。正如在'Net上的不同位置所指出的,您需要安装另一个VsCode扩展来使其能够进行调试。由于您使用的是Windows,因此您希望对VsCode使用MS C++ DevTools extension,而不是CodeLLDB。
接下来,您需要一个“launch”配置设置。选择VsCode的
Run >>> Add Configuration...
菜单项。在下拉列表中选择C/C++: (Windows) launch
选项。现在您将拥有一个包含单个配置对象的 launch.json 文件。您需要将
program
属性更改为"${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe"
;这取决于你的包名是否与项目文件夹的名称相同。(我还将cwd
属性更改为"${workspaceFolder}"
,尽管我不确定这是否重要。)为了更清楚,下面是我目前在launch.json
文件中的配置(preLaunchTask
属性是以后的):此时,* 只要您已经至少构建了一次项目 ,就可以按F5键进行调试。
如果希望F5也*保存更改并在调试 * 之前 * 重新生成项目,则还必须添加一个生成任务并将其配置为在调试开始之前运行。
为此,打开
Show All Commands
框(F1或Ctrl+Shift+p)并选择Tasks: Configure Task
,然后选择rust: cargo build
,这样会在launch.json
旁边创建一个tasks.json
文件;默认值就是你所需要的。我的文件看起来像这样:然后,要连接所有内容,您只需手动将
preLaunchTask
属性添加到启动配置中,其值等于任务中的标签,例如"preLaunchTask": "rust: cargo build",
,就像我在上面的示例launch.json中所做的那样。此时,无论何时按F5键,VsCode都将保存您的工作,重新生成项目,然后开始调试它。
tf7tbtn23#
Visual Studio Code是一个通用编辑器,但可以将其配置为调试rust代码。
步骤1.
假设安装了视觉代码、防 rust 和货物,第一步是启用所需的扩展:
1.代码LLDB
这些只需要安装一个。
第二步
第二步是创建rust代码,我有一个名为
Rust
的文件夹,在其中保存rust代码,切换到该文件夹,使用cargo new hello_world
创建一个新的rust项目。步骤3
第三步是更改项目的文件夹。有两个看似合理的选项,但只有一个可行。
我切换到了Rust文件夹,然后可以按照"hello_world - src“命令编辑源代码。
要调试代码,需要创建一个
launch.json
文件,使用Run - Add configuration...
但是,文件不正确,正确的名称应该是<your program>
。这是错误的方法。}
文档在这一点上是一个很薄的投标。正确的方法是选择一个不同的文件夹,项目
hello_world
的顶层。Cargo.toml
文件是可用的。现在,当使用
Run - Add configuration...
,并且选择LLDB
选项时-Cargo.toml
文件可以被提取-然后使用
Cargo.toml
文件来正确构建launch.json
文件-现在,
Run - Start debugging
和Run - Run without Debugging
都工作正常。