C++:我是否需要具有相同版本的 GCC 和 GDB 进行调试



我正在使用 minGW 在 Windows 上C++开发。我目前有调试问题。

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

他们两个之间有什么联系?

(任何关于调试器崩溃的指示也将不胜感激!我只知道我需要确保使用调试 DLL)

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

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

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

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

最新更新