Maison  >  Article  >  développement back-end  >  Comment moduler le débogage de Golang

Comment moduler le débogage de Golang

PHPz
PHPzoriginal
2023-05-15 11:16:37423parcourir

Golang est un langage fortement typé, c'est un langage d'exécution compilé, ce qui signifie que les utilisateurs doivent compiler le code pour pouvoir l'exécuter. Lorsque vous écrivez un logiciel de qualité, le débogage de votre code est très important. Lorsqu'un bug dans le code est découvert, cela peut entraîner l'échec du programme ou produire des résultats inattendus. Cet article explique comment déboguer les modules dans Golang.

  1. Débogage avec GDB

GDB est un puissant outil de débogage qui peut être utilisé dans de nombreux langages de programmation. Dans Golang, GDB peut être utilisé en conjonction avec la bibliothèque d'exécution Golang pour suivre l'état d'exécution du processus, les fuites de mémoire et d'autres problèmes. La première étape de l'utilisation de GDB consiste à utiliser l'indicateur -g lors de la compilation de votre code pour enregistrer les symboles et les informations de débogage. Par exemple :

go build -gcflags "-N -l" -o myapp main.go

Ensuite, utilisez GDB pour exécuter le programme et définir des points d'arrêt. Par exemple, pour définir un point d'arrêt dans la fonction myFunc, exécutez la commande suivante :

(gdb) break myFunc

Ensuite, exécutez le programme :

(gdb) run

Une fois que le programme s'arrête au point d'arrêt myFunc, vous pouvez utiliser GDB pour inspecter les variables et appeler la pile et continuer en une seule étape Exécuter le programme ou modifier les variables directement dans le code.

  1. Déboguer avec Delve

Delve est un débogueur rapide, flexible et facile à utiliser qui fonctionne avec Golang. Contrairement à GDB, Delve a été développé spécifiquement pour Golang, il est donc très facile à utiliser et possède de nombreuses fonctionnalités spécifiques à Golang. Delve fournit des outils de ligne de commande et des API de débogage qui peuvent être utilisés à partir de la ligne de commande ou dans un IDE.

Vous devez d'abord utiliser l'outil go get pour installer Delve :

go get github.com/go-delve/delve/cmd/dlv

Ensuite, utilisez la commande suivante pour démarrer le programme dans le débogueur :

dlv debug <your_program.go>

Pendant le processus de démarrage du programme, Delve s'arrêtera automatiquement au premier ligne de code. Pour définir un point d'arrêt, vous pouvez appuyer sur Ctrl-C à tout moment ou entrer la commande break myFunc pour définir un point d'arrêt sur la fonction myFunc. Après avoir démarré le programme, lorsque le programme entre dans cette fonction, il s'arrêtera à ce point d'arrêt.

De nombreuses commandes peuvent être utilisées pour afficher et modifier l'état du programme. Certaines commandes courantes sont les suivantes :

  • Modifier la valeur d'une variable : set 4427259a143dae059a7f20af7ef733ee = 8487820b627113dd990f63dd2ef215f3
  • Imprimer la valeur d'une variable : print 4427259a143dae059a7f20af7ef733ee
  • Afficher le code source d'une fonction : list 8fd0b0dd077e9e3b89425c7034f15437
  • Continuez l'exécution du programme jusqu'au point d'arrêt suivant : continue

Delve possède également d'autres fonctionnalités. Par exemple, vous pouvez installer le plug-in Delve dans l'EDI, activer le mode DEBUG, démarrer le programme. en un seul clic et ajoutez facilement des points d'arrêt.

  1. Débogage avec Log

Dans certains cas, si vous disposez d'une base de code importante ou si vous utilisez une architecture différente, le débogueur peut devenir trop complexe ou trop difficile à utiliser. Dans ce cas, il peut être préférable d'utiliser le débogage des journaux. Dans Golang, vous pouvez ajouter des journaux à votre code à l'aide du module de journalisation intégré pour capturer les problèmes qui surviennent lors de l'exécution du programme.

Le module de journalisation comporte principalement quatre niveaux de journalisation, à savoir INFO, AVERTISSEMENT, ERREUR et FATAL. Vous pouvez utiliser ce module pour vous connecter à un fichier ou sortir sur la console.

Par exemple, dans la fonction principale du programme, vous pouvez activer la journalisation au niveau DEBUG en utilisant le code suivant :

import "log"

func main() {
    log.SetFlags(log.LstdFlags | log.Lshortfile)
    log.SetLevel(log.DebugLevel)

    log.Debug("Starting program...")
    // ...
}

Vous pouvez ensuite vous connecter n'importe où dans le code :

log.Debugf("x=%d", x)

Lorsque le programme est en cours d'exécution, l'appel de n'importe quelle fonction de journalisation sera Écrit le message approprié sur la sortie standard, telle qu'un terminal ou un fichier de sortie.

Résumé

Peu importe l'outil que vous choisissez d'utiliser ou le style de débogage que vous préférez, le débogage est un outil essentiel pour rechercher et résoudre les problèmes avec tous les programmes. Dans Golang, vous pouvez utiliser GDB, Delve ou log pour déboguer et affiner votre code. Utilisez ces outils et techniques pour améliorer la lisibilité, les performances et la robustesse du code, rendant ainsi votre logiciel plus fiable.

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!

Déclaration:
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