Heim > Backend-Entwicklung > Golang > Kann GoLand-Debugger-Anhänge wie „Debugger.IsAttached' von C# erkennen?

Kann GoLand-Debugger-Anhänge wie „Debugger.IsAttached' von C# erkennen?

Susan Sarandon
Freigeben: 2024-12-06 05:22:09
Original
895 Leute haben es durchsucht

Can Go Detect GoLand Debugger Attachment Like C#'s `Debugger.IsAttached`?

Erkennen der GoLand-Debugger-Ausführung innerhalb eines Programms

In C# kann ein laufendes Programm mithilfe der Methode „System.Diagnostics.Debugger.IsAttached“ erkennen, ob es unter Debugger-Überwachung steht .

Kann Go eine ähnliche Funktionalität erreichen? Dies ist besonders wünschenswert, um Zeitüberschreitungen beim Debuggen von Code zu deaktivieren.

Konkret stellt sich diese Frage im Zusammenhang mit der Verwendung des GoLand-Debuggers.

Lösung

Verwendung Build-Tags:

  1. Erstellen Sie zwei Go-Quelldateien: „isdelve/delve.go“ und „isdelve/nodelve.go“.
  2. Fügen Sie in „isdelve/delve.go“ das folgende Build-Tag hinzu:

    // +build delve
    Nach dem Login kopieren
  3. Fügen Sie in „isdelve/nodelve.go“ den folgenden Build hinzu tag:

    // +build !delve
    Nach dem Login kopieren
  4. Fügen Sie beiden Dateien eine „package isdelve“-Deklaration hinzu und deklarieren Sie die Konstante „Enabled“:

    package isdelve
    
    const Enabled = true
    
    // or
    
    package isdelve
    
    const Enabled = false
    Nach dem Login kopieren
  5. Erstellen Sie eine dritte Go-Datei, „a.go“, die die Datei „isdelve“ importiert. Paket:

    package main
    
    import (
        "isdelve"
        "fmt"
    )
    
    func main() {
        fmt.Println("delve", isdelve.Enabled)
    }
    Nach dem Login kopieren

GoLand konfigurieren:

  1. Öffnen Sie das Fenster „Konfigurationen ausführen/debuggen“ in GoLand.
  2. Fügen Sie „-tags=delve“ zu den „Go-Tool-Argumenten“ hinzu. Abschnitt.

Verwendung:

  • Wenn Sie „go run a.go“ außerhalb von GoLand ausführen, meldet das Programm „delve false“.
  • Wenn Sie dlv zum Debuggen verwenden, verwenden Sie „dlv debug --build-flags='-tags=delve' a.go.“ Dadurch wird „delve true“ gemeldet.

Alternative:

Alternativ kann der Befehl „set“ von delve nach dem Starten des Debuggers manuell eine Variable festlegen.

Das obige ist der detaillierte Inhalt vonKann GoLand-Debugger-Anhänge wie „Debugger.IsAttached' von C# erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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