Commandes GDB communes
Il existe différentes façons d'invoquer le débogueur GNU. Vous pouvez taper directement gdb sur le terminal pour ouvrir sa console.
Alternativement, vous pouvez appeler le débogueur avec un fichier exécutable. Si vous avez un fichier exécutable, comme un programme C ou C ++, que vous souhaitez déboguer, vous pouvez le compiler en utilisant le -g option. Pour notre exemple, nous utiliserons un échantillon 1.cpp déposer.
Pour le compiler à l'aide du compilateur G ++, la commande sera:
$ g ++ -g -o échantillon1 échantillon1.cpp
Ici, nous ajoutons l'option -o pour écrire le programme compilé au fichier nommé échantillon 1.
Une fois compilé, vous pouvez invoquer le débogueur GNU tout en fixant le fichier de sortie compilé pour déboguer. La commande sera:
$ gdb échantillon1
Une console s'ouvre et vous pouvez utiliser les commandes GDB disponibles pour exécuter différentes activités. Les commandes communes incluent:
1. arrêter: Pour quitter la console GDB, Type quitte ou q.
2. exécuter [args]: En fonction des fonctions du programme, vous pouvez invoquer la fonction pour exécuter à l'aide de cette commande et ajouter les arguments nécessaires. Pour notre cas, nous avons le getSquare fonction, qui prend un argument du numéro. Par conséquent, si nous devons obtenir le carré d'un nombre, nous tapons courir suivi du numéro. Par exemple, faisons le carré de 6. La sortie sera comme indiqué ci-dessous:
En bas, vous pouvez noter que le programme a renvoyé la sortie du carré. Vous pouvez exécuter plus d'options avec différents arguments.
3. aider: il ouvre la page manuelle du débogueur GNU avec toutes les classes de commandes disponibles pour une utilisation.
Vous pouvez réduire la page d'aide en spécifiant la classe de commandes que vous souhaitez obtenir leur page manuelle. Pour cela, la syntaxe est utilisée ci-dessous:
$ help [nom de classe]
Par exemple, pour obtenir la page manuelle de la classe en cours, La sortie suivante sera:
4. casser: Lorsque vous devez déboguer le programme, vous pouvez ajouter divers points d'arrêt en utilisant la commande Break. De plus, il existe plusieurs façons d'ajouter un point d'arrêt.
Les façons courantes incluent:
b [Nom de la fonction]
Break [numéro de ligne]
Break [Nom de la fonction]
pause * [adresse]
Par exemple, si vous connaissez un nom de fonction spécifique dans le programme et que vous souhaitez en créer un point d'arrêt pour le débogage, vous pouvez utiliser la syntaxe précédente. Créons un point d'arrêt pour une fonction nommée getSquare Dans le programme suivant:
Dans la sortie précédente, nous avons créé le point d'arrêt et les informations affichées dans la console.
Si vous essayez d'exécuter le programme, il s'arrêtera au point d'arrêt. Par exemple, obtenons le carré de 12 en utilisant courir 12.
Le débogueur s'arrête au point d'arrêt où le nom de la fonction spécifiée est. À ce stade, vous pouvez déboguer votre programme et continuer une fois que tout fonctionne bien.
5. Continuer ou c: Une fois le débogage terminé et que vous souhaitez reprendre l'exécution de la commande sans le point de rupture set, exécutez la commande Continuer. Il exécutera la commande jusqu'au prochain point d'arrêt ou à la fin du programme. Si vous souhaitez ajouter le nombre de fois pour répéter la commande Continuer, ajoutez le compte.
Les deux syntaxes sont:
continuer ou c
c [comptage de répétition]
Pour notre cas, continuons sans aucun nombre de répétitions.
Il donne la sortie de la commande interrompue. Si nous avions différents arguments, cela fournirait chaque résultat après un point d'arrêt. Par exemple, invoquons Courir 4 6 8, puis utilisez le continuer commande de voir ce qui se passe.
Vous remarquerez après chaque argument selon lequel le programme rencontre un point d'arrêt. Lorsque nous exécutons la commande Continuer, il reprend son exécution.
6. suivant: Lorsque le programme rencontre un point d'arrêt, vous pouvez taper suivant ou n Pour imprimer la ligne suivante en exécution.
7. supprimer: Si vous avez différents points d'arrêt et points de contrôle, vous pouvez les supprimer en utilisant la commande suivante. Si vous courez d ou supprimer Sans arguments, il supprime tous les points d'arrêt et les points de contrôle. Cependant, vous pouvez spécifier lequel supprimer en sélectionnant son numéro.
8. clair: Pour supprimer un point d'arrêt associé à un nom de fonction donné, utilisez la commande Clear suivante suivie du nom de la fonction:
À ce stade, nous n'avons plus de point d'arrêt dans notre programme.
Si la suppression d'un point d'arrêt n'est pas une option, que diriez-vous de les désactiver et de les activer chaque fois que vous le souhaitez?
9. désactiver et activer: Pour désactiver un point d'arrêt, spécifiez son numéro.
Plus tard, utilisez la commande Activer suivie de son numéro pour l'activer.
dix. Info: Vous pouvez obtenir les détails des points de contrôle et des points d'arrêt disponibles. Utilisez la commande suivante pour obtenir les détails de tous les points d'arrêt ou points de contrôle:
Points de rupture d'informations
Points de contrôle d'information
Pour spécifier un point d'arrêt ou un point de contrôle, utilisez la syntaxe suivante:
Informations Points d'arrêt [BreakPoint-Number]
Info Checkpoint [Breakpoint-Number]
11. Définir les args: pour définir une liste d'arguments à utiliser lors de l'exécution du courir Commande, utilisez des args set suivis des arguments. Par exemple:
Set Args 2 4
Si nous invoquons la commande RUN, elle obtiendra le carré des deux arguments.
Vous pouvez afficher la liste des arguments disponibles en utilisant le montrer des args commande.
Conclusion
Nous avons couvert la liste GDB la plus courante des commandes dans Linux. Avec un peu de pratique, il deviendra plus facile d'utiliser les commandes pour atteindre différentes fonctionnalités. Espérons que cet article a fourni un maint dans l'utilisation des commandes de débogueur GNU.