GDB-15.1

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.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

Informations sur le paquet

  • Téléchargement (HTTP) : https://ftp.gnu.org/gnu/gdb/gdb-15.1.tar.xz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 494e3beaac44e66367c3e443a4414529

  • Taille du téléchargement : 23 Mo

  • Estimation de l'espace disque requis : 806 Mo (plus 1,0 Go pour la doc, plus 720 Mo pour les tests)

  • Estimation du temps de construction : 0,9 SBU (plus 0,4 SBU pour la doc, voir plus bas pour les tests, le tout avec parallélisme = 8)

Dépendances de GDB

Dépendance recommandée à l'exécution

Facultatives

Doxygen-1.12.0, GCC-14.2.0 (ada, gfortran et go sont utilisés pour certains tests), Guile-3.0.10, rustc-1.80.1 (utilisé par certains tests), Valgrind-3.23.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-python=/usr/bin/python3 &&
make

Éventuellement, pour construire la documentation de l'API en utilisant Doxygen-1.12.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 » 32 échecs imprévus. La durée d'exécution des tests varie entre environ 6 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]

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.

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 dépendent 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.

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-15.1 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-15.1

Explication des commandes

--with-system-readline : Ce paramètre force GDB a utiliser la copie de Readline installée dans LFS.

--with-python=/usr/bin/python3 : ce paramètre force GDB à utiliser Python 3.

Contenu

Programmes installés: gcore, gdb, gdbserver et gdb-add-index
Bibliothèque installée: libinproctrace.so
Répertoires installés: /usr/{include,share}/gdb and /usr/share/doc/gdb-15.1

Descriptions courtes

gcore

génère un « core dump » d'un programme en cours d'exécution

gdb

est le débogueur GNU

gdbserver

est un serveur distant pour le débogueur GNU (il permet de déboguer des programmes depuis une autre machine)

gdb-add-index

Permet d'ajouter des fichiers d'index aux binaires ELF. Cela accélère le chargement de gdb sur les gros programmes.

libinproctrace.so

contient les fonctions pour l'agent de traçage dans les processus. L'agent autorise l'installation rapide de balises, le listage des marqueurs statiques de balises, et le démarrage de la surveillance.