您的位置:首页 > 其它

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

2011-07-25 11:25 204 查看
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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: