Suivant: , Monter: Installer les fichiers de débogage   [Table des matières][Index]


12.1 Informations de débogage séparées

The problem with debugging information is that is takes up a fair amount of disk space. For example, debugging information for the GNU C Library weighs in at more than 60 MiB. Thus, as a user, keeping all the debugging info of all the installed programs is usually not an option. Yet, space savings should not come at the cost of an impediment to debugging—especially in the GNU system, which should make it easier for users to exert their computing freedom (voir Distribution GNU).

Heureusement, les utilitaires binaires de GNU (Binutils) et GDB fournissent un mécanisme qui permet aux utilisateurs d’avoir le meilleur des deux mondes : les informations de débogage peuvent être nettoyées des binaires et stockées dans des fichiers séparés. GDB peut ensuite charger les informations de débogage depuis ces fichiers, lorsqu’elles sont disponibles (voir Separate Debug Files dans Debugging with GDB).

La distribution GNU se sert de cela pour stocker les informations de débogage dans le sous-répertoire lib/debug d’une sortie séparée du paquet appelée sans grande imagination debug (voir Des paquets avec plusieurs résultats). Les utilisateurs peuvent choisir d’installer la sortie debug d’un paquet lorsqu’ils en ont besoin. Par exemple, la commande suivante installe les informations de débogage pour la bibliothèque C de GNU et pour GNU Guile :

guix install glibc:debug guile:debug

On doit ensuite dire à GDB de chercher les fichiers de débogage dans le profil de l’utilisateur, en remplissant la variable debug-file-directory (vous pourriez aussi l’instancier depuis le fichier ~/.gdbinit, voir Startup dans Debugging with GDB) :

(gdb) set debug-file-directory ~/.guix-profile/lib/debug

À partir de là, GDB récuperera les informations de débogage des fichiers .debug sous ~/.guix-profile/lib/debug.

EN plus, vous voudrez sans doute que GDB puisse montrer le code source débogué. Pour cela, vous devrez désarchiver le code source du paquet qui vous intéresse (obtenu via guix build --source, voir Invoquer guix build) et pointer GDB vers ce répertoire des sources avec la commande directory (voir directory dans Debugging with GDB).

Le mécanisme de sortie debug dans Guix est implémenté par le gnu-build-system (voir Systèmes de construction). Actuellement, ce n’est pas obligatoire — les informations de débogage sont disponibles uniquement si les définitions déclarent explicitement une sortie debug. Cela pourrait être modifié tout en permettant aux paquets de s’en passer dans le futur si nos serveurs de construction peuvent tenir la charge. Pour vérifier si un paquet a une sortie debug, utilisez guix package --list-available (voir Invoquer guix package).

Continuez à lire pour apprendre comment gérer les paquets qui n’ont pas de sortie debug.


Suivant: , Monter: Installer les fichiers de débogage   [Table des matières][Index]