Come invertire la striscia del objcopy con un solo-keep-debug?
Domanda
In linux moderna quasi tutti gli oggetti vengono spogliati e diviso in due parti (due file). In primo luogo è di per sé eseguibile e il secondo è i simboli di debug, spogliato dalla ELF originale. Tali file vengono creati con
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 unstripped, binario originale. Esso non può essere byte per byte uguale all'originale, ma deve avere un simboli di debug all'interno.
PS Sì, so di sezione gnu.debuglink
, ma non funziona per alcuni debugger (etnus) e disassemblatori (objdump non è possibile ripristinare i simboli info)
Soluzione
Per ELF, la confezione contiene un elfutils
chiamato eu-unstrip
strumento che fa il lavoro. Nel contesto del vostro esempio:
eu-unstrip binary binary.dbg
binary.dbg
ora ha sia il binario e simboli di debug. Mi piacerebbe includere un riferimento alla documentazione se riuscivo a trovare qualsiasi ...