Skip to content

​ 这不打天梯赛么,被迫用这原始玩意==

网上唯一的中文讲解引用的 oschina 上的文章,结果原文被删了,寄了,好在 Code:: Blocks 的 wiki 上写了

Wiki_Pretty_Printers

这里详细说明一下。


MinGW 配置

高版本的 gdb 理论上支持 pretty_printer 更好一些,GCC 13 Release Series - GNU Project 下载一个跟着其他教程配下环境变量就行。

什么是 pretty_printer

这是 GDB 中一个用 python API 实现的更加清晰的显示数据结构的一个扩展,如果不启用的话,调试器里的东西可能长这样 C0PK9(DC1~6.png 启用后,它长这样

Code:: Blocks 配置

  1. 首先在 mingw 的安装目录下找到 .\mingw64\bin 新建一个 gdb 扩展脚本文件 pp.gdb,内容如下:
python
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
  1. 在 code:: blocks 的命令行环境中输入 source c:\MinGW\bin\pp.gdb (替换成你的路径),这里有可能会报 RuntimeError: pretty-printer already registered: libstdc++-v6,可能是 VSCode 或者其他什么已经注册过 GDB 的 pretty_printer 了,也算成功,
  2. 在 Code:: Blocks 的调试器设置里把上一行命令输上去,配置成功。