Maison >développement back-end >Golang >Comment utiliser gdb pour déboguer les programmes Go sous Linux
Pendant le processus de développement de Golang, nous rencontrons souvent des situations où nous devons déboguer des problèmes. À l’heure actuelle, nous avons besoin d’outils pour nous aider à déboguer. Dans Golang, l'outil de débogage le plus couramment utilisé est gdb. Cet article explique comment installer et configurer gdb sous le système d'exploitation Linux.
1. Qu'est-ce que gdb ?
gdb est un outil de débogage qui peut être utilisé sur plusieurs plateformes. Il prend en charge plusieurs langages de programmation tels que C, C++, Fortran et assembleur. En plus du débogage du programme en une seule étape, il prend également en charge plusieurs méthodes de débogage telles que l'affichage de la mémoire du programme, le débogage des points d'arrêt et le débogage conditionnel.
2. Installez gdb
Sous le système d'exploitation Linux, gdb est généralement fourni avec. Vous pouvez saisir la commande suivante sur la ligne de commande pour vérifier si gdb a été installé :
$ gdb -v
Si gdb est déjà installé, la ligne de commande affichera les informations de version de gdb, comme indiqué ci-dessous :
GNU gdb (GDB) 7.11.1 ...
Si gdb n'est pas installé , vous pouvez utiliser le gestionnaire de packages pour installer. En prenant Ubuntu comme exemple, vous pouvez saisir la commande suivante dans le terminal pour installer gdb :
sudo apt-get install gdb
Après les opérations ci-dessus, vous pouvez utiliser gdb dans le système.
3. Configurer gdb
gdb fournit des informations de débogage par défaut, mais ces informations peuvent ne pas être suffisantes. Par conséquent, vous devez ajouter des informations de débogage lors de la compilation des programmes Golang. Lors de la compilation, vous pouvez utiliser l'option "-gcflags" pour augmenter le niveau d'informations de débogage pour le compilateur. Par exemple :
go build -o hello-world -gcflags=all="-N -l" hello-world.go
où l'option "-N" signifie désactiver l'optimisation afin que nous puissions mieux tracer le programme, tandis que l'option "-l" signifie demander au compilateur de générer des informations sur le numéro de ligne.
4. Utilisation de gdb
Lors du débogage des programmes Golang, vous devez utiliser le plug-in -go-delve. Ce plugin fournit deux backends pour GDB et LLDB. GDB est le backend par défaut du langage Go. Dans cet article, nous expliquerons comment utiliser GDB pour déboguer des programmes.
1. Activez le débogage
Tout d'abord, démarrez gdb et chargez le programme qui doit être débogué :
$ gdb ./hello-world
Ensuite, entrez la commande "run" sur la ligne de commande GDB pour démarrer le programme :
(gdb) run
2. points d'arrêt
dans Entrez "break" sur la ligne où vous souhaitez définir un point d'arrêt.
Par exemple, définissez un point d'arrêt sur la ligne 5 de la fonction "main":
(gdb) break main.go:5
3. Une seule étape
Une façon courante de déboguer un programme consiste à effectuer une seule étape. Dans GDB, vous pouvez utiliser la commande "next" pour exécuter l'instruction suivante et la commande "step" pour saisir la première instruction dans la sous-fonction.
Par exemple, en accédant à la fonction « principale » :
(gdb) next
Appuyez sur Entrée pour exécuter plusieurs commandes « suivantes » successivement.
4. Afficher les valeurs des variables
Dans GDB, vous pouvez utiliser la commande "imprimer" pour afficher la valeur d'une variable.
Par exemple, affichez la valeur de la variable « i » dans la fonction « main » :
(gdb) print i
5. Terminer le débogage
Une fois le débogage terminé, vous pouvez entrer « quit » pour quitter GDB :
(gdb) quit
Résumé
Cet article présente comment installer et configurer gdb sous le système d'exploitation Linux, et comment utiliser gdb pour déboguer les programmes Golang. Dans le développement réel, gdb est un outil de débogage très important qui peut nous aider à trouver et à résoudre les problèmes plus rapidement.
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!