23

在现代 linux 中,几乎所有对象都被剥离并分成两部分(两个文件)。首先是可执行文件本身,其次是调试符号,从原始 ELF 中剥离出来。这样的文件是用

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

如何将调试信息合并binarybinary.dbgELF 文件中?我想重新创建未剥离的原始二进制文件。它不能逐字节地等于原来的,但它必须有一个调试符号在里面。

PS 是的,我知道gnu.debuglink部分,但它不适用于某些调试器(etnus)和反汇编器(objdump 无法恢复符号信息)

4

1 回答 1

12

对于 ELF,该elfutils软件包包含一个名为的工具eu-unstrip来完成这项工作。在您的示例中:

eu-unstrip binary binary.dbg

binary.dbg现在有二进制和调试符号。如果我能找到任何文件,我会包括对文档的引用......

于 2016-07-28T19:59:02.257 回答