C ++:我是否需要使用相同版本的GCC和GDB来调试

时间:2015-04-22 15:08:33

标签: c++ debugging gcc gdb

我使用minGW在Windows上使用C ++进行开发。我现在有调试问题。

我必须使用旧版本的GCC(4.4)。 所以我只是想知道是否可以使用这个旧的GCC进行编译并使用新的GDB进行调试?

他们俩之间的联系是什么?

(关于调试器崩溃的任何指针也将非常感谢! 我只知道我需要确保使用调试DLL)

2 个答案:

答案 0 :(得分:12)

GDB和GCC是单独的程序 - 单独的源代码库(带有一些共享代码,但不多),通常是单独的维护者,不同的发布计划和不同的版本号。他们确实分享了一些文化,当然还有一些协调。

GDB在向后兼容性方面相当不错。它甚至为旧版本的GCC以及其他编译器发出的debuginfo中的bug提供了变通方法。这意味着您通常可以在保持相同GCC版本的同时升级GDB。

但是,相反的情况并非总是如此。有时新版本的GCC会发出旧GDB无法理解的调试信息。在这种情况下,您还必须升级GDB。在某些有限的情况下,您可以将兼容性标志传递给GCC以询问降级的调试信息,但这并非总是可行。而且,由于升级GDB很简单,您也可以。

答案 1 :(得分:1)

GCC和gdb不是必须具有相同版本。您可以使用手中的gdb版本调试可执行文件。 Gdb a.out