Gcc 4.8 DWARF4 vs DWARF2

时间:2013-03-24 14:22:27

标签: c++ debugging gcc gdb dwarf

GCC 4.8支持DWARF4。我想知道从用户的角度来看DWARF4和DWARF2之间有什么区别。

让我们从GDB的角度来看待它。切换到DWARF4时,用户有什么不同吗?

我找到了Dwarf Home页面,但据我所知,网络上没有任何关于用户POV差异的信息。

你能指出那些差异吗?

3 个答案:

答案 0 :(得分:5)

DWARF的第一个版本被证明使用了过多的存储空间,DWARF-2,取代它并添加了各种编码方案以减少数据大小,后来在DWARF的第4版上提供了改进的数据压缩,更好地描述了优化的代码,并支持C ++中的新语言功能。

通常发行说明或声明总结了这些差异(会有更多)

http://dwarfstd.org/Announcement.php

http://dwarfstd.org/PressRelease.php

答案 1 :(得分:3)

Dwarf 4 standard页面列出了主要增强功能,规范更详细地列出了这些功能。

大多数用户的底线似乎是更好地支持优化代码,支持更多语言(主要是在Dwarf 3中),并支持新的C ++语言结构

答案 2 :(得分:2)

我想补充一点,并非所有版本的gdb都能正确读取dwarf4。我经常发现自己要编译-gdwarf-2只是为了能够看到所有的符号。例如,对于gdb 7.2,如果我使用dwarf4,则无法读取混合Fortran-C构建中的所有符号,而我可以使用dwarf2。