GNU 调试器 GDB 14.1 现已发布。GDB 是 Ada、C、C++、Go 与 Rust 等源代码级调试器语言,它可以在最流行的 GNU/Linux、Unix 和 Windows 变体上运行,并且调试十几种不同的处理器架构。
主要更新内容
删除的功能,删除的配置:
GDB 不再支持 AiX 4.x、5.x 和 6.x。支持的最低版本为 AiX 7.1。
GDB/MI 版本 1 支持已被删除
对 Debugger Adapter Protocol (DAP) 的初始内置支持
GDB 现在可以识别 NO_COLOR 环境变量
初步支持大于 64 位的整数类型
Breakpoints 现在可以是 inferior-specific
新的 convenience function "$_shell",用于执行 shell 命令并返回其结果。
Python 支持
新类 gdb.Thread
新类 gdb.unwinder.FrameId
新类 gdb.ValuePrinter
新的 gdb.Inferior.arguments 属性
新的 gdb.Inferior.main_name 属性
新的 gdb.Breakpoint.inferior 属性
新的 gdb.Progspace.symbol_file 属性
新的 gdb.Progspace.executable_filename 属性
新函数 gdb.execute_mi (COMMAND, [ARG]...)
新函数 gdb.block_signals ()
新方法 gdb.Frame.static_link
新的 gdb.Inferior 'clear_env'、'set_env' 和 'unset_env' 方法
新的 gdb.Type 现在具有 'is_array_like' 和 'is_string_like' 方法
新的 gdb.Value 'assign' 方法
新的 gdb.Value 'to_array' 方法
新的 gdb.Progspace 'objfile_for_address' 方法
gdb.LazyString 现在实现 __str__ 方法
新事件 gdb.ThreadExitedEvent
新事件 gdb.ExecutableChangedEvent
新事件 gdb.NewProgspaceEvent
新事件 gdb.FreeProgspaceEvent
.....。
Remote protocol
支持启用或禁用单个远程目标功能
GDB/MI 支持
新的 “no-history” 停止原因
支持 inferior-specific breakpoints
在 breakpoint-created 的通知中和 -break-insert 命令的结果中出现的 bkpt 元组现在可以包含一个可选的 "inferior" 字段,用于 main breakpoint 和每个位置(如果 breakpoint 是 inferior-specific)。
尝试使用不存在的 thread ID 创建 thread-specific breakpoint 现在会导致错误
新增 "simple-values-ref-types"-list-feature 值,指示各种命令中的 --simple-values 选项如何考虑引用类型。
增强的 AArch64 支持
对 Scalable Matrix Extension (SME) 和 Scalable Matrix Extension 2 (SME2) 的初步支持
“org.gnu.gdb.aarch64.pauth” 指针验证功能现已弃用,转而使用 "org.gnu.gdb.aarch64.pauth_v2" 功能字符串。
增强的 Ada 支持
支持 Ada 2022 target name symbol ('@')
支持 Ada 2022 'Enum_Rep 和 'Enum_Val 属性
各种各样的
“list” 命令现在接受 “.” 作为参数,告诉 GDB print 当前帧内执行点周围的位置。
printf 和 dprintf 命令的新 “% V” 输出格式。
printf 命令现在将从 inferior 获取的字符串大小限制为 "max-value-size" 设置的值。
通过新的 --additional-debug-dirs=PATHs 配置选项,支持在配置时扩展 GDB 参数 "debug-file-directory" 的默认值。
新命令 “info main”
新命令 “set tui mouse-events [on|off]”(默认打开)
新命令 “set always-read-ctf on|off”(默认关闭)
各种新的调试和维护命令