Maison  >  Article  >  développement back-end  >  Comment puis-je détecter si le débogueur GoLand est connecté à un programme Go ?

Comment puis-je détecter si le débogueur GoLand est connecté à un programme Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-25 13:30:12950parcourir

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

Détection de la présence du débogueur GoLand dans un programme en cours d'exécution

Dans Go, contrairement à C# où System.Diagnostics.Debugger.IsAttached peut être utilisé pour détecter la présence du débogueur, il existe pas d'équivalent direct. Pour résoudre ce problème, une approche consiste à exploiter les balises de build avec le débogueur Delve.

Utilisation des balises de build

Créez deux fichiers :

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

package isdelve

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

package isdelve

const Enabled = false

Dans votre programme principal, importez le package isdelve et vérifiez le Constante activée :

import "isdelve"

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

Activation des balises de build dans GoLand

Dans GoLand, accédez à « Configurations d'exécution/débogage » et dans « Arguments de l'outil Go », ajoutez :

-tags=delve

Maintenant, l'exécution du programme dans GoLand activera la balise delve build, vous permettant d'accéder au isdelve.Enabled constante.

Utilisation de la commande set de Delve

Vous pouvez également utiliser la commande set de Delve pour définir une variable après le démarrage du débogueur :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn