使用gdb进行调试,对于使用STL/boost的任何c++代码仍然是一场噩梦。任何使用过带有STL的gdb的人都知道这一点。例如,请参见此处中某些调试会话的示例运行。
我正在尝试通过收集技巧来减轻痛苦。您能否请评论下面我收集到的技巧(特别是哪些技巧您曾经使用过,并对其进行任何更改的建议)--我已按技术性降序列出了这些技巧。
- 是否有人使用“Stanford GDB STL utils”和“UCF GDB utils”?是否有类似于boost数据结构的这种实用程序?上述实用程序似乎不可递归使用,例如在一个命令内以易读的方式打印boost::shared_ptr的向量。
- 编写您的.gdbinit文件。包括例如,在UCF GDB工具底部列出的与C ++相关的美化程序。
- 使用已检查/调试的STL/Boost库,例如STLport。
- 使用日志记录(例如在此处所述)
更新:GDB有一个新的C ++分支。