A propos des symboles de débogage

La plupart des programmes et des bibliothèques sont compilés, par défaut, avec les informations de débogage (avec l'option -g de gcc).

Lors du débogage d'un programme ou d'une librairie qui a été compilée avec les options de débogage, le débogueur vous donnera non seulement les adresses mémoires, mais aussi les noms des routines et des variables.

Mais l'inclusion de ces informations de débogage grossit le programme ou la bibliothèque de manière significative. Pour avoir une idée de la quantité d'espace que ces symboles occupent, regarder ceci :

Les tailles peuvent varier un peu selon le compilateur utilisé et la version de la bibliothèque C utilisée. Mais lors d'une comparaison entre des programmes avec les informations de débogage et ceux sans, la différence sera généralement d'un facteur 2 à 5.

Comme la plupart des gens n'utiliseront probablement jamais un débogueur sur leurs exécutable systeme, beaucoup de place disque peut être gagnée en supprimant ces informations.

Pour enlever les informations de débogage d'un binaire (qui doit être de type a.out ou ELF), exécutez strip --strip-debug filename. Les jokers peuvent être utilisés pour traiter plusieurs fichiers (utilisez quelque chose comme strip --strip-debug $LFS/tools/bin/*).

Pour vous faciliter la tâche, le chapitre 9 comprend une commande unique pour supprimer tous les symboles de débogage des programmes et bibliothèques de votre système. des informations supplémentaires sont disponibles dans l'astuce http://www.linuxfromscratch.org/hints/downloads/files/optimization.txt.