【问题标题】:VS Code go debug : could not launch process: not an executable fileVS Code 调试:无法启动进程:不是可执行文件
【发布时间】:2021-05-25 10:41:18
【问题描述】:

在我从 VSCode 中更新之后,我的 vscode 运行和调试 GO 代码都很好 现在我无法调试,并且不断收到此错误:

could not launch process: not an executable file
Process exiting with code: 1

配置:

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>

我不明白更新出了什么问题?

【问题讨论】:

  • Go 这样的语言的调试器主要依赖于 Launch.json 设置,它应该插入正确的调试器才能进入,请检查 Launch.json 中的这主要是不正确的设置跨度>
  • 发布您的launch.json 文件
  • 也许你有launch.json但main.go需要保持打开,如果你有另一个文件打开,测试会显示这个错误信息。
  • 最后,我不得不升级到最新的 GO 运行时

标签: go debugging visual-studio-code


【解决方案1】:

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

... main.go 需要保持打开状态,如果您打开了另一个文件,测试将显示此错误消息。 – Jsperk

【讨论】:

    【解决方案2】:

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

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Launch",
                "type": "go",
                "request": "launch",
                "mode": "auto",
                "program": "main.go"
                
            }
        ]
    }
    

    【讨论】:

      【解决方案3】:

      我在 macos 上遇到了与 user63898 相同的问题。 我已经尝试了在 StackOverflow 和其他论坛上可以找到的所有内容。

      我什至确保在执行调试时保持我的 main.go 文件打开,但仍然遇到这个问题:

      API server listening at: 127.0.0.1:29559
      could not launch process: not an executable file
      Process exiting with code
      

      【讨论】:

      • 这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review
      猜你喜欢
      • 2020-11-15
      • 1970-01-01
      • 2021-01-26
      • 2022-10-19
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      相关资源
      最近更新 更多