3.5. GDB 中兼容性破坏的更改
Red Hat Enterprise Linux 9 中提供的 GDB 版本包含几个破坏兼容性的更改。以下部分详细介绍了这些变化。
命令
gdb -P python-script.py
命令不再支持。改为使用
gdb -ex 'source python-script.py'
命令。gdb COREFILE
命令不再支持。改为使用
gdb EXECUTABLE --core COREFILE
命令加载核文件中指定的可执行文件。GDB 现在默认设置输出样式。
这个新更改可能会破坏尝试解析 GDB 输出的脚本。使用
gdb -ex 'set style enabled off'
命令禁用脚本中的样式。命令现在根据语言为符号定义语法。
info functions
、info types
、info variables
和rbreak
命令现在根据set language
命令所选择的语言为实体定义语法。通过将其设置为set language auto
表示 GDB 将自动选择显示实体的语言。set print raw frame-arguments
和show print raw frame-arguments
命令已被弃用。这些命令被
set print raw-frame-arguments
和show print raw-frame-arguments
命令替代。旧的命令可能会在以后的版本中删除。以下 TUI 命令现在区分大小写:
-
focus
-
winheight
-
+
-
-
-
>
-
<
-
help
和apropos
命令现在只显示一次命令信息。现在,这些命令只显示一次命令的文档,即使该命令有一个或多个别名。这些命令现在显示命令名称,然后是其所有别名,最后是命令的描述。
MI 解释器
MI 解释器的默认版本现在是 3。
MI 3 中更改了有关多位置断点(其在 MI 2 中语法不正确)信息的输出。这会影响以下命令和事件:
-
-break-insert
-
-break-info
-
=breakpoint-created
-
=breakpoint-modified
使用
-fix-multi-location-breakpoint-output
命令在之前的 MI 版本中启用此行为。-
Python API
以下符号现已弃用:
-
gdb.SYMBOL_VARIABLES_DOMAIN
-
gdb.SYMBOL_FUNCTIONS_DOMAIN
-
gdb.SYMBOL_TYPES_DOMAIN
-
-
gdb.Value
类型有一个新的构造器,用于从 Python 缓冲对象和gdb.Type
构造gdb.Value
。 -
现在,当没有过滤器或使用
backtrace
命令的-no-filters
选项时,Python 帧过滤代码打印的帧信息与backtrace
命令打印的帧信息一致。