http://blog.chinaunix.net/u1/44543/showart_1953788.html
2. #cat dbinit_stl_views-1.03.txt >> ~/.gdbinit
3. 若正处于gdb中,运行命令:
(gdb) source ~/.gdbinit
4. 例如,如下代码:
bugging.cpp
#include<vector> usingnamespacestd;
int main() { vector<int> vec; vec.push_back(2); vec.push_back(3); vec.push_back(4); return 0; }
|
编译:
#g++-o bugging -g bugging.cpp
|
gdb调试:
# 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.
|