0


vscode中调试rust程序

文章目录

一、vscode运行和调式rust程序

环境:在WSL(ubuntu20.04)中使用vscode
(1)在WSL 中安装rust,cargo

wangji@script-wang:~/code/rust/greeting/src$ sudoaptinstall rustc -y
wangji@script-wang:~/code/rust/greeting/src$ sudoaptinstall rustfmt -y
wangji@script-wang:~/code/rust/greeting/src$ sudoapt-get -y install cargo

(2)在vscode中安装rust-analyzer

(3)配置vscode编译:打开vscode,终端->运行任务->配置任务->使用模板生成task.json文件->others,会在工程目录的.vscode中生成tasks.json

参考配置如下:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format"version":"2.0.0",
    "tasks":[{"label":"wangji rust build debug",
            "type":"shell",
            "command":"cargo",
            "args":["build"]},
        {"label":"wangji rust build release",
            "type":"shell",
            "command":"cargo",
            "args":["build --release"]}]}

编译:终端->运行任务->wangji rust build->

  • 安装完rust-analyzer,其实在终端->运行任务可以看到rust的运行任务,但是感觉不好用,因为命令不能添加自定义参数
  • 运行的配置类似,增加个task在tasks.json即可

(4)配置vscode调试:点击vscode这里
在这里插入图片描述
也会在工程目录下的.vscode中生成一个launch.json文件
可用的配置如下:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version":"0.2.0",
    "configurations":[{"name":"Debug",
            "type":"gdb",
            "request":"launch",
            "target":"${workspaceFolder}/target/debug/${workspaceFolderBasename}",
            "cwd":"${workspaceRoot}",
            "valuesFormatting":"parseText"},
        {"name":"Release",
            "type":"gdb",
            "request":"launch",
            "target":"${workspaceFolder}/target/release/${workspaceFolderBasename}",
            "cwd":"${workspaceRoot}",
            "valuesFormatting":"parseText"}]}

调试:
在这里插入图片描述

二、常见问题

1.rust: Request textDocument/formatting failed.

[Error - 10:02:32 AM] Request textDocument/formatting failed.
  Message: Failed to spawn cd"/home/wangji/code/rust/greeting/src"&&"rustfmt""--edition""2021"
  Code: -32603 

观察vscode输出发现没有安装rustfmt命令,安装即可:

wangji@script-wang:~/code/rust/greeting/src$ sudoaptinstall rustfmt -y

2.cargo命令

cargo clippy: 类似eslint,lint工具检查代码可以优化的地方
cargo fmt: 类似go fmt,代码格式化
cargo tree: 查看第三方库的版本和依赖关系
cargo bench: 运行benchmark(基准测试,性能测试)
cargo udeps(第三方): 检查项目中未使用的依赖
另外 cargo build/run --release 使用 release 编译会比默认的 debug 编译性能提升 10 倍以上,但是 release 缺点是编译速度较慢,而且不会显示 panic backtrace 的具体行号

3.使用rust-gdb调试rust程序

具体用法见:Debugging Rust apps with GDB

4.cargo build太慢

打开或新建用户目录下/.cargo/config文件
在文件中增加配置

[source.crates-io]
registry ="https://github.com/rust-lang/crates.io-index"

replace-with ='tuna'[source.tuna]
registry ="https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

ref:

  • vscode使用tasks.json执行c++多文件编译
  • Cargo 教程
  • Debugging Rust apps with GDB
  • Rust解决cargo build太慢
标签: rust

本文转载自: https://blog.csdn.net/u011436427/article/details/130100371
版权归原作者 喜欢打篮球的普通人 所有, 如有侵权,请联系我们删除。

“vscode中调试rust程序”的评论:

还没有评论