如何在 VSCode 中使用 golang 在调试模式下传递命令行参数

问题描述 投票:0回答:2

我在使用 golang 在 VSCode(调试模式)中传递命令行参数时遇到困难。

下面是小代码示例和 launch.json:

package main

import (
    "flag"
    "fmt"
)

func main() {
    flag1Ptr := flag.Bool("flag1", false, "flag1 is a flag")
    flag.Parse()
    fmt.Println(*flag1Ptr)
    fmt.Println("Hello, world")
}
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${fileDirname}",
            "env": {},
            "args": [
                "-flag1"
            ]
        }
    ]
}

*flag1Ptr 的输出始终为“false”,但它应该为“true”。

更新:关闭 VSCode 并重新打开后问题消失(我使用的是 Mac(osX))

debugging go command-line visual-studio-code arguments
2个回答
48
投票

列出所有参数,例如, 命令是:

"hello.exe -in InfoEntity.java -out aa.out"

调试配置是:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${fileDirname}",
            "env": {},
            "args": ["-in", "InfoEntity.java", "-out", "aa.out"]
        }
    ]
}

0
投票

对我来说,只需将 launch.json 添加到 .vscode 即可,但不适用于 RUN AND DEBUG 菜单中的 Run Current FileNode.js 选项,我需要使用 Launch Program 并且它有效

© www.soinside.com 2019 - 2024. All rights reserved.