Heim >Backend-Entwicklung >Golang >Wie kann ich erkennen, ob der GoLand-Debugger an ein Go-Programm angehängt ist?

Wie kann ich erkennen, ob der GoLand-Debugger an ein Go-Programm angehängt ist?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-25 13:30:121008Durchsuche

How Can I Detect if the GoLand Debugger is Attached to a Go Program?

Erkennen der Präsenz des GoLand-Debuggers in einem laufenden Programm

Im Gegensatz zu C#, wo System.Diagnostics.Debugger.IsAttached zum Erkennen der Präsenz des Debuggers verwendet werden kann, ist dies in Go der Fall kein direktes Äquivalent. Um dieses Problem zu lösen, besteht ein Ansatz darin, Build-Tags mit dem Delve-Debugger zu nutzen.

Verwenden von Build-Tags

Erstellen Sie zwei Dateien:

  • isdelve/delve.go:
// +build delve

package isdelve

const Enabled = true
  • isdelve/nodelve.go:
// +build !delve

package isdelve

const Enabled = false

Importieren Sie in Ihrem Hauptprogramm das isdelve-Paket und überprüfen Sie das Aktivierte Konstante:

import "isdelve"

func main() {
    fmt.Println("delve", isdelve.Enabled)
}

Build-Tags in GoLand aktivieren

Navigieren Sie in GoLand zu „Konfigurationen ausführen/debuggen“ und fügen Sie unter „Go-Tool-Argumente“ Folgendes hinzu:

-tags=delve

Wenn Sie nun das Programm in GoLand ausführen, wird das Delve-Build-Tag aktiviert, sodass Sie auf isdelve.Enabled zugreifen können Konstante.

Verwenden des Befehls „set“ von delve

Alternativ können Sie den Befehl „set“ von delve verwenden, um nach dem Starten des Debuggers eine Variable festzulegen:

dlv debug a.go
(dlv) set debug.enabled true

Das obige ist der detaillierte Inhalt vonWie kann ich erkennen, ob der GoLand-Debugger an ein Go-Programm angehängt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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