Как перевернуть полосу objcopy с only-keep-debug? - PullRequest
15 голосов
/ 24 марта 2010

В современном Linux почти все объекты разделены и разделены на две части (два файла). Первый - это сам исполняемый файл, а второй - символы отладки, вырезанные из оригинального ELF. Такие файлы создаются с

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

Как мне объединить binary и binary.dbg в файл ELF с информацией об отладке? Я хочу воссоздать исходный двоичный файл без ограничений. Он может быть не байтовым, равным оригиналу, но внутри него должны быть символы отладки.

PS Да, я знаю о разделе gnu.debuglink, но он не работает для некоторых отладчиков (etnus) и дизассемблеров (objdump не может восстановить информацию символов)

1 Ответ

8 голосов
/ 28 июля 2016

Для ELF пакет elfutils содержит инструмент под названием eu-unstrip, который выполняет эту работу. В контексте вашего примера:

eu-unstrip binary binary.dbg

binary.dbg теперь содержит двоичные и отладочные символы. Я бы включил ссылку на документацию, если бы смог найти какую-либо ...

...