如何修改DWARF版本的G++编译调试信息

How to modify the DWARF version of G++ compiled debugging information

我正在使用 g++ 编译库,使用以下参数:

g++ -gdwarf-2 -std=c++0x -m32 -Dunix=1 -Dlinux=1 -D_JAVA=1 -DNDEBUG=1 -I...

虽然我使用的是特定的 DWARF 版本 2,但对我的核心文件的调查不断给出以下错误消息:

Dwarf Error: wrong version in compilation unit header (is 4, should be 2)

有人知道我能做什么吗?

我正在使用以下版本:

  • 平台版本:CentOS 5.2
  • g++ 版本:g++ (GCC) 4.1.1 20070105 (Red Hat 4.1.1-52)
  • gdb 版本:GNU gdb Red Hat Linux (6.5-37.el5rh)

    无法更新平台。

    供您参考:同时我发现了这个 URL (http://www.delorie.com/gnu/docs/gdb/gdb_17.html),它解释了有时将调试信息与优化标志混合在一起可能不是一个好主意。 结果,我去掉了优化标志(虽然是“-O0”,我也用了"g++ -gdwarf-2 -g3"(如URL中提到的),但还是没有改善。

  • 与此同时,我通过更新我的 GDB(和相关)进程解决了这个问题。