使用 gdb 调试,任何使用 STL/boost 的 c++ 代码仍然是一场噩梦。任何使用过 STL 的 gdb 的人都知道这一点。例如,在此处查看代码中一些调试会话的示例运行。
我试图通过收集提示来减轻痛苦。您能否评论一下我在下面收集的提示(特别是您一直在使用的提示以及您建议对它们进行的任何更改)-我列出的提示是技术性的降序。
- 有人在使用“Stanford GDB STL utils”和“UCF GDB utils”吗?是否有一些用于提升数据结构的工具?上面的实用程序似乎不能递归使用,例如用于在一个命令中以清晰的方式打印 boost::shared_ptr 的向量。
- 编写您的 .gdbinit 文件。例如,包括 C++ 相关的美化器,列在 UCF GDB 实用程序的底部。
- 使用检查/调试 STL/Boost 库,例如 STLport。
- 使用日志记录(例如这里描述的)
更新:GDB 有一个新的 C++ 分支。