Heim > Backend-Entwicklung > Golang > Wie kann ich erkennen, ob der GoLand-Debugger in meinem Go-Programm ausgeführt wird?

Wie kann ich erkennen, ob der GoLand-Debugger in meinem Go-Programm ausgeführt wird?

Barbara Streisand
Freigeben: 2024-12-03 09:31:14
Original
509 Leute haben es durchsucht

How Can I Detect if the GoLand Debugger is Running in My Go Program?

So 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)
}
Nach dem Login kopieren

Schritt 3: Goland konfigurieren

Im GoLand-Fenster „Konfigurationen ausführen/debuggen“ unter „ Go-Tool-Argumente“ hinzufügen:

-tags=delve
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage