En Linux moderno casi todos los objetos se quitan y se dividen en dos partes (dos archivos). Primero es ejecutable y el segundo es símbolos de depuración, eliminados de ELF original. Tales archivos se crean conCómo revertir la tira de objcopy con only-keep-debug?
objcopy --only-keep-debug original.elf binary.dbg
mv original.elf binary
objcopy --strip-debug binary
Cómo puedo fusionar I binary
y binary.dbg
en un archivo ELF con la depuración de información? Quiero volver a crear un binario original no desenrollado. No puede ser byte a byte igual al original, pero debe tener símbolos de depuración dentro.
PS Sí, sé de gnu.debuglink
sección, pero no funciona para algunos depuradores (Etnus) y desensambladores (objdump no puede restaurar símbolos info)
Existe el documento: http://www.linuxfromscratch.org/blfs/view/svn/general/elfutils.html "*' eu- unstrip' combina archivos eliminados con símbolos separados e información de depuración. * "y esta es la página de inicio https://fedorahosted.org/elfutils/ y esta es la fuente https://git.fedorahosted.org/cgit/elfutils.git/tree/ src/unstrip.c "Combina los archivos eliminados con símbolos separados e información de depuración. Copyright (C) 2007-2012, 2014, 2015 Red Hat, Inc ... Roland McGrath". Si tengo "program.bin" como ELF eliminado normal y "program.dbg" con solo información de depuración, ¿cómo debo iniciar 'eu-unstrip' y qué archivo se cambiará? – osgx
Según mi uso, combina el binario en los símbolos de depuración. Si tiene program.dbg y program.bin, entonces 'eu-unstrip program.bin program.dbg' fusiona el bin en el archivo dbg. Obtener los params invertidos produce errores. – lyngvi
No tengo acceso a elfutils pero solo binutils. ¿Es posible hacerlo usando objcopy --add-section o similar? – sunil