4

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

我认为作为 Xcode 命令行工具的一部分安装的 gdb 版本 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 进行了代码签名。

感谢您的任何意见,

鲍勃

4

1 回答 1

0

许多局部变量已被“优化”。

调试优化代码时会发生这种情况吗?如果是这样,那是意料之中的。您以前可能没有看到这种情况发生,因为旧的 GCC 并没有优化那么多。

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

于 2012-12-12T17:48:20.937 回答