gdb打印vector

https://stackoverflow.com/questions/253099/how-do-i-print-the-elements-of-a-c-vector-in-gdb

打印方法

With GCC 4.1.2, to print the whole of a std::vector<int> called myVector, do the following:

print *(myVector._M_impl._M_start)@myVector.size()

To print only the first N elements, do:

print *(myVector._M_impl._M_start)@N

Explanation

This is probably heavily dependent on your compiler version, but for GCC 4.1.2, the pointer to the internal array is:

myVector._M_impl._M_start 

And the GDB command to print N elements of an array starting at pointer P is:

print P@N

Or, in a short form (for a standard .gdbinit):

p P@N

其他解决方式:
使用clang++和lldb这一套工具,可以直接显示vector中的变量
使用vs自带的msvc及其调试工具,也可以直接显示vector中的变量

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部