Comment installer GDB dans RHEL 8
- 3864
- 333
- Emilie Colin
Gdb ou le débogueur du projet GNU est un excellent outil lorsque vous avez besoin de déboguer un programme. Vous pouvez définir des points d'arrêt, surveiller le changement de valeur d'une variable, ou même modifier une valeur pour le programme alors qu'il est interrompu à un point de son état, puis continuer, juste pour choisir certaines des fonctionnalités de GDB.
Dans ce tutoriel, nous installerons GDB sur RHEL 8 et testerons comment cela fonctionne avec une application C simple.
Dans ce tutoriel, vous apprendrez:
- Comment installer GDB
- Comment compiler une application C simple avec des symboles de débogage
- Comment définir des points d'arrêt dans l'application en cours d'exécution avec GDB
- Comment imprimer les valeurs réelles des variables données au sein de l'application
Exigences et conventions logicielles utilisées
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Red Hat Enterprise Linux 8 |
Logiciel | GDB 8.2 |
Autre | Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande. |
Conventions | # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier |
Comment installer GDB dans Redhat Linux 8 instructions étape par étape
Pour ce tutoriel, nous utiliserons une application C simple qui définit certaines variables, imprimez du texte et modifiez les valeurs de ses variables plus tard. Il est construit uniquement pour montrer certaines fonctionnalités de gdb
, et n'a pas d'utilisation du monde réel.
Si vous n'êtes pas familier avec le langage de programmation C, vous pouvez consulter C Development on Linux Introduction pour vous faire démarrer. Pour l'instant, considérez le code source suivant, que nous allons mettre dans le varbac.c
fichier texte:
#include int main () int i = 1; int j = 10; printf ("variables set \ n)"; i ++; j = 20; printf ("Valeurs de variables modifiées \ n"); retour 0;
Copie Nous utiliserons ce programme simple pour tester gdb
. Vous remarquerez peut-être à partir du code que les valeurs variables je
et J
la prise ne sera jamais exposée dans le cadre du programme normal du programme, nous ne saurons donc pas quelles valeurs, et quand. Dans ce cas, c'est un simple gaspillage de mémoire, mais pensez à un cas d'utilisation où je
Tendrait quelque chose d'important, peut-être un mot de passe à code dur, un code de triche ou un autre trésor (ou ne peut tout simplement pas trouver où tournent mal les calculs de votre programme).
gdb
fait partie duOutils de développement
groupe de packages, donc si vous avez installé des outils de développement, vous avez déjà GDB. Sinon, vous pouvez l'installer par lui-même:# DNF Installer GDB
Nous aurons également besoin de Debuginfo pour GLIBC pour nos tests:
# dnf debuginfo-install glibc-2.28-18.EL8.x86_64
- Nous avons obtenu l'outil de débogueur et nous avons obtenu le code source. Pour que le débogage soit utile, nous devons compiler notre programme avec des symboles de débogage (nous ajoutons le
-g
option):$ gcc -g -o vars.c
Si nous dirigeons notre
varbac
programme, il sortira les cordes dans leprintf
lignes, mais ne mentionnera pasje
etJ
, comme prévu.$ ./ variables VARS définissent les valeurs variables modifiées
- Nous devons connaître les valeurs de
je
etJ
Quand ils se sont déroulés pour la première fois, et avant la sortie du programme. Considérez les lignes n ° 7 et n ° 10 (leprintf
lignes) dans la source. Il serait idéal si nous pouvions arrêter l'exécution à ces lignes, obtenir les valeurs, puis laisser le programme à nouveau, etc. Nous ferons exactement cela pour testergdb
. Nous commençons avec le compilévarbac
Exécutable comme argument:$ gdb vars gnu gdb (gdb) Red Hat Enterprise Linux 8.2-3.EL8 Copyright (C) 2018 Free Software Foundation, Inc. Licence GPLV3 +: GNU GPL Version 3 ou version ultérieure C'est un logiciel gratuit: vous êtes libre de le modifier et de le redistribuer. Il n'y a pas de garantie, dans la mesure permise par la loi. Tapez "Afficher la copie" et "Afficher la garantie" pour plus de détails. Ce GDB a été configuré comme "x86_64-redhat-linux-gnU". Tapez "Afficher la configuration" pour les détails de configuration. Pour les instructions de rapport de bogues, veuillez consulter: . Trouvez le manuel GDB et d'autres ressources de documentation en ligne sur: . Pour obtenir de l'aide, tapez "AIDE". Tapez "APROPOS Word" pour rechercher des commandes liées à "Word"… les symboles de lecture de VARS… fait. (GDB)
gdb
lit les symboles du programme et nous donne l'invite à agir. Levarbac
Le programme n'est pas démarré à ce stade. Nous vérifions nos notes et définissons unpoint d'arrêt
à la ligne n ° 7:(GDB) pause 7 Point d'arrêt 1 à 0x40059c: fichier VARS.C, ligne 7.
Et ligne n ° 10:
(GDB) pause 10 Point d'arrêt 2 à 0x4005b1: fichier VAR.C, ligne 10.
Avec l'ensemble des points d'arrêt, nous commençons l'exécution:
(GDB) courir Programme de démarrage: / tmp / devel / varS Breakpoint 1, main () à VARS.c: 7 7 printf ("variables set \ n");
L'exécution s'arrête au premier point d'arrêt, et nous pouvons imprimer les valeurs des variables cachées:
(GDB) Imprimer I 1 $ = 1 (GDB) imprimer J 2 $ = 10
Nous avons obtenu la première partie des informations nécessaires, continuons l'exécution:
(GDB) continuer Continu. Variables Set Breakpoint 2, Main () à VARS.C: 10 10 printf ("Valeurs de variables modifiées \ n");
Nous pouvons imprimer les valeurs de la même manière au prochain point d'arrêt:
(gdb) Imprimer I 3 $ = 2 (GDB) Imprimer J 4 $ = 20
Nous avons tout ce dont nous avions besoin. Il ne reste plus de points d'arrêt, donc l'application quittera normalement après l'impression de la dernière ligne de texte.
(gdb) Continuer. Valeurs variables modifiées [inférieur 1 (processus 2330) quittent normalement] (GDB) Q
Nous avons obtenu les valeurs des variables secrètes et testé que notre
gdb
est aussi utile que ce qu'il est censé être.
Tutoriels Linux connexes:
- Tutoriel de débogage GDB pour les débutants
- Choses à installer sur Ubuntu 20.04
- Choses à installer sur Ubuntu 22.04
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
- Installez Arch Linux dans VMware Workstation
- Ubuntu 20.04 Guide
- Comment doubler Kali Linux et Windows 10
- Système linux hung? Comment s'échapper vers la ligne de commande et…
- Comment utiliser ADB Android Debug Bridge pour gérer votre Android…