# gdb bugging GNU gdb 6. 8 Copyright ( C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later < http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and"show warranty"for details. This GDB was configured as "i486-slackware-linux"... ( gdb) help pvector Prints std::vector< T> information. Syntax: pvector <vector>< idx1>< idx2> Note: idx, idx1 and idx2 must be in acceptable range [ 0..<vector>. size()- 1]. Examples: pvector v - Prints vector content, size, capacity and T typedef pvector v 0 - Prints element[ idx] from vector pvector v 1 2 - Prints elements in range [ idx1.. idx2] from vector ( gdb)break main Breakpoint 1 at 0x80485c6:file bugging. cpp,line 6. ( gdb) run Starting program:/ root/ learn/ c++/ bugging
Breakpoint 1, main () at bugging. cpp: 6 6 vector<int> vec; ( gdb) n 7 vec. push_back( 2); ( gdb) 8 vec. push_back( 3); ( gdb) pvector Prints std::vector< T> information. Syntax: pvector <vector>< idx1>< idx2> Note: idx, idx1 and idx2 must be in acceptable range [ 0..<vector>. size()- 1]. Examples: pvector v - Prints vector content, size, capacity and T typedef pvector v 0 - Prints element[ idx] from vector pvector v 1 2 - Prints elements in range [ idx1.. idx2] from vector ( gdb) pvector vec elem[ 0]: $1 = 2 Vector size = 1 Vector capacity = 1 Element type =int* ( gdb) n 9 vec. push_back( 4); ( gdb) 10 return 0; ( gdb) pvector vec elem[ 0]: $2 = 2 elem[ 1]: $3 = 3 elem[ 2]: $4 = 4 Vector size = 3 Vector capacity = 4 Element type =int* ( gdb)
5. 默认情况下gdb不能用[]查看stl容器的数据元素,提示如下错误:
( gdb) print vec[ 0] One of the arguments you tried to pass to operator[] could not be converted to what the function wants.