Maison > développement back-end > Golang > Comment puis-je détecter si le débogueur GoLand est exécuté dans mon programme Go ?

Comment puis-je détecter si le débogueur GoLand est exécuté dans mon programme Go ?

Barbara Streisand
Libérer: 2024-12-03 09:31:14
original
497 Les gens l'ont consulté

How Can I Detect if the GoLand Debugger is Running in My Go Program?

Comment détecter l'exécution du débogueur GoLand dans un programme

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 ?

Une solution indirecte pour 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
    Copier après la connexion
  • isdelve/nodelve.go lorsque le débogage ne l'est pas activé :

    // +build !delve
    
    package isdelve
    
    const Enabled = false
    Copier après la connexion

Étape 2 : Vérifiez la balise Build dans votre programme principal

import (
    "fmt"
    "isdelve"
)

func main() {
    fmt.Println("Debugging:", isdelve.Enabled)
}
Copier après la connexion

É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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

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