環境要求:python (2.7版本能夠,3.x沒測過),mingw官方版(你可能已經有了),gdb2013-02-04(到這裏https://code.google.com/p/qp-gcc/downloads/list下載,若是有更新版本,應該也能夠,目前2013-02-04是最新版)php
推薦的GDB支持STL的方式是用python script。聽說各方面都比那個stl-views-1.0.3.gdb要好(關於這個,能夠參考http://blog.csdn.net/someonea/article/details/2979369)前端
目前mingw官方的GDB是7.6.1,不支持python script。檢查其是否支持python腳本的方法是:在gdb終端輸入:python
https://code.google.com/p/qp-gcc/downloads/list 這個連接裏的GDB是支持python的,你能夠下載下來,加到PATH環境變量中的最前端,這樣之後從cmd啓動就會默認用這個gdb(由於貌似系統讀PATH變量是從左向右讀的,找到第一個就結束)windows
而後在終端運行gdb,輸入python print sys.version來驗證一下google
而後把下面這段代碼保存到pp.gdb裏(理論上,任何目錄均可以,可是推薦放在我的目錄下,如C:\Users\your_username,或者工做目錄下,兩個地方都放一份也OK)spa
python import sys sys.path.insert(0, 'c:/MinGW/share/gcc-4.7.2/python/libstdcxx/v6') from printers import register_libstdcxx_printers register_libstdcxx_printers (None) end
注意,上面的目錄要根據你實際狀況來改,好比,個人是.net
sys.path.insert(0, 'D:/MinGW/share/gcc-4.8.1/python/libstdcxx/v6')code
而後,當你啓動gdb以後,能夠在gdb終端輸入source pp.gdb(若是放在我的目錄,可能要加上目錄前綴),就會加載這裏的設置,就能夠看STL的內容了blog
可是,每次啓動都輸入一次這個命令仍是有點麻煩,咱們能夠把這句命令放到.gdbinit裏,讓gdb啓動時自動加載ip
我發現把.gdbinit放到當前工做目錄、gdb.exe所在目錄都不行,一個可行的方法是:
把.gdbinit放到我的目錄,如C:\Users\your_username,把pp.gdb放到相同目錄,.gdbinit的內容就是source pp.gdb
而後把windows的環境變量HOME設置爲C:\Users\your_username(在個人電腦上,這個環境變量原來是不存在的,你的可能也是如此)
這樣就能夠了,之後啓動gdb時,就會自動加載.gdbinit,也就自動能夠用python腳原本打印STL的內容了,使用方法和打印普通變量相同,就是p variable_name
參考:
http://wiki.codeblocks.org/index.php?title=Pretty_Printers
https://sourceware.org/gdb/wiki/STLSupport