2013-10-06 74 views
2

现代C++有很多模板化和封装的元素,这些元素在调试过程中变得很麻烦,因为gdb是通用调试器,没有特定的C++功能。如何在使用g ++和C++进行调试期间快速查看复杂结构

无法轻松列出STL容器中的元素。当使用boost :: shared_ptr共享指针时,通常没有办法去引用对象来查看发生了什么。

是否有一组gdb宏,甚至更高级的gdb版本,可以使这件事更容易看到?

回答

3

无法轻松地列出STL容器中的元素。

是有,如果你使用GDB 7,并从过去四年左右,最近的GCC,那么你应该有哪些表现容器,智能指针等标准库的内容类型可用的Python漂亮打印机。见我的答案在https://stackoverflow.com/a/15329434/981959

你也可以写你自己的Python打印机非标准类型,如boost::shared_ptr

有GDB的一组GDB宏,或甚至更高级的版本,可以让这个东西更容易看到?

有一些宏在五年前有用,但现在不需要它们,因为它已经构建到GDB和GCC中。所以我认为你的问题的答案是“是的,有一个更先进的GDB,你有没有尝试升级?”

相关问题