在gdb中檢視stl容器

2021-05-18 08:02:19 字數 779 閱讀 1174

在gdb中檢視stl容器

(本文主要內容來自於http://sourceware.org/gdb/wiki/stlsupport )

目前,gdb預設不能print出stl容器的內容,但是網上有好多種方案來做這件事,我試用了一下,比較方便的是以下兩種:

pvector, plist, pmap, pset, pdequeue, pstack, pqueue, ppqueue, pbitset, pstring, pwstring

用help可以檢視命令的幫助,比如help pvector。這個方法可以支援廣泛的gdb 版本,據說是gdb 4.3+都可以,我只在gdb 6.x和gdb 7.0使用過。不過好像目前不能支援mingw中的gdb。

gdb 7.0加入了python指令碼支援,可以通過python編寫pretty-printers用來顯示 stl容器。

svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python

這樣就為stl容器安裝好了pretty-printers,在gdb中直接print容器會直接 print出容器內容,而不是以前那一堆亂七八糟的東西。

這個方案的好處是直接用print完成,不用記很多的自定義巨集,並且假如臨時想看看gdb預設的輸入,還可以用print /r來切換為raw模式的輸出。

不過麻煩的是必須在gdb 7.0及以後版本才能使用這麼方便的功能,而當前很多系統上安裝的gdb還是6.x甚至5.x的。所以只能寄希望於各發行版趕緊公升級到gdb 7.0。

GDB除錯STL中的相關容器

在老版本的gdb中 應該是7.0以前 除錯stl容器還是比較麻煩的,直接print會出來一大串無用的資訊 對此比較好的解決方法是使用stl views 1.0.3.gdb,然後進入gdb,輸入source stl views 1.0.3.gdb 假設stl views 1.0.3.gdb在你當前目錄...

gdb檢視C 的容器

gdb的自定義命令非常有用,通過自定義命令,直接操作容器中的資料,可以方便的檢視stl容器中的資料。這個鏈結dbinit stl views 是dan c marinescu 寫的檢視stl容器的自定義命令 如果不適合你的stl版本的話,可以自行修改 把它新增到你的.gdbinit中,就可以方便的檢...

CodeBlocks除錯時檢視STL容器中的值

最近在使用codeblocks 17.12 除錯程式時發現無法正常檢視stl容器中的值,給除錯帶來了極大的不便。到網上查詢解決方案時,發現有很多,大部分操作較為複雜 不能使用自帶mingw編譯等 且有些方法提出的時間過於久遠。最後找到官方wiki中有乙個教程,簡單明瞭,親測可用,推薦給大家!傳送門 ...