GDB中查看STL容器类的内容

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

 容器类型 GDB 命令
std::vector pvector stl_variable
std::list plist stl_variable T
std::map pmap stl_variable
std::multimap pmap stl_variable
std::set pset stl_variable T
std::multiset pset stl_variable
std::deque pdequeue stl_variable
std::stack pstack stl_variable
std::queue pqueue stl_variable
std::priority_queue ppqueue stl_variable
std::bitset pbitset stl_variable
std::string pstring stl_variable
std::widestring pwstring stl_variable

举例:

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

你可能感兴趣的:(linux编程)