Как обратить вспять полосу 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
теперь имеет как двоичные, так и отладочные символы. Я бы включил ссылку на документацию, если бы я мог найти...