Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

debug error: Failed to launch: Version of Go is too old for this version of Delve(minimum supported version 1.15 #1716

Closed
luojiego opened this issue Aug 24, 2021 · 10 comments
Labels
Debug Issues related to the debugging functionality of the extension. FrozenDueToAge
Milestone

Comments

@luojiego
Copy link

For asking questions, see:

Before filing an issue, please review our troubleshooting guides

Please answer these questions before submitting your issue. Thanks!

What version of Go, VS Code & VS Code Go extension are you using?

  • Run go version to get version of Go from the VS Code integrated terminal.
    • go version go1.14.13 windows/amd64
  • Run gopls -v version to get version of Gopls from the VS Code integrated terminal.
  • Run code -v or code-insiders -v to get version of VS Code or VS Code Insiders.
    • Build info

golang.org/x/tools/gopls v0.7.1
golang.org/x/tools/gopls@v0.7.1 h1:Mh3Z8Xcoq3Zy7ksSlwDV/nzQSbjFf06A+L+F8YHq55U=
github.com/google/go-cmp@v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
github.com/sergi/go-diff@v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
golang.org/x/mod@v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
golang.org/x/sync@v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
golang.org/x/sys@v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE=
golang.org/x/tools@v0.1.6-0.20210802203754-9b21a8868e16 h1:ZC/gVBZl8poJyKzWLxxlsmhayVGosF4mohR35szD5Bg=
golang.org/x/xerrors@v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
mvdan.cc/gofumpt@v0.1.1 h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA=
mvdan.cc/xurls/v2@v2.2.0 h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=

  • Check your installed extensions to get the version of the VS Code Go extension

    • Go 0.27.1
  • Run Ctrl+Shift+P (Cmd+Shift+P on Mac OS) > Go: Locate Configured Go Tools command.

    • Checking configured tools....
      GOBIN: C:\Go\bin
      toolsGopath:
      gopath: C:\gopath
      GOROOT: C:\Go
      PATH: C:\Go\bin;C:\Python39\Scripts;C:\Python39;C:\Program Files (x86)\NetSarang\Xftp 6;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Git\cmd;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\dotnet;C:\Program Files\nodejs;C:\ProgramData\chocolatey\bin;C:\Users\13369.cargo\bin;C:\Users\13369\AppData\Local\Microsoft\WindowsApps;C:\Users\13369\go\bin;C:\Users\13369\AppData\Local\Programs\Microsoft VS Code\bin;C:\mingw64\bin;C:\Users\13369.dotnet\tools;C:\Program Files (x86)\Vim\vim82;C:\gopath\bin;C:\Users\13369\AppData\Roaming\npm;C:\Program Files\Multipass\bin
      PATH (vscode launched with): C:\Python39\Scripts;C:\Python39;C:\Program Files (x86)\NetSarang\Xftp 6;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Git\cmd;C:\Go\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\dotnet;C:\Program Files\nodejs;C:\ProgramData\chocolatey\bin;C:\Users\13369.cargo\bin;C:\Users\13369\AppData\Local\Microsoft\WindowsApps;C:\Users\13369\go\bin;C:\Users\13369\AppData\Local\Programs\Microsoft VS Code\bin;C:\mingw64\bin;C:\Users\13369.dotnet\tools;C:\Program Files (x86)\Vim\vim82;C:\gopath\bin;C:\Go\bin;C:\Users\13369\AppData\Roaming\npm;C:\Program Files\Multipass\bin

    go: C:\Go\bin\go.exe: go version go1.14.13 windows/amd64

    gopkgs: C:\Go\bin\gopkgs.exe: go1.14.13
    path github.com/uudashr/gopkgs/v2/cmd/gopkgs
    mod github.com/uudashr/gopkgs/v2 v2.1.2 h1:A0+QH6wqNRHORJnxmqfeuBEsK4nYQ7pgcOHhqpqcrpo=
    dep github.com/karrick/godirwalk v1.12.0 h1:nkS4xxsjiZMvVlazd0mFyiwD4BR9f3m6LXGhM2TUx3Y=
    dep github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=

    go-outline: C:\Go\bin\go-outline.exe: go1.14.13
    path github.com/ramya-rao-a/go-outline
    mod github.com/ramya-rao-a/go-outline v0.0.0-20200117021646-2a048b4510eb h1:ilZSL4VaIq4Hsi+lH928xQKnSWymFug6r2gJomUBpW8=
    dep golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY=

    gotests: C:\Go\bin\gotests.exe: go1.14.13
    path github.com/cweill/gotests/gotests
    mod github.com/cweill/gotests v1.6.0 h1:KJx+/p4EweijYzqPb4Y/8umDCip1Cv6hEVyOx0mE9W8=
    dep golang.org/x/tools v0.0.0-20191109212701-97ad0ed33101 h1:LCmXVkvpQCDj724eX6irUTPCJP5GelFHxqGSWL2D1R0=

    gomodifytags: C:\Go\bin\gomodifytags.exe: go1.14.13
    path github.com/fatih/gomodifytags
    mod github.com/fatih/gomodifytags v1.13.0 h1:fmhwoecjZ5c34Q2chjRB9cL8Rgag+1TOSMy+grissMc=
    dep github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
    dep github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
    dep golang.org/x/tools v0.0.0-20180824175216-6c1c5e93cdc1 h1:EAPsk8kfGCjxQagrkWjzXlUWe2p3gj5MknO+z2o9GKc=

    impl: C:\Go\bin\impl.exe: go1.14.13
    path github.com/josharian/impl
    mod github.com/josharian/impl v1.0.0 h1:yMibyBqtigRRIK+47NGeIzPWJIPdj8DWvhHRp5gGZJQ=
    dep golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
    dep golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375 h1:SjQ2+AKWgZLc1xej6WSzL+Dfs5Uyd5xcZH1mGC411IA=
    dep golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=

    goplay: C:\Go\bin\goplay.exe: go1.14.13
    path github.com/haya14busa/goplay/cmd/goplay
    mod github.com/haya14busa/goplay v1.0.0 h1:ED4BMrGQ3WH7H3YXrcnWMVzj1xeSepaYTkLh1DtFi/4=
    dep github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA=

    dlv: C:\Go\bin\dlv.exe: go1.14.13
    path github.com/go-delve/delve/cmd/dlv
    mod github.com/go-delve/delve v1.7.1 h1:RJWK3sLJ/zY25ng6Q9oNsyo5Rmr2PAEWuyFoD1axlbg=
    dep github.com/cosiner/argv v0.1.0 h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg=
    dep github.com/cpuguy83/go-md2man/v2 v2.0.1 h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU=
    dep github.com/derekparker/trie v0.0.0-20200317170641-1fdf38b7b0e9 h1:G765iDCq7bP5opdrPkXk+4V3yfkgV9iGFuheWZ/X/zY=
    dep github.com/google/go-dap v0.5.0 h1:RMHAVn5xeunBakYk65ggHXttk6qjZVdbmi+xhAoL2wY=
    dep github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
    dep github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
    dep github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
    dep github.com/mattn/go-isatty v0.0.13 h1:qdl+GuBjcsKKDco5BsxPJlId98mSWNKqYA+Co0SC1yA=
    dep github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
    dep github.com/peterh/liner v1.2.1 h1:O4BlKaq/LWu6VRWmol4ByWfzx6MfXc5Op5HETyIy5yg=
    dep github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
    dep github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
    dep github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
    dep github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw=
    dep github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
    dep go.starlark.net v0.0.0-20210602144842-1cdb82c9e17a h1:wDtSCWGrX9tusypq2Qq9xzaA3Tf/+4D2KaWO+HQvGZE=
    dep golang.org/x/arch v0.0.0-20210727222714-28578f966459 h1:ECTRghTMeoUryGydSc+nr1o4M2i73DwlP4LFEDJb3II=
    dep golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf h1:2ucpDCmfkl8Bd/FsLtiD653Wf96cW37s+iGx93zsu4k=
    dep gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=

    dlv-dap: C:\Go\bin\dlv-dap.exe: go1.14.13
    path github.com/go-delve/delve/cmd/dlv
    mod github.com/go-delve/delve v1.7.1-0.20210804080032-f95340ae1bf9 h1:MNF+leMBsgJoT80cCoVJOsZWIJQlAOdTHgn0VslfJ6k=
    dep github.com/cosiner/argv v0.1.0 h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg=
    dep github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
    dep github.com/google/go-dap v0.5.0 h1:RMHAVn5xeunBakYk65ggHXttk6qjZVdbmi+xhAoL2wY=
    dep github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
    dep github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
    dep github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
    dep github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=
    dep github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI=
    dep github.com/peterh/liner v0.0.0-20170317030525-88609521dc4b h1:8uaXtUkxiy+T/zdLWuxa/PG4so0TPZDZfafFNNSaptE=
    dep github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
    dep github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
    dep github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
    dep github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M=
    dep github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
    dep go.starlark.net v0.0.0-20200821142938-949cc6f4b097 h1:YiRMXXgG+Pg26t1fjq+iAjaauKWMC9cmGFrtOEuwDDg=
    dep golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4 h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI=
    dep golang.org/x/sys v0.0.0-20210514084401-e8d321eab015 h1:hZR0X1kPW+nwyJ9xRxqZk1vx5RUObAPBdKVvXPDUH/E=
    dep gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=

    staticcheck: C:\Go\bin\staticcheck.exe: go1.14.13
    path honnef.co/go/tools/cmd/staticcheck
    mod honnef.co/go/tools v0.1.3 h1:qTakTkI6ni6LFD5sBwwsdSO+AQqbSIxOauHTTQKZ/7o=
    dep github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
    dep golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
    dep golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k=
    dep golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY=
    dep golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=

    gopls: C:\Go\bin\gopls.exe: go1.14.13
    path golang.org/x/tools/gopls
    mod golang.org/x/tools/gopls v0.7.1 h1:Mh3Z8Xcoq3Zy7ksSlwDV/nzQSbjFf06A+L+F8YHq55U=
    dep github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
    dep github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
    dep golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
    dep golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
    dep golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE=
    dep golang.org/x/tools v0.1.6-0.20210802203754-9b21a8868e16 h1:ZC/gVBZl8poJyKzWLxxlsmhayVGosF4mohR35szD5Bg=
    dep golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
    dep mvdan.cc/gofumpt v0.1.1 h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA=
    dep mvdan.cc/xurls/v2 v2.2.0 h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=

go env
Workspace Folder (md5_excel): c:\workspace\go\code\tools\excel\md5_excel
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=C:\Go\bin
set GOCACHE=C:\Users\13369\AppData\Local\go-build
set GOENV=C:\Users\13369\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\gopath
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,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=c:\workspace\go\code\tools\excel\md5_excel\go.mod
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\13369\AppData\Local\Temp\go-build360874362=/tmp/go-build -gno-record-gcc-switches

Share the Go related settings you have added/edited

Run Preferences: Open Settings (JSON) command to open your settings.json file.
Share all the settings with the go. or ["go"] or gopls prefixes.

Describe the bug

image
First, I try to install old version 1.3.2, the error still exists.
Second, I try to install old version 1.2.0, the error still exists.
Last, I remove all dlv.exe in my PC,the error still exists.
Please tell me, how to solve the problem.

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. See error

Screenshots or recordings

If applicable, add screenshots or recordings to help explain your problem.

@gopherbot gopherbot added this to the Untriaged milestone Aug 24, 2021
@hyangah
Copy link
Contributor

hyangah commented Aug 24, 2021

dlv-dap requires newest Delve :-( which just stopped official support of 1.14 or older.

I recommend updating go to a newer version (1.17 is the latest release and Go project itself stopped supporting 1.15 or older already).

But if it's not an option, use the legacy adapter. Add the following in your settings.json to use the legacy debug adapter

    "go.delveConfig": {
          "debugAdapter": "legacy"
   }

@hyangah hyangah added Debug Issues related to the debugging functionality of the extension. DlvDAPDA labels Aug 24, 2021
@luojiego
Copy link
Author

dlv-dap requires newest Delve :-( which just stopped official support of 1.14 or older.

I recommend updating go to a newer version (1.17 is the latest release and Go project itself stopped supporting 1.15 or older already).

But if it's not an option, use the legacy adapter. Add the following in your settings.json to use the legacy debug adapter

    "go.delveConfig": {
          "debugAdapter": "legacy"
   }

When I add "go.delveConfig" to settings.json, dlv version is 1.7.1, the errors is:
image
I try to install dlv version 1.3.2, the error is:
image
When I try to install dlv version 1.2.0, debug success.

@polinasok
Copy link
Contributor

But if it's not an option, use the legacy adapter. Add the following in your settings.json to use the legacy debug adapter

    "go.delveConfig": {
          "debugAdapter": "legacy"
   }

@hyangah I don't think legacy adapter would help here. It does use a stable dlv binary, which is a little older than the pulled-from-master dlv-dap binary, but it is still at 1.7+ and doesn't support Go 1.14.

A better way would be to follow the advice in the error message and call dlv with --check-go-version=false. This can be accomplished by addingng the following attribute to launch.json configuration: "dlvFlags": ["--check-go-version=false"]

@luojiego And as mentioned earlier, the best thing to do is to update the tools involved to more recent versions.

  • dlv version of 1.7.1 is the right one. Usually the extension will prompt you when dlv and dlv-dap need updating.
  • go version of go1.14.13 is too old. You want 1.15, 1.16 or 1.17 (latest stable release). You can download and install a newer version from https://golang.org/dl/

If you really don't want to update your Go version, then you can downgrade your dlv version to 1.6, but I don't see why you would want to go all the way back to 1.2.0 or 1.3.2 versions of dlv from 2019. Those are very old. Each version of dlv usually supports 3 versions of go - recent stable and 2 older versions. If you try using a version of Go that is older or newer than those 3 expected versions, you get the error above. You can suppress them and debugging would in general work, but some things might be off. You can observe the pattern from dlv release changelog:

  • 1.7.0: Add Go 1.17, drop Go 1.14
  • 1.6.0-1: Add Go 1.16, drop Go 1.13
    ...
  • 1.3.0: Add Go 1.13
  • 1.2.0: Add Go 1.12

@luojiego
Copy link
Author

There is a project that uses go-micro v1 api , It cannot be compiled on a version higher than 1.15. I'm already working on replacing go-micro. Thanks for your advice, I installed dlv 1.6.0 and it works.

@hyangah
Copy link
Contributor

hyangah commented Aug 25, 2021

@polinasok "If using the latest version of delve is not an option", falling back to legacy is the easiest option.
Disabling the version check from the extension side is an option as long as delve keeps supporting the old runtime/compiler. Not sure if that's a safe assumption we can make yet.

@luojiego Delve DAP reached to its usable state with dlv 1.6.1, so dlv 1.6.1 is preferred if you want to utilize DAP.

@polinasok
Copy link
Contributor

@polinasok "If using the latest version of delve is not an option", falling back to legacy is the easiest option.

@hyangah Won't legacy still try to use the latest stable version of dlv (1.7.1)?

Disabling the version check from the extension side is an option as long as delve keeps supporting the old runtime/compiler. Not sure if that's a safe assumption we can make yet.

That assumption cannot be made because once dlv drops support for a version, they disable the tests with that version and won't know if something breaks as things are tweaked to keep up with new changes in the compiler (e.g. how line numbers are assigned to instructions). The bigger the difference between the version used and the latest stable version, the higher the chances that something might not be off.

@luojiego
Copy link
Author

@polinasok "If using the latest version of delve is not an option", falling back to legacy is the easiest option.
Disabling the version check from the extension side is an option as long as delve keeps supporting the old runtime/compiler. Not sure if that's a safe assumption we can make yet.

@luojiego Delve DAP reached to its usable state with dlv 1.6.1, so dlv 1.6.1 is preferred if you want to utilize DAP.

Thank you! I installed dlv 1.6.1, debug is OK.

@hyangah
Copy link
Contributor

hyangah commented Aug 26, 2021

@polinasok "If using the latest version of delve is not an option", falling back to legacy is the easiest option.

@hyangah Won't legacy still try to use the latest stable version of dlv (1.7.1)?

If user installs an old version of dlv manually, it should work.
Installing an old version of dlv-dap manually and staying with dlv-dap mode is an option too. But I thought choosing the right version of dlv and arranging the configuration or the binary installation (i.e. rename dlv to dlv-dap) is rather complex :-P.
It seems like @luojiego could use v1.6.1 that has enough dap support, and could figure out the right installation steps.

That's a good sign. :-)

@polinasok
Copy link
Contributor

@hyangah Thanks for the clarification. Yes, installing older dlv version manually is easier because it requires no renaming, symlinks or alternateTools magic.

@gopherbot
Copy link
Collaborator

Change https://golang.org/cl/347562 mentions this issue: src/goDebugFactory: add --check-go-version=false

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Debug Issues related to the debugging functionality of the extension. FrozenDueToAge
Projects
None yet
Development

No branches or pull requests

4 participants