【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 print sys.version

若显示Python版本号则说明支持Python。

GDB

如果显示:Python scripting is not supported in this copy of GDB. 请升级GDB。

三、主要步骤

1. 创建 pp.gdb 文件

新建 pp.gdb 文件,粘贴如下代码

1
2
3
4
5
6
python
import sys
sys.path.insert(0, 'D:/Program Files/CodeBlocks/MinGW/share/gcc-8.1.0/python/libstdcxx/v6')
from printers import register_libstdcxx_printers
register_libstdcxx_printers(None)
end

注意把上面目录部分换成自己目录,就是有 printers.py 文件的目录,如图:

printers.py的目录

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

pp.gdb的目录

2. 配置 CodeBlocks 的 Debugger 设置

打开codeblocks,设置(settings)- 调试器设置(debugger settings )- default,如图,修改:

1 确保该路径下的GDB是你要使用的GDB

如果你需要更换编译工具链,请确保GDB的路径也被修改。如果你使用CodeBlocks自带的GDB,则修改为 <你的安装目录>/CodeBlocks/MinGW/bin/gdb.exe 即可。

2 添加初始化命令

在调试器初始化命令里添加

1
source "D:/Program Files/CodeBlocks/MinGW/bin/pp.gdb"
3 取消禁用启动脚本

确保Disable startup scripts (-nx) (GDB only) 不被选择。

4 重启 CodeBlocks

请务必重启动 CodeBlocks。

最终效果如图所示:

最终效果

然后 CodeBlocks 就可以调试STL了!

配置后的调试效果

- THE END -

❤可可爱爱的镜华❤

【CodeBlocks】支持STL调试的方法
https://qalxry.github.io/2023/09/10/【CodeBlocks】支持STL调试的方法/
作者
しずり雪
发布于
2023年9月10日
更新于
2023年9月13日
许可协议