Maison > développement back-end > Golang > Existe-t-il un moyen de détecter le débogueur GoLand dans les programmes Go ?

Existe-t-il un moyen de détecter le débogueur GoLand dans les programmes Go ?

Susan Sarandon
Libérer: 2024-11-29 07:52:10
original
146 Les gens l'ont consulté

Is There a Way to Detect the GoLand Debugger in Go Programs?

Détection du débogueur Delve dans les programmes Go

Dans certains cas, il peut être avantageux de déterminer si un programme Go s'exécute sous le débogueur GoLand . En C#, la propriété System.Diagnostics.Debugger.IsAttached fournit cette fonctionnalité.

Y a-t-il un équivalent dans Go ?

Non, il n'y a actuellement aucun élément intégré méthode dans Go pour détecter la présence du débogueur comme en C#.

Solution de contournement à l'aide de Build Balises

Cependant, une solution de contournement est possible en utilisant les balises de build. En définissant une balise de build lorsque le débogueur Delve est en cours d'exécution, vous pouvez vérifier sa présence dans votre code.

  1. Créez deux fichiers :

    • isdelve/delve .go (définit la balise lorsque Delve est en cours d'exécution)
    • isdelve/nodelve.go (définit la balise lors de l'exécution de Delve n'est pas en cours d'exécution)
  2. Dans a.go, ajoutez :

    import (
        "isdelve"
        "fmt"
    )
    
    func main() {
        fmt.Println("delve", isdelve.Enabled)
    }
    Copier après la connexion
  3. Dans GoLand, activez la balise de build sous « Exécuter/Déboguer Configurations' en ajoutant -tags=delve dans 'Arguments de l'outil Go :'.
  4. Maintenant, vous pouvez vérifier si le le débogueur Delve est en cours d'exécution :

    • Si go run a.go rapporte que Delve est faux, il ne fonctionne pas.
    • Si dlv debug --build-flags='-tags=delve' a Les rapports .go sont vrais, c'est vrai en cours d'exécution.

À l'aide de la commande set de Delve

Comme alternative, Delve propose la commande set pour définir manuellement une variable après le démarrage du débogueur.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal