Le chargeur ELF charges segments, pas de sections; la correspondance entre les sections de segments est déterminé par l'éditeur de liens de script utilisé pour la construction de l'exécutable.
La valeur par défaut de l'éditeur de liens script n'a pas la carte de débogage sections à n'importe quel segment, donc ce n'est omis.
Symbole d'information est disponible en deux saveurs: les symboles statiques sont traitées à l'extérieur de la bande et de ne jamais stockées en tant que données de la section; symbole dynamique tables sont générées par l'éditeur de liens, et ajout d'un segment spécial qui est chargé avec l'exécutable, comme elle doit être accessible à l'éditeur de liens dynamique. L' strip
commande ne supprime que les symboles statiques, qui ne sont jamais référencé dans un segment de toute façon.
Ainsi, vous pouvez utiliser l'ensemble des informations de débogage à travers l'ensemble du processus, et cela n'aura pas d'incidence sur la taille de l'exécutable de l'image dans la mémoire vive, car il n'est pas chargé. Cela signifie également que l'information n'est pas compris dans les décharges, si cela ne vous donne pas toutes les prestations ici.
L' objcopy
utilitaire a une option spéciale pour copier uniquement les informations de débogage, de sorte que vous pouvez générer un second ELFE fichier contenant ces informations et les utiliser dépouillé binaires; lors de l'analyse du vidage de la mémoire, vous pouvez ensuite charger les deux fichiers dans le débogueur:
objcopy --only-keep-debug myprogram myprogram.debug
strip myprogram