gdb vector
原文地址:http://blog.csdn.net/xiedejun1984/article/details/5752945
示例指令:
print "%s",(*(eles._M_impl._M_start)@1).content
p *(eles._M_impl._M_start)@1
$10 = {{
title = "【海波】US News 2011年最新美国大学综合排名独家解读_波涛兄弟_新浪博客",
content =
" 【评分体系变动】 这是US NEWS 改变评分体系后,第一次发布美国大学排名,主要变化如下 1. Peer Assessment 的权重由原来的25%降至22.5% 2. 首次加入了高中升学顾问对于大学的评价,他们的评价对于分数的权重为7.5% 3. 大学的Dean评分的权重由25%锐减至15% 因此,从某种意义上来说,在"...
}}
1. update your gdb
gdb 7.0版本之后,如果在gdb中调用:
(gdb) print myVector
将会得到如下结果:
$1 = std::vector of length 3, capacity 4 = {10, 20, 30}
2. GDB STL Utilities
http://www.stanford.edu/~afn/gdb_stl_utils/
3. 打印数组
gdb 7之前的版本不能直接打印vector,但是vector的内部实现是用数组array,所以找到array地址就可以打印出vector内容。
1) 打印整个vector
(gdb) print *(myVector._M_impl._M_start)@myVector.size()
2) 打印第N个成员
print *(myVector._M_impl._M_start)@N
4. 自己实现打印函数,用gdb call调用该函数
1) dump函数实现
- void dump(vector<int>& myVector)
- {
- vector<int>::iterator it = myVector.begin();
- count << "[";
- for (; it != myVector.end(); ++it)
- count << *(it) << ", ";
- count << "]";
- }
2) gdb调用:
(gdb)call dump(youVector)
完