我正在使用一种使用uint16_t
作为数据类型的算法。数组中有4个半字,因此我尝试以十六进制显示四个半字。除了x/4h
之外我什么都没做:
(gdb) x/4h master_key
0x7fffffffd330: u"Āईᄐᤘ桷"
0x7fffffffd33c: u"桷敥\xbe0@"
0x7fffffffd346: u""
0x7fffffffd348: u"ꆋ翿"
根据GDB | Memory:
f,显示格式
显示格式是打印使用的格式之一(“ x”,“ d”,“ u”,“ o”,“ t”,“ a”,“ c”,“ f”,“ s”) ),另外还有“ i”(对于机器 说明)。最初的默认设置是“ x”(十六进制)。默认值 每次使用x或print时都会更改。
我不确定为什么x
尝试打印字符串,但是我希望它以十六进制打印半个单词。
GDB似乎没有遵循该手册。我认为我需要更改x
的行为并使其持久。如何告诉GDB以十六进制打印半个字?
我的.gdbinit
中的内容如下,但看起来GDB忽略了它(not a surprise)。
(gdb) shell cat ~/.gdbinit
set output-radix 16
set history save on
set history size 256
set logging on
set logging overwrite on