如何使GDB格式的半字存储器为十六进制?

时间:2018-06-24 21:47:40

标签: gdb

我正在使用一种使用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

0 个答案:

没有答案