gdb 7.5.1调试通过g 4.7.2构建的可执行文件的问题
Problems with gdb 7.5.1 debugging executable built via g 4.7.2
我一直在更新我的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
标志构建要调试的代码。
相关文章:
- 使用 Premake5 构建项目不会生成可执行文件或中间体
- 在Visual Studio 2017中构建Qt可执行文件
- 在 eclipse 中以发布模式构建后没有可执行文件
- 为多个测试文件构建可执行文件
- 构建MacOS可执行文件,以便使用cmake(包括OpenCV)进行分发
- 使用 CodeBlocks + GCC 构建的可执行文件是否可以在任何 Windows 上运行?
- 在QMAKE中编译之前,如何使用可执行文件构建多个标头文件
- cmake:构建可执行文件并库并链接它们
- CMake 构建静态可执行文件
- CMake 不会使用 add_executable 构建可执行文件
- 选择在CMAKE中构建库或可执行文件
- 使用LTO静态链接的可执行文件(链接时间优化):如何使用以前构建的库进行制作
- 如何在 VSCODE 中构建、运行和删除可执行文件和虚拟文件
- 构建一个可执行文件,如果是单个 cpp 文件
- 将 CLANG 构建的可执行文件与 G++-v6 构建的 Boost 库链接时出错
- 如何为 CPP 程序构建可执行文件
- 如何使用 NetBeans 包含的所有库依赖项构建可执行文件
- 没有 DLL 依赖项的静态构建可执行文件
- 当我包含标头时,Gradle不会构建可执行文件
- Xcode 4中的命令行工具构建版本,在构建可执行文件中包含图像存在问题