参考资料:http://wiki.codeblocks.org/index.php/Pretty_Printers
codeblocks 17.12 下载地址:https://sourceforge.net/projects/codeblocks/files/Binaries/17.12/Windows/codeblocks-17.12-setup.exe/download
TDM-GCC-5.1.0-3下载地址:https://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-5.1.0-3.exe/download
一、Codeblocks调试STL的问题:
C::B是一个非常不错的集成开发环境,但是C::B对STL的调试支持很差,其实这并不是Codeblocks的问题,而是GDB本身对STL的支持太差。例如这样
但是我们想要的是下面这样的
那么接下来就是要做这件事了。
二、准备
1.首先看一下你的gdb是不是支持 python,测试方法,打开gdb程序(如果安装的是自带mingw的codeblocks,那么在安装目录下\CodeBlocks\MinGW\bin\gdb.exe,例如我的是 D:\CodeBlocks\MinGW\bin\gdb.exe,运行它,输入
python print sys.version
如果不支持,会如下图所示,提示这个版本gdb不支持python脚本:Python scripting is not supported in this copy of GDB.
如果支持,会显示一个版本号,比如这个7.9.1的就支持
2. 我下载的是 codeblocks 17.12,自带的gdb是7.6.1版本的,也就是上面那个不支持的,然后换成了TDM-GCC里面的调试器,也就是上面那个7.9.1版本的。我安装的是32位的,上面那个链接也是32位的,当然也可以装64位的。
所以在我的 D:\TDM-GCC-32\bin下有一个 gdb32.exe 程序
三、主要步骤
1. 在D:\TDM-GCC-32\bin\下新建一个文本文件,粘贴如下代码
python import sys sys.path.insert(0, 'D:\TDM-GCC-32\share\gcc-5.1.0\python\libstdcxx\v6') from printers import register_libstdcxx_printers register_libstdcxx_printers (None) end
注意把上面目录部分换成自己目录,就是有 某某.py文件的目录,如图
然后保存,改名为 pp.gdb , 记住保存在 D:\TDM-GCC-32\bin下。(和gdb.exe或者gdb32.exe同目录)
2. 打开codeblocks,设置(settings)- 调试器设置(debugger settings )- default,如图,修改
选择调试器,因为我换了,所以要修改。在调试器初始化命令里添加
source D:\TDM-GCC-32\bin\pp.gdb
3. 重启codeblocks,试一下