切换断点在 Visual Studio Code 中不起作用

Dam*_*ian 3 rust windows-10 visual-studio-code

当我尝试设置断点时,什么也没有发生;我将光标放在该println!行上并按F9

fn main() {
    println!("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)

我在另一台安装了 Visual Studio 2017 的机器上工作,所以我怀疑这可能是问题所在。

任务文件

fn main() {
    println!("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)

启动文件

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "cargo build",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "panel": "dedicated",
                "clear": true
            },
            "problemMatcher": {
                "owner": "rust",
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.+):(\\d+):(\\d+):\\s+(\\d+):(\\d+)\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "endLine": 4,
                    "endColumn": 5,
                    "severity": 6,
                    "message": 7
                }
            }
        },
        {
            "label": "clean",
            "type": "shell",
            "command": "cargo clean"
        },
        {
            "label": "run",
            "type": "shell",
            "command": "cargo run",
            "presentation": {
                "panel": "dedicated",
                "clear": true
            },
            "problemMatcher": []
        },
        {
            "label": "test",
            "type": "shell",
            "command": "cargo test",
            "group": {
                "kind": "test",
                "isDefault": true
            },
            "presentation": {
                "panel": "dedicated",
                "clear": true
            },
            "problemMatcher": [
                {
                    "owner": "rust",
                    "fileLocation": [
                        "relative",
                        "${workspaceRoot}"
                    ],
                    "pattern": {
                        "regexp": "^(.+):(\\d+):(\\d+):\\s+(\\d+):(\\d+)\\s+(warning|error):\\s+(.*)$",
                        "file": 1,
                        "line": 2,
                        "column": 3,
                        "endLine": 4,
                        "endColumn": 5,
                        "severity": 6,
                        "message": 7
                    }
                },
                {
                    "owner": "rust",
                    "fileLocation": [
                        "relative",
                        "${workspaceRoot}"
                    ],
                    "severity": "error",
                    "pattern": {
                        "regexp": "^.*panicked\\s+at\\s+'(.*)',\\s+(.*):(\\d+)$",
                        "message": 1,
                        "file": 2,
                        "line": 3
                    }
                }
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我安装了 Visual Studio 2019:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(Windows) Launch",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}/target/debug/${workspaceRootFolderName}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}/target/debug/",
            "environment": [],
            "externalConsole": true,
        },       
    ]
}
Run Code Online (Sandbox Code Playgroud)

我安装了这些 Visual Studio Code 扩展:

  1. C/C++ 0.22.1
  2. 锈(RLS)0.6.0

我正在使用 Rust 1.33.0。

小智 8

尝试将设置值“debug.allowBreakpointsEverywhere”设置为true

  • 文件 -> 首选项 -> 设置 -> 调试 ->debug.allowBreakpointsEverywhere = true (2认同)