Maison > développement back-end > Golang > Go peut-il détecter la pièce jointe du débogueur GoLand comme « Debugger.IsAttached » de C# ?

Go peut-il détecter la pièce jointe du débogueur GoLand comme « Debugger.IsAttached » de C# ?

Susan Sarandon
Libérer: 2024-12-06 05:22:09
original
897 Les gens l'ont consulté

Can Go Detect GoLand Debugger Attachment Like C#'s `Debugger.IsAttached`?

Détection de l'exécution du débogueur GoLand dans un programme

En C#, un programme en cours d'exécution peut identifier s'il est sous la supervision du débogueur via la méthode "System.Diagnostics.Debugger.IsAttached". .

Go peut-il atteindre une fonctionnalité similaire ? Ceci est particulièrement souhaitable pour désactiver les délais d'attente pendant le débogage du code.

Plus précisément, cette question se pose dans le contexte de l'utilisation du débogueur GoLand.

Solution

Utilisation Balises de construction :

  1. Créez deux fichiers sources Go : "isdelve/delve.go" et "isdelve/nodelve.go."
  2. Dans "isdelve/delve.go", ajoutez la balise de build suivante :

    // +build delve
    Copier après la connexion
  3. Dans "isdelve/nodelve.go", ajoutez la version suivante tag :

    // +build !delve
    Copier après la connexion
  4. Ajoutez une déclaration "package isdelve" aux deux fichiers et déclarez la constante "Enabled" :

    package isdelve
    
    const Enabled = true
    
    // or
    
    package isdelve
    
    const Enabled = false
    Copier après la connexion
  5. Créez un troisième fichier Go, "a.go", qui importe le "isdelve" package :

    package main
    
    import (
        "isdelve"
        "fmt"
    )
    
    func main() {
        fmt.Println("delve", isdelve.Enabled)
    }
    Copier après la connexion

Configuration de GoLand :

  1. Ouvrez la fenêtre « Exécuter/déboguer les configurations » dans GoLand.
  2. Ajoutez "-tags=delve" aux "arguments de l'outil Go"

Utilisation :

  • Lors de l'exécution de "go run a.go" en dehors de GoLand, le programme signalera "delve false".
  • Lorsque vous utilisez dlv pour déboguer, utilisez "dlv debug --build-flags='-tags=delve' a.go." Cela signalera "delve true".

Alternative :

Alternativement, la commande "set" de Delve peut 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