Linux IDE支持STLdebugging

我正在寻找一个支持STLdebugging的Linux IDE。

问题是用Eclipse CDT,如果我在push_back之后检查vector:

int main() { vector<string> v; v.push_back("blah"); return 0; } 

我得到了一些敌对的东西

 {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {_M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x1fee040, _M_finish = 0x1fee048, _M_end_of_storage = 0x1fee048}}, <No data fields>} 

而不是类似的东西

 vector["blah"] 

或类似的东西。 是否有一个替代IDE /debugging器的Linux提供更好的STL支持?

QtCreator有Qt容器的调试器,一些STL容器和一堆Qt类。 它比Eclipse更有响应。

请参阅Qt Creator调试器翻斗车 。

只是一个脚本GDB的问题,所以你可以打印STL容器。 要打印矢量:

 define pvec set $vec = ($arg0) set $vec_size = $vec->_M_impl->_M_finish - $vec->_M_impl->_M_start if ($vec_size != 0) set $i = 0 while ($i < $vec_size) printf "Vector Element %d: ", $i p *($vec->_M_impl->_M_start+$i) set $i++ end end end 

现在你甚至可以在python上编写脚本。 检查文档。

我个人使用cgdb这是一个非常方便的curses调试器。

这与IDE本身没有任何关系,但是这是您正在使用的调试器的一个缺点。 IDE,特别是在Linux上,只是调试器的前端。 我想你正在使用GDB,它不会比这更好。 顺便说一句,虽然在Linux上开发,我使用仔细放置的打印语句,而不是调试器,大多数时候我觉得比使用调试器更好!

Eclipse使用gdb,你可以脚本gdb,所以它打印不同的类型,你想要的。 我用我自己的脚本来处理我自己的脚本,但是stl有很多可用的脚本。

现在棘手的部分将是使这个工作顺利是Eclipse,但它可以是一个解决方案。