Pergunta

No Linux moderno, quase todos os objetos são despojados e divididos em duas partes (dois arquivos). O primeiro é executável e o segundo é os símbolos de depuração, retirados do elfo original. Esses arquivos são criados com

objcopy --only-keep-debug original.elf binary.dbg
mv original.elf binary
objcopy --strip-debug binary

Como posso mesclar binary e binary.dbg no arquivo ELF com informações de depuração? Quero recriar o binário original e não prejudicado. Não pode ser o byte a byte igual ao original, mas deve ter um símbolo de depuração dentro.

PS Sim, eu sei sobre gnu.debuglink Seção, mas não funciona para alguns depuradores (Etnus) e desmontistas (o Objdump não pode restaurar informações de símbolos)

Foi útil?

Solução

Para elfo, o elfutils o pacote contém uma ferramenta chamada eu-unstrip Isso faz o trabalho. No contexto do seu exemplo:

eu-unstrip binary binary.dbg

binary.dbg Agora tem os símbolos binários e de depuração. Eu incluiria uma referência à documentação se pudesse encontrar algum ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top