LLVM学习之DWARF

LLVM学习之DWARF

DWARF是"使用带属性的记录格式进行调试——Debug With Attributed Record Formats"的首字母缩写。DWARF和目标格式无关,它最初是与ELF(可执行和可链接格式——Executable and Linkable Format)一起设计的。

发展历史

DWARF的第一个版本使用了过多的存储空间且不向后兼容,而后被DWARF-2取代,DWARF-2增加了各种编码方案以减小数据大小。DWARF-2并没有立即获得普遍的认可。如Sun Microsystems采纳ELF作为向Solaris迁移的一部分时,他们选择继续以嵌入的方式使用stabs。随后直到1990年代后期DWARF才成为Linux默认使用的调试属性记录格式。

2006年发布了DWARF的第三个版本,增加了支持C++命名空间、Fortran90可分配数据和其他编译优化技术。

2010年发布了DWARF的第四个版本,该版本提供"改进的数据压缩,对优化代码的更好描述以及对C++中新语言功能的支持"

2017年2月发布了DWARF的第五个版本,它在许多方面进行了改进:更好的数据压缩,调试数据与可执行文件的分离,改进的宏和源文件的描述,更快的符号搜索,优化的调试代码,以及功能和性能方面的众多改进。

参考:

DWARF 5 Standard

猜你喜欢

转载自blog.csdn.net/weixin_46222091/article/details/105421650