vscode下rust调式

vscode下rust调式

[日期:2021/4/28]
[作者:linhs]
[vscode] [rust] [gdb]

简介

基于 ubuntu 21.04 x64

安装相关的工具

说明
vscode代码编辑器
rustrust语言支持
gdb程序调式器
gcc编译器

注:安装vscode从官网上下载,否则会出现输入法无法输入中文的现象

https://code.visualstudio.com/docs/editor/extension-marketplace

安装vscode的基本开发扩展包

vscode扩展id说明
ms-ceintl.vscode-language-pack-zh-hans适用于 VS Code 的中文(简体)语言包
rust-lang.rustRust support for Visual Studio Code
shd101wyy.markdown-preview-enhancedMarkdown Preview Enhanced
matklad.rust-analyzerrust-analyzer
be5invis.tomlTOML support for vscode
ms-vscode.cpptoolsC/C++ for Visual Studio Code
linhs@linhs:~/work/rust$ sudo apt-get update 
linhs@linhs:~/work/rust$ sudo apt-get upgrade 
linhs@linhs:~/work/rust$ sudo apt-get install rustc
linhs@linhs:~/work/rust$ sudo apt-get install gcc
linhs@linhs:~/work/rust$ sudo apt install gdb-multiarch openocd qemu-system-arm

注:默认情况下会出现安装完后没有 rustup 命令
尝试手动导入rustup环境变量来解决:

linhs@linhs:~/.cargo$ cat env 
#!/bin/sh
# rustup shell setup
# affix colons on either side of $PATH to simplify matching
case ":${PATH}:" in
    *:"$HOME/.cargo/bin":*)
        ;;
    *)
        # Prepending path in case a system-installed rustc needs to be overridden
        export PATH="$HOME/.cargo/bin:$PATH"
        ;;
esac

通过查看cargo的env可以看出 export PATH="$HOME/.cargo/bin:$PATH" 是rust的环境变量导入方法,手动执行命令 rustup 即可正常

linhs@linhs:~/.cargo$ export PATH="$HOME/.cargo/bin:$PATH"

创建工程

使用cargo new命令创建工程

linhs@linhs:~/work/rust$ cargo new demo_debug
     Created binary (application) `demo_debug` package

使用vscode打开工程,然后打开./src/main.rs,再启动调式
Start Debugging -> C++(GDB/LLDB)
gdb调式配置文件

{
    // 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": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "enter program name, for example ${workspaceFolder}/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

修改 “program” 属性为 “program”: “${workspaceFolder}/target/debug/demo_debug”, 此时大功告成

{
    // 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": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/target/debug/demo_debug",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

注:“externalConsole”: false, 改为 true 时,启动调式的程序会启动一个新的终端,而默认使用vscode的终端

再点击 Start Debugging 调式
默认情况下程序之间运行的结束,甚至无法放置断点

打开设置 输入 debug.allowBreakpointsEverywhere 属性改为 true
注:“debug.allowBreakpointsEverywhere”:true, 允许在任何文件中设置断点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值