How to use Delve debugger in Visual Studio Code

Chris G. picture Chris G. · Aug 20, 2016 · Viewed 45.1k times · Source

I have installed the Go extension for VS Code, but unable to make it work.

"dlv debug" works alright from the terminal.

dlv debug src/github.com/user/hello

The launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceRoot}",
            "env": {},
            "args": []
        }
    ]
}

Do you know how to set it up?

Answer

user6169399 picture user6169399 · Aug 21, 2016

For using Delve debugger in Visual Studio Code with Golang, do the following steps:

( Note: for Windows OS replace all $GOPATH with %GOPATH% )
  • Install Latest Golang and set GOROOT and GOPATH
  • Add $GOPATH/bin to your OS PATH environment variable.
  • set environment variable: GO15VENDOREXPERIMENT = 1
  • run: go get github.com/derekparker/delve/cmd/dlv and make sure dlv binary generated in your $GOPATH/bin
  • Install Visual Studio Code
  • Launch VS Code Quick Open (Ctrl+P), paste this command: ext install Go , and press enter.
  • click install Rich Go language support for Visual Studio Code
  • click Enable and restart Visual Studio Code
  • Inside Visual Studio Code Open Folder Ctrl+Shift+E , e.g.: $GOPATH\src\hello\
  • Then Open hello.go from that folder (or make new file Ctrl+N and save it on this folder):
package main

import "fmt"

func main() {
    fmt.Println("Hello World!")
    i := 101
    fmt.Println(i)
}
  • Then Open Debugger Ctrl+Shift+D
  • on this line: i := 101 press F9 to set or toggle beakpoint.
  • Press F5 to start debugging or to Run the application, if asked to select environment: select Go.
  • Press F10 to Step Over.
  • Press F11 to Step Into.
  • Press Shift+F11 to Step Out.
  • Press Shift+F5 to Stop Debugging.
  • Press Ctrl+Shift+F5 to Restart Debugging.

My launch.json untouched:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "remotePath": "",
            "port": 2345,
            "host": "127.0.0.1",
            "program": "${workspaceRoot}",
            "env": {},
            "args": [],
            "showLog": true
        }
    ]
}

Result:

enter image description here