2026 年 9 月 25 日,GNU 调试器 GDB 发布 18.1 版本,这是时隔数月的又一次大版本更新。新版把重点放在了 Windows 原生调试体验上,同时为 AArch64、Intel 处理器追踪等场景补齐了能力。

Windows 原生目标迎来大改
对 Windows 平台开发者来说,18.1 是近年来改动最集中的一版。官方发布说明列出了以下变化:
- 支持非停止模式(Non-stop mode),需要 Windows 10 及以上;
- 调度器锁定(
set scheduler-locking on)开始生效; - 支持原生线程局部存储(TLS)变量;
- 在 Windows Terminal 控制台下支持 24 位真彩色;当输出代码页为 65001 时,还支持 emoji 样式与 UTF-8 文本,主机字符集自动切换为 UTF-8;
- 文件名统一使用正斜杠显示,例如
C:/proj/src/main.c,不再混用两种斜杠风格。该改动影响所有解释器(CLI、TUI、GDB/MI、DAP)。
类型索引与命令行参数
GDB 现在会把所有类型符号写入 .gdb_index 段,修复了此前依赖索引时可能找不到类型的问题。官方提示,已有索引应重新生成。
命令行参数处理也有改进:set args、run、start 和 starti 现在可以在带引号的参数中接受换行符;新增 --no-escape-args 命令行选项,作为 --args 的替代方案,不对参数中的 shell 特殊字符做转义;gdbserver 也接受同名标志。
架构与硬件支持
- AArch64 增加对浮点模式寄存器(FPMR)的支持;
- 在启用 FRED 的系统上,支持来自事件追踪(Event Tracing)和触发追踪的 libipt v2.2 事件;
- 在 glibc 2.42 及更高版本、GNU Hurd 等系统上,支持串口连接的任意(非标准)波特率。
更友好的帮助系统
18.1 新增了一个 "essential" 帮助类别,列出官方认为接近"最小必要集"的常用命令,方便新用户上手。此外,info locals 现在会为存在遮蔽关系的变量显示 "shadowed" 标注与位置信息,info inferiors 会显示 inferior 中加载的 core 文件。
GDB 18.1 带来了对 Windows 原生目标的重大改进,包括非停止模式、调度器锁定与原生线程局部存储变量支持。
—— GDB 官方发布说明
如何获取
GDB 18.1 已可从 GNU 官方 FTP 与 Sourceware 镜像下载,源码包附有签名文件可供校验。对长期维护 C/C++、Rust、Fortran 等项目的团队来说,这次更新中"类型索引"与"参数转义"两项改动值得优先评估。
主要来源:GDB 官方发布说明、Phoronix