我的gdb版本是6.6,gcc版本是4.8。我知道gcc -g
默认使用dwarf-4格式,但gcc手册说添加-gdwarf-2
选项可以使用较旧的矮人格式。我试过了,但还不行。当我使用gdb时,它仍会报告:
Dwarf Error: wrong version in compilation unit header (is 4, should be 2)
答案 0 :(得分:0)
根据GCC 4.5 Release Notes,您应使用-gdwarf-2 -gstrict-dwarf
选项完全禁用DWARF4功能的使用:
GCC现在也会为结语生成展开信息。 DWARF debuginfo 由GCC生成的现在使用的DWARF3的功能比以前更多,并且 还有一些DWARF4功能。早于7.0的GDB无法处理 其中任何一个,所以要调试GCC 4.5生成的二进制文件或库 需要GDB 7.0或更高版本。您可以禁用DWARF4功能 使用-gdwarf-3 -gstrict-dwarf选项,或使用-gdwarf-2 -gstrict-dwarf将GCC限制为DWARF2,但只要发出展开信息,就会无条件地发出结尾展开信息。