如何使用only-debug来反转objcopy的条带?

osg*_*sgx 16 strip objdump binutils objcopy

在现代linux中,几乎所有对象都被剥离并分成两部分(两个文件).第一个是可执行的,第二个是调试符号,从原始ELF中删除.这样的文件是用

objcopy --only-keep-debug original.elf binary.dbg
mv original.elf binary
objcopy --strip-debug binary
Run Code Online (Sandbox Code Playgroud)

我该如何合并binarybinary.dbg成ELF文件,调试信息?我想重新创建未经剥离的原始二进制文件.它可以不是与原始字节相同的字节到字节,但必须在其中包含调试符号.

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

lyn*_*gvi 9

对于ELF,该elfutils程序包包含一个称为eu-unstrip完成工作的工具.在您的示例的上下文中:

eu-unstrip binary binary.dbg

binary.dbg现在有二进制和调试符号.如果我找到任何文件,我会提供文档参考...

  • 根据我的用法,它将二进制文件合并到调试符号中.如果你有program.dbg和program.bin,那么`eu-unstrip program.bin program.dbg`将bin合并到dbg文件中.使params反转会产生错误. (3认同)