Nella moderna linux quasi tutti gli oggetti sono spogliati e divisi in due parti (due file). Il primo è eseguibile stesso e il secondo è un simbolo di debug, rimosso dall'ELF originale. Tali file vengono creati conCome invertire la striscia di objcopy con solo-keep-debug?
objcopy --only-keep-debug original.elf binary.dbg
mv original.elf binary
objcopy --strip-debug binary
Come posso unire binary
e binary.dbg
in un file ELF con informazioni di debug? Voglio ricreare un binario originale e non cancellato. Può non essere byte-byte uguale all'originale, ma deve avere all'interno un simbolo di debug.
PS Sì, so di gnu.debuglink
sezione, ma non funziona per alcuni debugger (etnus) e disassemblatori (objdump Non è possibile ripristinare i simboli info)
C'è il doc: http://www.linuxfromscratch.org/blfs/view/svn/general/elfutils.html "*' eu- Unstrip' combina i file stripped con simboli separati e informazioni di debug. * "e questa è la homepage https://fedorahosted.org/elfutils/ e questa è la fonte https://git.fedorahosted.org/cgit/elfutils.git/tree/ src/unstrip.c "Combina i file stripped con simboli separati e informazioni di debug Copyright (C) 2007-2012, 2014, 2015 Red Hat, Inc ... Roland McGrath". Se ho "program.bin" come ELF normale spogliato, e "program.dbg" con solo le informazioni di debug, come dovrei avviare 'eu-unstrip' e quale file verrà modificato? – osgx
In base al mio utilizzo, unisce il binario ai simboli di debug. Se avete program.dbg e program.bin, quindi 'eu-unstrip program.bin program.dbg' unisce il cestino nel file dbg. Ottenere i parametri invertiti produce errori. – lyngvi
Non ho accesso a elfutils ma solo binutils. È possibile farlo usando objcopy --add-section o simili? – sunil