Heim >Backend-Entwicklung >Golang >Wie kann ich erkennen, ob der GoLand-Debugger in meinem Go-Programm ausgeführt wird?
Beim Debuggen in verwalteten Sprachen möchte man möglicherweise bestimmte Zeitverhaltensweisen deaktivieren oder alternative Codepfade ausführen. C# stellt zu diesem Zweck System.Diagnostics.Debugger.IsAttached bereit. Aber wie machen wir das in Go?
Obwohl es in Go kein direktes Äquivalent zu Debugger.IsAttached gibt, können Sie das Vorhandensein des Debuggers mithilfe von Build-Tags indirekt erkennen .
Schritt 1: Erstellen Sie zwei Helfer Dateien
isdelve/delve.go, wenn das Debuggen aktiviert ist:
// +build delve package isdelve const Enabled = true
isdelve/nodelve.go, wenn das Debuggen nicht aktiviert ist aktiviert:
// +build !delve package isdelve const Enabled = false
Schritt 2: Suchen Sie in Ihrem Hauptprogramm nach dem Build-Tag
import ( "fmt" "isdelve" ) func main() { fmt.Println("Debugging:", isdelve.Enabled) }
Schritt 3: Goland konfigurieren
Im GoLand-Fenster „Konfigurationen ausführen/debuggen“ unter „ Go-Tool-Argumente“ hinzufügen:
-tags=delve
Beim Debuggen mit Goland wird „Enabled“ auf „true“ gesetzt. Andernfalls ist es falsch.
Schritt 4: Alternative Methode mit DLV
Wenn Sie dlv lieber direkt verwenden möchten, verwenden Sie:
dlv debug --build-flags='-tags=delve' a.go
Dadurch wird „Enabled“ auf „true“ gesetzt.
Schritt 5: Dynamische Variable Einstellung
Alternativ können Sie den Befehl dlv verwenden, um eine Variable manuell nach dem Start des Debuggers wie folgt festzulegen:
> set enabled true
Dadurch wird eine global aktivierte Variable festgelegt, die Sie überprüfen können in Ihrem Code.
Das obige ist der detaillierte Inhalt vonWie kann ich erkennen, ob der GoLand-Debugger in meinem Go-Programm ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!