分类: C/C++
2010-04-11 20:28:24
|
使用GDB的"p variable-name"查看STL容器类,只会显示该容器的一些信息,并不能很友好的显示该容器的内容。使用这个脚本可以很好地解决这一问题。下载文件,将其放到~/目录下,直接将其改名为~/.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
则在GDB中可以使用如下命令查看该set的信息与内容:
pset s - 打印该集合s的定义和大小
pset s char* - 打印该集合s的大小以及该集合的所有元素