Maison >développement back-end >Golang >Comment puis-je détecter si le débogueur GoLand est exécuté dans mon programme Go ?
Lors du débogage dans des langages gérés, on peut souhaiter désactiver certains comportements de synchronisation ou exécuter des chemins de code alternatifs. C# fournit System.Diagnostics.Debugger.IsAttached à cet effet. Mais comment faire cela dans Go ?
Bien qu'il n'y ait pas d'équivalent direct à Debugger.IsAttached dans Go, vous pouvez détecter indirectement la présence du débogueur à l'aide de balises de build .
Étape 1 : Créer deux assistants Fichiers
isdelve/delve.go lorsque le débogage est activé :
// +build delve package isdelve const Enabled = true
isdelve/nodelve.go lorsque le débogage ne l'est pas activé :
// +build !delve package isdelve const Enabled = false
Étape 2 : Vérifiez la balise Build dans votre programme principal
import ( "fmt" "isdelve" ) func main() { fmt.Println("Debugging:", isdelve.Enabled) }
Étape 3 : Configurez Goland
Dans la fenêtre « Configurations d'exécution/débogage » de GoLand, sous « Go arguments de l'outil", ajoutez :
-tags=delve
Lors du débogage avec Goland, Enabled sera défini sur true. Sinon, ce sera faux.
Étape 4 : Méthode alternative utilisant DLV
Si vous préférez utiliser dlv directement, utilisez :
dlv debug --build-flags='-tags=delve' a.go
Cela définira Activé sur vrai.
Étape 5 : Variable dynamique Paramètre
Vous pouvez également utiliser la commande dlv pour définir une variable manuellement après le démarrage du débogueur, comme suit :
> set enabled true
Cela définit une variable globale activée que vous pouvez vérifier dans votre code.
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!