Comment installer GDB dans RHEL 8

Comment installer GDB dans RHEL 8

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
Stepping Trough A pour la boucle avec GDB.

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
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).

  1. gdb fait partie du Outils 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


  2. 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 le printf lignes, mais ne mentionnera pas je et J, comme prévu.

    $ ./ variables VARS définissent les valeurs variables modifiées
  3. Nous devons connaître les valeurs de je et J 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 (le printf 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 tester gdb. 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. Le varbac Le programme n'est pas démarré à ce stade. Nous vérifions nos notes et définissons un point 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…