调试信息格式(Debugging Format)简介

1.  实际使用中,多种调试信息格式,stabs, COFF, PE-COFF, OMF, IEEE-695, 以及DWARF。

2. stabs

      stabs取名于symbol table strings,因为开始的时候,调试信息是以字符串的形式存储在Unix的a.out目标文件的符号表中。 stabs以字符串的形式编码程序的信息。最开始的时候,stabs很简单,但是后来变得越来越复杂,难解,而且不一致。此外,stabs没有形成标准,文档也不够详细。Sun Microsystem基于stabs作了大量扩展;GCC在对SUn的扩展进行反向工程的过程中,作了其它的扩展。stabs仍然被广泛使用。


3. COFF

      COFF是Common Object File Format的缩写,源自Unix System V Release 3. COFF使用了很多别的调试格式,包括stabs。COFF最大的问题是变种很多,包括IBM RS/6000使用的XCOFF,MIPS和Alpha使用的ECOFF,以及Windows的PE-COFF。同样,COFF无论其目标模块格式还是其调试信息格式没有形成标准。


4. PE-COFF

      PE-COFF是Microsoft Windows从Windows 95开始使用的目标模块格式。基于COFF格式,PE-COFF既使用了COFF的调试数据,也使用了Microsoft自有产权的Code View调试数据格式。文档既不完整也不容易获取。


5. OMF

      OMF是Object Module Format的简称,使用于CP/M,DOS,OS/2,以及少量嵌入式系统。OMF只为调试器提供最基本的支持。


6. IEEE-695

      IEEE-695是一个标准的目标模块和调试信息格式。最开始由Microsoft和HP在1980后期针对嵌入式环境共同提出,并于1900年成为IEEE标准。其特点是基于嵌套结构存储调试信息,能够更好地对应源代码的结构。虽然是IEEE标准,IEEE-695但是更像是有产权的格式。


7. DWARF

     DWARF已经被广泛使用,包括GCC和LLVM。DWARF也是基于嵌套结构存储调试信息。

     DWARF源于Unix System V Release 4中的C编译器以及sdb调试器。1989年的文档形成了DWARF 1。1900发布了DWARF 2的一个draft标准。随后,因为Motorola一个项目的失败,支持团队被解散。随后,DWARF 2的扩展泛滥,就有了各种各样的实现,没能形成最终标准。直到2006年发布的最终标准DWARF 3. 2010年发布了DWARF 4.


参考:

1. Michael J. Eager. Introduction to the DWARF Debugging Format. Feb. 2007.

2. http://dwarfstd.org.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值