【CodeBlocks】支持STL调试的方法
本文最后更新于:2023年9月13日 下午 12:51
【CodeBlocks】支持STL调试的方法
文章部分转载自:解决codeblocks调试vector、map等STL容器不能查看元素问题(windows)(小白方案)
一、Codeblocks调试STL的问题:
Codeblocks 是一个非常不错的集成开发环境,但是Codeblocks对STL的调试支持很差,其实这并不是Codeblocks的问题,而是GDB本身对STL的支持太差。例如这样:

但是我们想要的是下面这样的

那么接下来就是要做这件事了。
二、准备
1. 检查使用的GDB是否支持Python
首先看一下你的gdb是不是支持 python。
测试方法:
打开gdb程序(如果安装的是自带mingw的codeblocks,那么在安装目录下.exe,例如我的是 D:Files.exe,运行它,输入:
1 |
|
若显示Python版本号则说明支持Python。

如果显示:Python scripting is not supported in this copy of GDB.
请升级GDB。
三、主要步骤
1. 创建 pp.gdb 文件
新建 pp.gdb 文件,粘贴如下代码
1 |
|
注意把上面目录部分换成自己目录,就是有 printers.py 文件的目录,如图:

然后保存,改名为 pp.gdb , 记住保存在
<你的安装目录>/CodeBlocks/MinGW/bin
下。(和gdb.exe或者gdb32.exe同目录)

2. 配置 CodeBlocks 的 Debugger 设置
打开codeblocks,设置(settings)- 调试器设置(debugger settings )- default,如图,修改:
1 确保该路径下的GDB是你要使用的GDB
如果你需要更换编译工具链,请确保GDB的路径也被修改。如果你使用CodeBlocks自带的GDB,则修改为
<你的安装目录>/CodeBlocks/MinGW/bin/gdb.exe
即可。
2 添加初始化命令
在调试器初始化命令里添加
1 |
|
3 取消禁用启动脚本
确保Disable startup scripts (-nx) (GDB only) 不被选择。
4 重启 CodeBlocks
请务必重启动 CodeBlocks。
最终效果如图所示:

然后 CodeBlocks 就可以调试STL了!

- THE END -
