< 返回版块

GUO 发表于 2024-10-10 08:48

Tags:vscode

需求描述

我想在vscode中调试启动命令行程序,并且给它传递一些命令行参数,我偿试着在launch.json文件中如下设置

    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug executable 'hello'",
            "cargo": {
                "args": [
                    "build",
                    "--bin=hello",
                    "--package=hello"
                ],
                "filter": {
                    "name": "hello",
                    "kind": "bin"
                }
            },
            "args": ["Hello1", "Hello2"],    // 在这里设定命令行参数
            "cwd": "${workspaceFolder}"
        },
        .... // 单元测试的相关设置忽略
     ]

我的main.rs代码是这样的

fn main() {
    let args = std::env::args().collect::<Vec<String>>();
    for arg in args.iter() {
        println!("arg => {}", arg);
    }
}

期望输出结果

当我在点击 fn main() 函数上方的 【Run】或者【Debug】时,期望的输出内容是:

arg => D:\work\rust\hello\target\debug\hello.exe
arg => Hello1
arg => Hello2

实际结果

如下,我设定的两个命令行参数并没有传递进来

arg => D:\work\rust\hello\target\debug\hello.exe

怎么解决?

达不到期望的结果,不方便在vscode中命令行传参调试。

请问要怎么设置,才能达到我期望的效果?

评论区

写评论
作者 GUO 2024-10-10 09:35

F5确实可以, 平时点击【Debug】启动调试习惯了,以为它就是F5的替代,自己绕蒙圈了。 解决了,非常感谢!

--
👇
asuper: 要按 F5 运行,才是走的vs code自带的调试框架,你点击函数上面的 Run、Debug,是其他扩展的功能,好像是CodeLLDB还是Code Runner来着,自然不会获取到你配置的参数了

asuper 2024-10-10 09:16

要按 F5 运行,才是走的vs code自带的调试框架,你点击函数上面的 Run、Debug,是其他扩展的功能,好像是CodeLLDB还是Code Runner来着,自然不会获取到你配置的参数了

1 共 2 条评论, 1 页