这不打天梯赛么,被迫用这原始玩意==
网上唯一的中文讲解引用的 oschina 上的文章,结果原文被删了,寄了,好在 Code:: Blocks 的 wiki 上写了
这里详细说明一下。
MinGW 配置
高版本的 gdb 理论上支持 pretty_printer 更好一些,GCC 13 Release Series - GNU Project 下载一个跟着其他教程配下环境变量就行。
如果用的自带MinGW的那个Codeblocks编译器不一定支持Python,最好去自己下载个支持Python的GCC。
什么是 pretty_printer
这是 GDB 中一个用 python API 实现的更加清晰的显示数据结构的一个扩展,如果不启用的话,调试器里的东西可能长这样
启用后,它长这样
Code::Blocks 配置
- 首先在 mingw 的安装目录下找到 .\mingw64\bin 新建一个 gdb 扩展脚本文件
pp.gdb
,内容如下:
python
import sys
sys.path.insert(0, 'D:/Code/mingw64/share/gcc-13.1.0/python/libstdcxx/v6') #替换成你的路径
from printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
- 在 code:: blocks 的命令行环境中输入 source c:\MinGW\bin\pp.gdb (替换成你的路径),这里有可能会报 RuntimeError: pretty-printer already registered: libstdc+±v6,可能是 VSCode 或者其他什么已经注册过 GDB 的 pretty_printer 了,也算成功,
- 在 Code:: Blocks 的调试器设置里把上一行命令输上去,配置成功。