web-dev-qa-db-fra.com

Comment utiliser le débogueur Delve dans Visual Studio Code

J'ai installé l'extension Go pour VS Code, mais je suis incapable de le faire fonctionner.

"dlv debug" fonctionne bien à partir du terminal.

dlv debug src/github.com/user/hello

Le launch.json:

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

Savez-vous comment le configurer?

14
Chris G.

Pour utiliser le débogueur Delve dans Visual Studio Code avec Golang, procédez comme suit:

( Note: for Windows OS replace all $GOPATH with %GOPATH% )
  • Installez Latest Golang et définissez GOROOTand GOPATHname__
  • Ajoutez $GOPATH/bin à la variable d’environnement de votre système PATHname__.
  • définir la variable d'environnement: GO15VENDOREXPERIMENT = 1
  • lancez: go get github.com/derekparker/delve/cmd/dlv et assurez-vous que dlvbinaire est généré dans votre $GOPATH/bin
  • Installer Code Visual Studio
  • Lancer VS Code Quick Open (Ctrl+P), collez cette commande: ext install Go et appuyez sur entrée.
  • cliquez sur installer Rich Go language support for Visual Studio Code
  • cliquez sur Enableet redémarrez Visual Studio Code
  • Dans Visual Studio Code Open Folder Ctrl+Shift+E , par exemple: $GOPATH\src\hello\
  • Puis ouvrez hello.go à partir de ce dossier (ou créez un nouveau fichier Ctrl+N et enregistrez-le sur ce dossier):
package main

import "fmt"

func main() {
    fmt.Println("Hello World!")
    i := 101
    fmt.Println(i)
}
  • Puis ouvrez le débogueur Ctrl+Shift+D
  • sur cette ligne: i := 101 appuyez sur F9 pour définir ou basculer le point de bec.
  • Presse F5 pour démarrer le débogage ou exécuter l'application, si vous êtes invité à sélectionner l'environnement: sélectionnez Goname__.
  • Presse F10 pour passer.
  • Presse F11 entrer dans.
  • Presse Shift+F11 sortir.
  • Presse Shift+F5 arrêter le débogage.
  • Presse Ctrl+Shift+F5 redémarrer le débogage.

Mon launch.json intact:

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

Résultat:

enter image description here

52
user6169399

FTA (au cas où il est difficile à trouver), si vous utilisez delve et que vous obtenez une erreur cannot find package alors que votre GOPATH est correctement défini, consultez ce bogue de vscode-go , il affecte à la fois MAC OS et Linux, à partir d'octobre 2017.

La solution est également affichée ici: 

... l'ajout de GOPATH en tant que variable env dans la propriété env du fichier launch.json a résolu le problème

0
xpt

Content launch.json pour gdb et 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
                }
            ]
        },
    }
]

}

0
big-town