【发布时间】:2012-12-08 10:43:22
【问题描述】:
有一个 ELF 调试文件。
该文件使用 DWARF 格式。
如何将其转换为 stabs 格式?
是否有任何工具或方法可能有助于做到这一点?
谢谢。
【问题讨论】:
-
当然最简单的方法是重新编译源代码以使用“正确”的调试格式,例如-gstabs 如果这不可能,也许编译调试器(gdb?)以理解这两种格式是一种选择?
标签: c file debugging elf dwarf
有一个 ELF 调试文件。
该文件使用 DWARF 格式。
如何将其转换为 stabs 格式?
是否有任何工具或方法可能有助于做到这一点?
谢谢。
【问题讨论】:
标签: c file debugging elf dwarf
http://opensource.apple.com/source/binutils/binutils-20/src/binutils/wrstabs.c
是从 ELF 二进制文件中提取 stabs 信息的代码链接。长期混乱且有问题。
确实没有预先构建的转换器。您将不得不对上面的代码进行逆向工程。正如 Mats 建议的那样,考虑重新编译。
但是我猜你有一个没有代码的遗留二进制文件。 DWARF 格式是 Sun 大约 10 多年前所做的事情,这对 Sun、IMO 来说是一种失败。
这是关于将二进制文件逆向工程为汇编程序的链接。
http://www.linuxsa.org.au/meetings/reveng-0.2.pdf
一旦你有了汇编程序,理论上你就可以构建一个新的二进制文件。问题是;外部函数的入口点,并使它们与您的链接器正确工作。您还必须删除与 DWARF 相关的内容。然后重新编译链接刺我猜
但是,文档所在的 http://dwarf.freestandards.org 站点似乎永久离线。
如果我知道你的硬件,这对我的回答会有很大帮助。
【讨论】: