如何将GDB格式的半字内存设置为十六进制?

如何将GDB格式的半字内存设置为十六进制?,gdb,Gdb,我正在使用一种使用uint16\u t作为数据类型的算法。数组中有4个半字,所以我尝试用十六进制显示这4个半字。除了x/4h,我什么也没做过: (gdb) x/4h master_key 0x7fffffffd330: u"Āईᄐᤘ桷" 0x7fffffffd33c: u"桷敥\xbe0@" 0x7fffffffd346: u"" 0x7fffffffd348: u"ꆋ翿" 根据报告: f、 显示格式 显示格式是打印使用的格式之一(“x”、“d”、“u”、“o”、“t”、“a”、“c”、“f

我正在使用一种使用
uint16\u t
作为数据类型的算法。数组中有4个半字,所以我尝试用十六进制显示这4个半字。除了
x/4h
,我什么也没做过:

(gdb) x/4h master_key
0x7fffffffd330: u"Āईᄐᤘ桷"
0x7fffffffd33c: u"桷敥\xbe0@"
0x7fffffffd346: u""
0x7fffffffd348: u"ꆋ翿"
根据报告:

f、 显示格式

显示格式是打印使用的格式之一(“x”、“d”、“u”、“o”、“t”、“a”、“c”、“f”、“s”),以及“i”(用于机器) 说明)。默认值最初为“x”(十六进制)。默认值 每次使用x或print时都会更改

我不确定为什么
x
试图打印字符串,但我希望它以十六进制打印半个字

GDB似乎没有遵循手册。我想我需要更改
x
的行为并使其持久化。我如何告诉GDB以十六进制打印半个单词


我的
.gdbinit
中有以下内容,但GDB似乎忽略了它()


尝试使用
x/4hx主控键
。如果只指定宽度而不指定数据类型,GDB将使用前面的数据类型。第一个
x
是“检查内存”。
4
表示“四要素”。
h
表示“半字”(16位)元素。第二个
x
表示十六进制。在相关说明中,您可以使用
x/16bx
以十六进制打印16字节的“字符串”。
(gdb) shell cat ~/.gdbinit
set output-radix 16

set history save on
set history size 256

set logging on
set logging overwrite on