Data type
|
GDB command
|
std::vector<T>
|
pvector
stl_variable
|
std::list<T>
|
plist
stl_variable
T
|
std::map<T,T>
|
pmap
stl_variable
|
std::multimap<T,T>
|
pmap
stl_variable
|
std::set<T>
|
pset
stl_variable
T
|
std::multiset<T>
|
pset
stl_variable
|
std::deque<T>
|
pdequeue
stl_variable
|
std::stack<T>
|
pstack
stl_variable
|
std::queue<T>
|
pqueue
stl_variable
|
std::priority_queue<T>
|
ppqueue
stl_variable
|
std::bitset<n>td>
|
pbitset
stl_variable
|
std::string
|
pstring
stl_variable
|
std::widestring
|
pwstring
stl_variable
|
$ file processs_name
$ b __brk 给进程分配内存时,在内核设置的断点
$ !cat /proc/pid/
map
s
查看
进程空间位置 //加了叹号可用linux cmd
$ i shared 看各模块内存的分配
$ !readelf -h
$ !readelf -S 看section
$ info registers 看寄存器
$ help info registers ......
先下载
gdb
_stl_utils.tar.gz, extract it, and run make. This will compile and install the necessary files in ~/.
gdb
(edit the Makefile if you want to use a different directory). To use the p_stl_* function
有的
gdb
版本不支持打印
map
等stl,因此需要插件,在网上找到一个插件,进入
gdb
,source该文件即可。之后通过p
map
(p
vector
等)可以获取打印
map
的提示,下面是工具代码,保存下,方便以后使用。
# ...