A.5. GDB 中的更改
Red Hat Developer Toolset 11.0 与 GDB 10.2 一起发布。
自以前的 Red Hat Developer Toolset 发行版本以来,添加了或修改了以下功能:
新功能
- 在支持此功能的架构中默认启用多线程符号载入。此更改为带有很多符号的程序提供更好的性能。
- 文本用户界面(TUI)窗口可以水平排列。
- GDB 支持同时调试多个目标连接,但这个支持是实验性并有限。例如,您可以将每个人连接到在不同的机器上运行的不同远程服务器,也可以使用一个不合者调试本地原生进程或核心转储或某些其他进程。
新的和改进的命令
-
新的
tui new-layout name window weight [window weight…]
命令创建一个新的文本用户界面(TUI)布局,您还可以指定布局名称和显示窗口。 -
改进的
别名 [-a] [--] alias = command [default-args]
命令在创建新别名时指定默认参数。 -
set exec-file-mismatch
和show exec-file-mismatch
命令集和显示新的exec-file-mismatch
选项。当 GDB 附加到正在运行的进程时,这个选项控制在当前由 GDB 加载的可执行文件和用于启动进程的可执行文件之间是否检测到不匹配时 GDB 如何做出反应。
Python API
-
gdb.register_window_type
函数在 Python 中实现新的 TUI 窗口。 -
现在,您可以查询动态类型。
gdb.Type
类的实例可以具有新的布尔值属性动态
,而gdb.Type.sizeof
属性的值可以具有None
值的动态类型。如果Type.fields()
返回了动态类型的字段,则其bitpos
属性的值可以是None
。 -
新的
gdb.COMMAND_TUI
constant 将 Python 命令注册为 TUI 帮助类命令的成员。 -
新的
gdb.PendingFrame.architecture()
方法检索待处理帧的架构。 -
新的
gdb.Architecture.registers
方法会返回gdb.RegisterDescriptorIterator
对象,它会返回gdb.RegisterDescriptor
对象。此类对象不提供注册的值,但有助于了解哪些寄存器可用于架构。 -
新的
gdb.Architecture.register_groups
方法会返回gdb.RegisterGroupIterator
对象,它会返回gdb.RegisterGroup
对象。这样的对象有助于了解哪些寄存器组可用于架构。