A.2. GDB 中的更改
Red Hat Developer Toolset 9.0 带有 GDB 8.3。
从以前的 Red Hat Developer Toolset 版本开始添加了或修改了以下功能:
常规改进
-
GDB 和 GDBserver 现在允许访问 IBM POWER 系统(
PPR,DSCR,TAR,EBB/PMU, 和HTM寄存器)上的额外注册。 -
GDB 和 GDBserver 现在支持 IPv6 连接。使用
[ADDRESS]:PORT表示法或常规ADDRESS:PORT方法传递 IPv6 地址。 - 现在,如果要执行的最后一个命令失败,则批处理模式下的 GDB 现在退出,状态为 1。
- 现在,CLI 和 TUI 提供了终端样式。有关样式命令列表,请参阅 GDB 用户手册的 Output Styling 部分。GNU Source Highlight 程序也可用于源代码样式。
新命令
frame apply [all | COUNT | -COUNT | level LEVEL…] [FLAG]… COMMAND- 仅适用于某些帧。
-
使用
FLAG参数来选择所需的输出,并设置方法来处理在将COMMAND应用到帧时可能得到的错误。
taas COMMAND语法是较短的线程版本,应用 all -s COMMAND。- 适用于所有线程,包括错误和空输出的线程。
faas COMMAND语法是一个较短的帧版本,应用 all -s COMMAND。- 适用于所有帧,包括带有错误和空输出的帧。
tfaas COMMAND语法是较短的线程版本,应用 all -s 帧应用所有 -s COMMAND。- 适用于所有线程的帧,包括带有错误和空输出的帧和线程。
更改的命令
对
帧、选择-frame和info 帧CLI 命令的更改:- 这些命令现在接受帧规格。它可以是 帧级别,也可以是关键字 级别、地址、功能 或 查看,后跟参数。
- 需要按地址选择帧或查看当前后端外帧的关键字。
- 根据级别选择帧不会改变。
-
MI comment
-stack-select-frame保持不变。
目标远程 FILENAME和目标 extended-remote FILENAME-
如果
FILENAME是 Unix 域套接字,GDB 会尝试连接到此套接字,也不会打开FILENAME作为字符设备。
-
如果
info args [-q] [-t TYPEREGEXP] [NAMEREGEXP]info functions [-q] [-t TYPEREGEXP] [NAMEREGEXP]info locals [-q] [-t TYPEREGEXP] [NAMEREGEXP]info variables [-q] [-t TYPEREGEXP] [NAMEREGEXP][NAMEREGEXP] [NAMEREGEXP]前面的四个命令现在有一个新的
[-t TYPEREGEXP]标志。它将匹配的实体返回为与TYPEREGEXP匹配的类型。[-q]标志禁用打印标头或信息信息。info 功能info typeinfo variablesrbreak前面的四个命令现在根据
设置语言选项中选择的语言来确定实体的语法。set language auto选项会自动选择显示实体的语言。线程应用 [all | COUNT | -COUNT] [FLAG]… COMMAND-
添加了新的
[FLAG]参数。使用[FLAG]参数选择所需的输出,并设置方法来处理在将COMMAND应用到帧时可能得到的错误。
-
添加了新的
Python API
-
为
gdb.Inferior类型添加了一个新的progspace属性。它是与该 inferior 关联的程序空间。 -
新的
objfiles方法添加到gdb.Progspace类型中。它返回与该程序空间关联的objfiles列表。 -
新的构造器被添加到
gdb.Value类型中。它用于从 Python 缓冲对象和gdb.Type构造gdb.Value。 -
以下新域被添加来反映对 GDB 内核的更改:
gdb.SYMBOL_LOC_COMMON_BLOCK,gdb.SYMBOL_MODULE_DOMAIN, 和gdb.SYMBOL_COMMON_BLOCK_DOMAIN。