Как обратить вспять полосу objcopy с помощью только-keep-debug?

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

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

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

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

Ответы

Ответ 1

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

eu-unstrip binary binary.dbg

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