4

I have a problem with debugging in Go 1.10 in vscode using delve on Mac. I read here that the workaround is to downgrade to Go 1.9. Since I am new at Go, but have lots of stuff already installed, how do I do this cleanly?

Harold Ship
  • 989
  • 1
  • 8
  • 14
  • 1
    Well, I just downloaded 1.9.5 darwin installer from [golang.org](https://golang.org/project/) and it uninstalled 1.10 and now the debugger works! – Harold Ship Apr 30 '18 at 08:17

6 Answers6

9

The same way you upgrade. That is, remove the existing version, then install the new version. Although "downgrade" isn't explicitly stated on the official docs, it does explain how to do it.

Jonathan Hall
  • 75,165
  • 16
  • 143
  • 189
3

First remove go from the system

  • sudo snap remove go

Then install particular version of go

  • sudo snap install --classic --channel=1.14/stable go
1

I don't know if you need to downgrade Go in order to reenable the debugging. I had the same problem on a Mac(10.13) and the problem seems to be XCode.

Here I've found the solution for fixing the debugging problem.

You should delete the current XCode Command Line Tools binary:

sudo rm -rf /Library/Developer/CommandLineTools

and install an older XCode Command Line Tools (for me it's working with 9.2) using one of the following links:

Ciobanu Andrei
  • 315
  • 3
  • 14
1

To downgrade Go on MacOS, for instance from go@1.20 to go@1.19:

$ brew unlink go@1.20
$ brew install go@1.19
$ brew link go@1.19
Shady Smaoui
  • 867
  • 9
  • 11
0

Best way to upgrade or downgrade Go on Ubuntu is to download required version from here. Here you could have all stable and releases, along with archived versions.

after downloading you selected version you can follow further steps, i will suggest you to download tar.gz format for ubuntu machine:

  1. first of all fully remove the older version from your local by doing this

sudo rm -rf /usr/local/go /usr/local/gocache

this will remove all the local go code base but wait something more we have to do to remove fully from local, i was missing this step and it took so much time until I understood what i am missing so here is the purge stuff to remove from list

sudo apt-get purge golang

or

sudo apt remove golang-go
  1. Now install / extract your downloaded version of go inside /usr/local/go, by hitting terminal with this

tar -C /usr/local -xzf go1.10.8.linux-amd64.tar.gz

  1. after doing all above stuff , don't forget or check to GOROOT variable value you can check the value by go env if not set then export PATH=$PATH:/usr/local/go
  2. Better to test a small go program to make sure. write this inside /home/yourusername/go/test.php if you haven't changed set GOPATH value:
package main

import "fmt"

func main() {
    fmt.Println("hello world")
}
  1. run this by go run test.go

i hope it works for you!!

Ashutosh Rai
  • 458
  • 1
  • 7
  • 14
-4

I use my own fork of gvm to easily switch between go versions. The original gvm is fairly old and keeps a different gopath per go version which I found annoying and removed in my fork.

So after setting up gvm, you can do

gvm install go1.9.5 -B
gvm use go1.9.5 --default

The -B flag installs go from a binary release. If you don't add it, it will try to compile it from sources, which requires a bit more setup.

e.nikolov
  • 127
  • 1
  • 11