GDB中查看STL容器类的内容

来源:互联网 发布:sql删除有约束字段 编辑:程序博客网 时间:2024/05/29 10:16

使用GDB的"p variable-name"查看STL容器类,只会显示该容器的一些信息,并不能很友好的显示该容器的内容。使用stl-views.gdb这个脚本可以很好地解决这一问题。下载stl-veiws.gdb文件,将其放到~/目录下,直接将其改名为~/.gdbinit,或者在你已有的.gdbinit文件中用source ~/.stl-views.gdb命令将其包含。这样你就可以用下面的命令显示STL容器类了。

 容器类型GDB 命令std::vector<T>pvector stl_variablestd::list<T>plist stl_variable Tstd::map<T,T>pmap stl_variablestd::multimap<T,T>pmap stl_variablestd::set<T>pset stl_variable Tstd::multiset<T>pset stl_variablestd::deque<T>pdequeue stl_variablestd::stack<T>pstack stl_variablestd::queue<T>pqueue stl_variablestd::priority_queue<T>ppqueue stl_variablestd::bitset<n><td>pbitset stl_variablestd::stringpstring stl_variablestd::widestringpwstring stl_variable

举例:

如果你的C++代码中有定义: set<string> s;
则在GDB中可以使用如下命令查看该set的信息与内容:
pset s - 打印该集合s的定义和大小
pset s char* - 打印该集合s的大小以及该集合的所有元素

0 0