我正在使用 minGW 在 Windows 上使用 C++ 进行开发。我目前有调试问题。
我必须使用旧版本的 GCC (4.4)。
所以我只是想知道是否可以使用这个旧的 GCC 进行编译并使用新的 GDB 进行调试?
他们两个之间有什么联系?
(任何有关调试器崩溃的指针也将不胜感激!
我只知道我需要确保使用调试 DLL)
最佳答案
GDB 和 GCC 是独立的程序——独立的源代码库(有一些共享代码,虽然不多),通常是独立的维护者,不同的发布时间表和不同的版本号。他们确实分享了一些文化,当然也有一些协调。
GDB 在向后兼容性方面相当不错。它甚至为旧版本的 GCC 和有时其他编译器发出的 debuginfo 中的错误保留了解决方法。这意味着您通常可以在保持相同 GCC 版本的同时升级 GDB。
然而,情况并非总是相反。有时,新版本的 GCC 会发出旧版 GDB 无法理解的调试信息。在这种情况下,您还必须升级 GDB。在某些有限的情况下,您可以将兼容性标志传递给 GCC 以询问降级的调试信息,但这并不总是可行的。而且,由于升级 GDB 很简单,您也可以这样做。
关于C++:我需要使用相同版本的 GCC 和 GDB 进行调试吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29801755/