Dans Linux moderne, presque tous les objets sont dénudés et divisés en deux parties (deux fichiers). Le premier est exécutable lui-même et le second est les symboles de débogage, supprimés de l'ELF d'origine. Ces fichiers sont créés avecComment inverser la bande d'objcopy avec only-keep-debug?
objcopy --only-keep-debug original.elf binary.dbg
mv original.elf binary
objcopy --strip-debug binary
Comment puis-je fusionner binary
et binary.dbg
dans le fichier ELF avec informations de débogage? Je veux recréer un binaire original non-dépouillé. Il peut s'agir d'un octet à octet égal à l'original, mais il doit contenir un symbole de débogage.
PS Oui, je sais à propos de gnu.debuglink
article, mais il ne fonctionne pas pour certains débogueurs (etnus) et désassemblé (objdump ne peut pas restaurer info symboles)
Il y a le doc: http://www.linuxfromscratch.org/blfs/view/svn/general/elfutils.html "*' eu- unstrip' combine des fichiers dépouillés avec des symboles séparés et des informations de débogage. * "et ceci est la page d'accueil https://fedorahosted.org/elfutils/ et ceci est la source https://git.fedorahosted.org/cgit/elfutils.git/tree/ src/unstrip.c "Combinez des fichiers dépouillés avec des symboles séparés et des informations de débogage Copyright (C) 2007-2012, 2014, 2015 Red Hat, Inc ... Roland McGrath". Si j'ai "program.bin" comme normale ELF dépouillé, et "program.dbg" avec seulement des informations de débogage, comment devrais-je commencer 'eu-unstrip' et quel fichier sera changé? – osgx
Basé sur mon utilisation, il fusionne le binaire dans les symboles de débogage. Si vous avez program.dbg et program.bin, alors 'eu-unstrip program.bin program.dbg' fusionne la corbeille dans le fichier dbg. Obtenir les paramètres inversés donne des erreurs. – lyngvi
Je n'ai pas accès à elfutils mais seulement binutils. Est-il possible de le faire en utilisant objcopy --add-section ou similaire? – sunil