Suchen Sie in VS Code Extensions nach Go und installieren Sie es.
Sie müssen Delve installieren, um Debugging (Haltepunkte, Step-Through usw.) in VS Code zu erhalten.
go install github.com/go-delve/delve/cmd/dlv@latest
Wenn Sie asdff verwendet haben, um Go zu installieren, befindet sich delve in:
~/.asdf/shims/dlv
Vielleicht möchten Sie asdf reshim ausführen, nachdem Sie ein Go-Paket installiert haben.
Da GoLang eine kompilierte Sprache ist, wird der Code in eine einzige ausführbare Datei kompiliert. Während der Entwicklung müssen wir bei Änderungen ständig neu kompilieren, was insbesondere in VS Code ein manueller Prozess sein kann.
Wir werden https://github.com/air-verse/air verwenden, um das Live-Nachladen für uns durchzuführen.
Es handelt sich um ein Befehlszeilentool, das nur einmal in Ihrem Projektordner ausgeführt werden muss, um auf Änderungen zu achten.
Installieren Sie das Paket. Vorausgesetzt, Sie haben Version 1.22 oder höher.
go install github.com/air-verse/air@latest
Wenn Sie asdf zur Installation von Go verwendet haben, befindet sich Air in:
~/.asdf/shims/air
Initialisieren Sie eine air.toml-Konfigurationsdatei in Ihrem Projektstammverzeichnis
cd ~/myproject air init
Bearbeiten Sie den Befehl air.toml [[go build]] wie folgt:
- all: Flags sollten auf alle Pakete in Build-Paketen angewendet werden
- -N: Optimierungen deaktiviert, um sicherzustellen, dass der generierte Code für ein einfacheres Debugging näher am Quellcode liegt
- -l: Deaktiviert die Inlining-Optimierung, bei der kleine Funktionen an Ort und Stelle erweitert werden, um den Overhead von Funktionsaufrufen zu reduzieren und das Debuggen zu erleichtern
- Argumentation aus Delve Reference
- cmd = "go build -o ./tmp/main ." + cmd = 'CGO_ENABLED=0 go build -gcflags=all="-N -l"-o ./tmp/main .'"'
[!info]
Air läuft mit den Standardkonfigurationen, wenn:
- Die Datei „air.toml“ ist ungültig
- Führen Sie es in Ihrem Projektordner aus, indem Sie den Befehl air ausführen
Ihre air.toml-Datei wird nicht verwendet.
Bearbeiten Sie air.toml full_bin, um die erstellte Binärdatei mit [[Delve]] auszuführen.
- full_bin = "" + full_bin = "dlv exec ./tmp/main --listen=127.0.0.1:2345 --headless=true --api-version=2 --accept-multiclient --continue --log --"
Dadurch wird Delve auf Port 2345 ausgeführt.
Führen Sie Air in Ihrem Projektordner aus. Sie sollten die folgende Ausgabe sehen.
> cd ~/my-project > air __ _ ___ / /\ | | | |_) /_/--\ |_| |_| \_ v1.52.3, built with Go go1.22.5 mkdir ~/my-project/tmp watching . !exclude tmp building... running... API server listening at: 127.0.0.1:2345 2024-07-28T18:47:07+07:00 info layer=debugger launching process with args: [./tmp/main] 2024-07-28T18:47:09+07:00 debug layer=debugger entryPoint 0x1006e8000 machoOff 0x100000000 2024-07-28T18:47:09+07:00 warning layer=debugger debug_frame workaround not applied: function internal/abi.(*RegArgs).IntRegArgAddr (at 0x1006e9070) covered by 0x1006e9070-0x1006e9110 2024-07-28T18:47:09+07:00 debug layer=debugger Adding target 11503 "/Users/alaay/projects/scheduleasy/tmp/main" 2024-07-28T18:47:09+07:00 debug layer=debugger continuing 2024-07-28T18:47:09+07:00 debug layer=debugger ContinueOnce 2024/07/28 18:47:09 Starting server on :5602
Fügen Sie in Ihrer .vscode/launch.config-Datei Folgendes hinzu:
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Attach to Air", "type": "go", "request": "attach", "mode": "remote", "port": 2345, "host": "127.0.0.1" } ] }
Starten Sie in VS Code Run and Debug (CMD + SHIFT + D) das Debuggen mit Attach to Air
[!info] VS-Code kann keine Verbindung herstellen
Wenn VS Code keine Verbindung herstellen kann, wird Delve höchstwahrscheinlich nicht auf Port 2345 ausgeführt. Versuchen Sie, mit lsof -i :2345 zu überprüfen, ob dlv über diesen Port ausgeführt wird. Wenn es läuft, sollten Sie Folgendes sehen:$ lsof -i :2345 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dlv 15464 username 3u IPv4 0x201bff14586139e3 0t0 TCP localhost:dbm (LISTEN)Nach dem Login kopieren
Go ist eine kompilierte Sprache. Das bedeutet, dass Code in eine Binärdatei kompiliert und dann ausgeführt wird. Immer wenn wir Änderungen am Code in vscode vornehmen:
Dies bedeutet, dass die Verbindung zum vscode getrennt wird und Sie den vscode zum Vertiefen erneut anschließen müssen.
Das obige ist der detaillierte Inhalt vonEinrichten von Delve und Air zum Debuggen von Golang mit VS-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!