gdb檢視C 的容器

2021-06-06 08:10:07 字數 706 閱讀 3381

**:

gdb的自定義命令非常有用,通過自定義命令,直接操作容器中的資料,可以方便的檢視stl容器中的資料。

這個鏈結dbinit_stl_views 是dan c marinescu 寫的檢視stl容器的自定義命令(如果不適合你的stl版本的話,可以自行修改)。把它新增到你的.gdbinit中,就可以方便的檢視stl容器了。它提供了檢視vector,list,map,multimap,set,multiset,deque,stack,queue,priority_queue,bitset,string,widestring等物件的方法,非常好用!

把內容貼上到/home/your/.gdbinit

(gdb) pmap mreasonindex

map type =

std::map, std::allocator>,std::less,std::allocator, std::allocator> > > >

use pmap to see the elements in the map.

map size = 1

(gdb) pmap mreasonindex long char*

elem[0].left: $38 = 1300000000

elem[0].right: $39 = 0x579688 "社圲14o 眲24/234蜲34/234蜲34/234 眲10?山"

map size = 1

在gdb中檢視stl容器

在gdb中檢視stl容器 本文主要內容來自於http sourceware.org gdb wiki stlsupport 目前,gdb預設不能print出stl容器的內容,但是網上有好多種方案來做這件事,我試用了一下,比較方便的是以下兩種 pvector,plist,pmap,pset,pdequ...

gdb檢視記憶體

格式 x nfu 說明 x 是 examine 的縮寫 n表示要顯示的記憶體單元的個數 f表示顯示方式,可取如下值 x 按十六進製制格式顯示變數。d 按十進位制格式顯示變數。u 按十進位制格式顯示無符號整型。o 按八進位制格式顯示變數。t 按二進位制格式顯示變數。a 按十六進製制格式顯示變數。i 指...

gdb 檢視記憶體

曾經被電面到乙個題目,如何判斷乙個系統是大端還是小端,方法其實很簡單 int main 在linux 的執行結果 gcc test.c a.out echo 120120 即 0x78,證明低位放在了低位址,所以是小端系統 little endian 這樣說可能不夠直觀,而且記憶體中怎麼分布本來就比...