环境要求: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