Maison > Article > développement back-end > Comment puis-je détecter si un programme Go s'exécute sous un débogueur (par exemple, GoLand) ?
Dans le domaine de la programmation, il est souvent souhaitable d'identifier si un programme s'exécute sous l'œil vigilant d'un débogueur. En C#, cela peut être réalisé sans effort à l’aide de System.Diagnostics.Debugger.IsAttached. Mais qu'en est-il de Go, en particulier lors de l'utilisation du débogueur GoLand ?
Exploration des indicateurs de débogage
Dans Go, identifier l'exécution du débogueur n'est pas aussi simple qu'en C#. Cependant, une approche intelligente consiste à utiliser des balises de construction pour différencier les modes débogage et non-débogage. En exploitant l'argument --build-flags lors de l'exécution de dlv, il est possible de transmettre des balises spécifiques pour évaluer la présence du débogueur.
Implémentation avec Delve
Pour implémenter cette approche , créez deux fichiers sources Go :
Ces balises déterminent si la balise Activé la constante dans le package isdelve est vraie (mode débogage) ou fausse (mode non-débogage).
Dans le programme Go principal, importez le isdelve et vérifiez la constante Enabled pour vérifier l'état du débogage.
Configuration dans GoLand
Pour activer cette fonctionnalité dans GoLand, accédez à « Configurations d'exécution/de débogage » et ajoutez -tags=delve aux « arguments de l'outil Go ». Ceci configure le programme pour qu'il soit construit avec des indicateurs de débogage.
Mode de débogage externe
Dans les environnements non-GoLand, utilisez dlv debug --build-flags='-tags= delve' a.go pour appeler le débogueur avec les balises spécifiées.
Supplémentaire Alternative
Une autre approche consiste à utiliser la commande set de Delve pour définir manuellement une variable après le démarrage du débogueur. Cela offre une plus grande flexibilité dans des scénarios spécifiques.
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!