Comment inverser la bande du objcopy avec seulement-keep-debug?
Question
Dans linux moderne presque tous les objets sont dépouillés et en deux parties en fente (deux fichiers). Le premier est lui-même exécutable et le second est des symboles de débogage, dépouillé de ELF d'origine. Ces fichiers sont créés avec
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 unstripped, binaire d'origine. Il peut être pas octet par octet égal à l'original, mais il doit avoir un des symboles de débogage à l'intérieur.
PS Oui, je sais à propos de la section gnu.debuglink
, mais il ne fonctionne pas pour certains débogueurs (etnus) et désassemblé (objdump ne peut pas restaurer info symboles)
La solution
Pour ELF, le package contient elfutils
un outil appelé eu-unstrip
qui fait le travail. Dans le contexte de votre exemple:
eu-unstrip binary binary.dbg
binary.dbg
a maintenant les binaires et les symboles de débogage. J'inclure une référence à la documentation si je pouvais trouver ...