Как использовать отладчик Delve в коде Visual Studio

Я установил расширение Go для VS-кода, но не смог заставить его работать.

"dlv debug" работает нормально с терминала.

dlv debug src/github.com/user/hello

на launch.json:

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

вы знаете, как его настроить?

3 ответов


для использования отладчика Delve в коде Visual Studio с Golang выполните следующие действия:

( Note: for Windows OS replace all $GOPATH with %GOPATH% )
  • Установить Последнюю Версию Golang и set GOROOT и GOPATH
  • добавить $GOPATH/bin С вашей ОС PATH переменные среды.
  • установить переменную окружения: GO15VENDOREXPERIMENT = 1
  • run:go get github.com/derekparker/delve/cmd/dlv и убедится dlv двоичный файл создается в папке $GOPATH/bin
  • установить Код Visual Studio
  • запуск VS Code Quick Open (Ctrl+P), вставить эту команду: ext install Go и нажмите enter.
  • нажмите кнопку установки Rich Go language support for Visual Studio Code
  • клик Enable и перезапустите Visual Studio Code
  • внутри Visual Studio Code Открыть Папку Ctrl+ Shift+E , например: $GOPATH\src\hello\
  • Откройте hello.go из этой папки (или создать новый файл Ctrl+N и сохранить его в этой папке):
package main

import "fmt"

func main() {
    fmt.Println("Hello World!")
    i := 101
    fmt.Println(i)
}
  • Затем Откройте Отладчик Ctrl+ Shift+D
  • на эту строку: i := 101 пресс F9 установить или переключить beakpoint.
  • пресс Ф5 чтобы начать отладку или запустить приложение, если вас попросят выбрать environment: select Go.
  • пресс Ф10 перешагнуть.
  • пресс F11 войти.
  • пресс Shift+F11 выйти.
  • пресс Shift+Ф5 остановить отладку.
  • пресс Ctrl+ Shift+Ф5 для перезапуска отладки.

мой launch.json нетронутым:

{
    "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
        }
    ]
}

результат:

enter image description here


FTA (в случае, если это трудно найти), если при использовании delve и вы cannot find package ошибки, даже если ваш GOPATH установлен правильно, проверьте эта ошибка vscode-go, это влияет как на MAC OS, так и на Linux, по состоянию на октябрь 2017 года.

решение также опубликовано там:

... добавление GOPATH в качестве env var в свойство env при запуске.файл json решил проблему


запуск контента.json для gdb и delve

{
// Используйте IntelliSense, чтобы узнать о возможных атрибутах.
// Наведите указатель мыши, чтобы просмотреть описания существующих атрибутов.
// Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
    {
        "name": "Delve",
        "type": "go",
        "request": "launch",
        "mode": "debug",
        "remotePath": "",
        "port": 2345,
        "host": "127.0.0.1",
        "program": "${workspaceRoot}/src/hello/hello.go",
        "env": {},
        "args": [],
        "showLog": true
    }
   ,
    {
        "type": "gdb",
        "request": "launch",
        "name": "GDB",

        "target": "${workspaceRoot}/src/hello/hello",
        "cwd": "${workspaceRoot}",
        "linux": {
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
    }
]

}