GDB STL vector打印

时间:2025-02-27 11:27:03

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

/~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函数实现

2) gdb调用:

(gdb)call dump(youVector)