Soweit ich weiß, gibt es keine integrierte Möglichkeit, dies in der beschriebenen Weise zu tun. Sie können jedoch mehr oder weniger dasselbe tun, indem Sie build-Tags verwenden, um anzuzeigen, dass der delve-Debugger ausgeführt wird. Sie können Build-Tags an dlv
mit dem Argument --build-flags
übergeben. Dies ist im Grunde die gleiche Technik, wie ich in How can I check if the race detector is enabled at runtime?
isdelve/delve.go
// +build delve
package isdelve
const Enabled = true
isdelve/nodelve.go
beschrieben:
// +build !delve
package isdelve
const Enabled = false
a.go
:
package main
import (
"isdelve"
"fmt"
)
func main() {
fmt.Println("delve", isdelve.Enabled)
}
go run a.go
Lauf wirdberichten, und läuft
dlv debug --build-flags='-tags=delve' a.go
wird melden delve true
.
Sie müssen dieses Flag irgendwo in der GoLand-Benutzeroberfläche übergeben. Ich kenne GoLand nicht, daher kann ich Ihnen mit diesem Teil nicht wirklich helfen.
Alternativ können Sie delve des set
Befehl manuell eine Variable setzen, nachdem der Debugger zu starten.
Welchen Debugger verwenden Sie? – Adrian
"Gibt es ein Äquivalent in Go?" Das würde man nicht hoffen. Der Code sollte sich beim Debuggen genauso verhalten wie nicht. Andernfalls werden Sie nicht ordnungsgemäß debuggen. – Flimzy
Danke @Adrian, ich habe die Frage aktualisiert. –