小编vtm*_*m11的帖子

dlv 在 VSCode 下构建 __debug_bin 失败

考虑调试以下代码:

package main

import "os"

func main() {

    os.Args = append(os.Args, "help")
    
}
Run Code Online (Sandbox Code Playgroud)

为了使用命令行参数测试它,我创建了 launch.json,如下所示:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Test args",
            "type": "go",
            "request": "launch",
            "mode": "test",
            "program": "${file}",
            "env": {},
            "args": ["-test.v","--","arg1","arg2","arg3"]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

当我从 VS Code 中的“运行”和“调试”运行“测试参数配置”时,收到一条错误消息

启动失败:无法启动进程:打开/mypath/__debug_bin:没有这样的文件或目录

此错误是因为由于某种原因 dlv 无法从 VS Code 下创建“中间”二进制文件 __debug_bin。

但是,当我直接从命令行运行 dlv 时

dlv 调试 -- arg1 arg2 arg3

它按预期工作,在 /mypath 目录中创建 __debug_bin ,并且所有进一步的调试功能(设置断点、单步执行/进入、打印变量等)都可用。

此外,如果我首先从命令行运行 dlv debug(从而创建 __debug_bin),然后(不退出 dlv)切换到 VS Code 并从运行和调试运行测试参数,它也可以工作。这意味着 VS Code(以及幕后某处的 dlv)捕获此 …

go visual-studio-code

5
推荐指数
0
解决办法
1545
查看次数

标签 统计

go ×1

visual-studio-code ×1