Introduction à GDB
        
        
          GDB, le débogueur du projet GNU,
          permet de voir ce qu'il se passe « à
          l'intérieur » d'un autre programme, pendant
          qu'il s'exécute — ou ce que faisait un autre programme au
          moment où il a planté. Notez que GDB est plus performant quand les programmes
          et les bibliothèques tracées sont construits avec les symboles de
          débogage et qu'ils n'ont pas été nettoyés.
        
        
          
          
            Note
          
          
            Les versions de développement de BLFS peuvent ne pas arriver à
            contruire ou à exécuter certains paquets correctement si LFS ou
            des dépendances ont été mises à jour depuis la dernière version
            stable des livres.
          
         
        
          Informations sur le paquet
        
        
          
            - 
              
                Téléchargement (HTTP) : https://ftp.gnu.org/gnu/gdb/gdb-16.3.tar.xz
              
             
            - 
              
                Téléchargement (FTP) : 
              
             
            - 
              
                Somme de contrôle MD5 du téléchargement :
                f7a7e2d0a6d28622ac69a3623b23876b
              
             
            - 
              
                Taille du téléchargement : 23 Mo
              
             
            - 
              
                Estimation de l'espace disque requis : 853 Mo (plus
                825 Mo pour la doc, plus 860 Mo pour les tests)
              
             
            - 
              
                Estimation du temps de construction : 1,1 SBU (plus
                1,0 SBU pour la doc, plus 3,5 SBU pour les tests,
                le tout avec parallélisme = 8)
              
             
          
         
        
          Dépendances de GDB
        
        
          Dépendance recommandée à l'exécution
        
        
          six-1.17.0 (module Python 3, requis à l'exécution
          pour utiliser des scripts GDB de divers paquets de LFS et BLFS avec
          le Python 3 installé dans LFS)
        
        
          Facultatives
        
        
          Doxygen-1.15.0, GCC-15.2.0 (ada, gfortran et go
          sont utilisés pour certains tests), Guile-3.0.10, rustc-1.91.0 (utilisé par
          certains tests), Valgrind-3.26.0 et SystemTap (dépendance
          d'exécution, utilisé pour les tests)
        
       
      
        
          Installation de GDB
        
        
          Installez GDB en exécutant les
          commandes suivantes :
        
        mkdir build &&
cd    build &&
../configure --prefix=/usr          \
             --with-system-readline \
             --with-system-zlib     \
             --with-python=/usr/bin/python3 &&
make
        
          Éventuellement, pour construire la documentation de l'API en
          utilisant Doxygen-1.15.0, lancez :
        
        make -C gdb/doc doxy
        
          Il n'est pas recommandé d'exécuter les tests. Les résultats varient
          beaucoup en fonction de l'architecture du système et des
          dépendances facultatives installées et la version de gcc utilisée.
          Sur un système testé, il y a eu 140 échecs imprévus (sur plus de
          108 000 tests) et sur un autre système « seulement »
          14 échecs imprévus. La durée d'exécution des tests varie entre
          environ 3 SBU à plus de 15 SBU avec -j8. Cela dépend du
          nombre de tests qui dépassent leur délai d'attente et d'autres
          facteurs.
        
        
          
          
            Astuce
          
          
            Avec un simple make
            check, il y a de nombreux messages
            d'avertissement à propos d'un fichier de configuration global
            manquant. On peut les éviter en exécutant touch global.exp et en ajoutant
            avant la commande make
            check, DEJAGNU=$PWD/global.exp. De
            plus, les tests peuvent être considérablement accélérés en
            utilisant l'option make « -j<N> »
            où <N> est le nombre de cœurs sur votre système. Parfois,
            utiliser le parallélisme peut causer des échecs étranges.
          
         
        
          Pour tout de même tester les résultats exécutez :
        
        pushd gdb/testsuite &&
make  site.exp      &&
echo  "set gdb_test_timeout 30" >> site.exp &&
make check 2>1 | tee gdb-check.log
popd
        
          Voir gdb/testsuite/README et
          TestingGDB. Il y a
          plein de problèmes supplémentaires avec la suite de tests :
        
        
          
            - 
              
                Des répertoires propres sont requis si vous relancez les
                tests. Pour cette raison, il est recommandé de créer une
                copie du répertoire des codes sources compilés avant les
                tests au cas où vous devriez relancer les tests.
              
             
            - 
              
                Les résultats peuvent également dépendre des compilateurs
                installés.
              
             
            - 
              
                Sur certains systèmes AMD, plus de 200 tests supplémentaires
                ont échoués à cause d'une différence dans l'implémentation du
                parallélisme sur ces CPU.
              
             
            - 
              
                Pour gdb-16.1, avec un processeur Intel Xeon E5-1650 v3, il y
                a eu 14 échecs inattendus sur plus de 120 000 tests.
              
             
            - 
              
                Quatre tests dans la suite gdb.base/step-over-syscall.exp sont connus
                pour échouer à cause de changements dans Linux 6.13 et
                glibc-2.41.
              
             
          
         
        
          Maintenant, en tant qu'utilisateur root :
        
        make -C gdb install &&
make -C gdbserver install
        
          Si vous avez construit la documentation de l'API, c'est maintenant
          dans gdb/doc/doxy. Vous pouvez l'installer (en tant qu'utilisateur
          root) :
        
        install -d /usr/share/doc/gdb-16.3 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-16.3
       
      
        
          Explication des commandes
        
        
          --with-system-readline : Ce
          paramètre force GDB a utiliser la
          copie de Readline installée dans
          LFS.
        
        
          --with-system-zlib :
          Ce paramètre force GDB a utiliser
          la copie de Zlib installée dans
          LFS.
        
        
          --with-python=/usr/bin/python3 :
          ce paramètre force GDB à utiliser
          Python 3.