如何将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