gdb 7.5.1调试通过g 4.7.2构建的可执行文件的问题

Problems with gdb 7.5.1 debugging executable built via g 4.7.2

本文关键字:构建 可执行文件 问题 调试 gdb      更新时间:2023-10-16

我一直在更新我的Mac工具链,以便利用C++11的功能,并最终对STL数据结构进行漂亮的打印调试。我使用Homebrew构建了gcc 4.7.2编译器。我已经能够使用这个新的编译器重新编译我当前项目的源代码。然而,我尝试过的所有gdb版本在设置断点、查看源代码或查看本地变量时都会遇到各种问题。

我认为gdb版本是作为Xcode命令行工具的一部分安装的,版本6.3.50,在显示各种基于模板的变量时遇到了问题。我还构建并尝试使用其他几个gdb版本(7.3.1、7.4.1和7.5.1),但每个gdb版本都有问题,很难设置断点、查看源代码和查看变量。具体来说,这些gdb版本不知道头文件中定义的函数的源文件或行号,这些头文件函数中无法设置断点,并且许多局部变量已经"优化"。

有其他人经历过这些问题吗?如果有,你能解决吗?为了避免这些问题,我应该在我的工具链中使用哪些版本?

为了记录在案,我的开发是在最近的MBP上运行最新的Mountain Lion更新。我的IDE是CDT 8.1.1版本的Eclipse Juno。是的,我已经对我构建并尝试使用的gdb的所有版本进行了代码签名。

感谢您的输入,

Bob

许多局部变量已经"优化"。

这是在调试优化代码时发生的吗?如果是,则应为。您可能以前从未见过这种情况,因为较旧的GCC并没有进行太多优化。

要修复:使用-g -O0标志构建要调试的代码。