2010-03-24 19 views
13

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)

risposta

5

Per ELF, il pacchetto elfutils contiene uno strumento chiamato eu-unstrip che fa il lavoro. Nel contesto del vostro esempio:

eu-unstrip binary binary.dbg

binary.dbg ora ha sia i simboli binari e di debug. Includerei un riferimento alla documentazione se potessi trovare qualsiasi ...

+0

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

+3

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

+0

Non ho accesso a elfutils ma solo binutils. È possibile farlo usando objcopy --add-section o simili? – sunil