


Wie kann ich erkennen, ob der GoLand-Debugger in meinem Go-Programm ausgeführt wird?
Dec 03, 2024 am 09:31 AMSo erkennen Sie, dass GoLand Debugger in einem 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?
Eine indirekte Lösung für 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
Nach dem Login kopieren -
isdelve/nodelve.go, wenn das Debuggen nicht aktiviert ist aktiviert:
// +build !delve package isdelve const Enabled = false
Nach dem Login kopieren
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich?

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go?

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren?

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen?

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren?

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache?

Wie schreibe ich Dateien in Go Language bequem?

Wie kann ich Linter und statische Analyse -Tools verwenden, um die Qualität und Wartbarkeit meines GO -Codes zu verbessern?
