我有vscode运行和调试GO代码刚刚好,在我做了更新从VSCode现在我不能调试,我不断得到这个错误:
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>
我不明白更新中出了什么问题?
5条答案
按热度按时间2fjabf4q1#
除了Jsperk应答。您还可以配置
launch.json
,使其始终启动调试main.go
(具有main()
函数的文件)。因为调用堆栈从main()
开始,所以您始终会到达另一个文件中的断点。x759pob22#
在我的例子中,这正是Jsperk所说的,我必须打开包含main()函数的文件,只有这样我才能按Run。
... main.go需要保持打开状态,如果您打开了另一个文件,测试将显示此错误消息. - Jsperk
vuktfyat3#
由于包的命名,我也遇到过同样的问题,解决方法是使用Go语言主文件的标准声明:
...然后能够使用以下
launch.json
文件进行调试:7lrncoxx4#
出现此错误是因为包名与主函数名不同。
apeeds0o5#
我在MacOS上遇到了和user63898一样的问题。我已经尝试了在StackOverflow和其他论坛上能找到的所有方法。
我甚至确保在执行调试时保持main.go文件打开,但仍然遇到这个问题: