VS Code 进行调试:无法启动进程:不是可执行文件

use*_*898 13 debugging go visual-studio-code

我让 vscode 运行并调试 GO 代码一切正常,在我从 VSCode 中更新后,现在我无法调试,并且不断收到此错误:

could not launch process: not an executable file
Process exiting with code: 1
Run Code Online (Sandbox Code Playgroud)

配置 :

go version
go version go1.15.5 windows/amd64

 dlv version
Delve Debugger
Version: 1.6.0


set GOPATH=C:\Users\foo\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\FOO~1\AppData\Local\Temp\go-build049073490=/tmp/go-build -gno-record-gcc-switches
PS C:\Dev\my\go\tests>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 我不明白更新中出了什么问题?

Imm*_*ion 6

除了 Jsperk 答案。您还可以进行配置launch.json,使其始终开始调试main.go(具有main()功能的文件)。因为调用堆栈从 开始main(),所以您总是会到达另一个文件中的断点。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "main.go"
            
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)


小智 3

就我而言,这正是 Jsperk 所说的,我必须打开其中包含 main() 函数的文件,然后才能按“运行”。

\n
\n

... main.go 需要保持打开状态,如果您打开了另一个文件,测试将显示此错误消息。\xe2\x80\x93 杰斯珀克

\n
\n