在使用GDB调试STL程序时,发现STL的内容非常不直观,比如stack对象,只能查看top元素。为了方便的打印出vector、stack等的全部内容,可以考虑使用GDB的自定义函数。
Dan C Marinescu编写了查看STL函数内容的自定义函数,可以方便的查看包括vector,list,map,stack等对象的方法,便于调试STL程序。
下载链接:
http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt
将上述内容下载到本地,并修改文件名为.gdbinit,保存到HOME目录下,执行source ~/.gdbinit即可。
一些常用内置的命令如下:
Data type GDB command
std::vector<T> pvector stl_variable
std::list<T> plist stl_variable T
std::map<T,T> pmap stl_variable
std::multimap<T,T> pmap stl_variable
std::set<T> pset stl_variable T
std::multiset<T> pset stl_variable
std::deque<T> pdequeue stl_variable
std::stack<T> pstack stl_variable
std::queue<T> pqueue stl_variable
std::priority_queue<T> ppqueue stl_variable
std::bitset<n>td> pbitset stl_variable
std::string pstring stl_variable
std::widestring pwstring stl_variable