C++ GDB未显示堆栈的十六进制值

C++ GDB未显示堆栈的十六进制值,c++,c,gdb,hex,C++,C,Gdb,Hex,我试图让GDB显示堆栈的十六进制值,所以我使用了命令x/48b$esp,这是我在互联网上看到的一个命令,它应该显示堆栈上48字节的十六进制值,从堆栈指针指向的位置开始。但是,当我执行此命令时,我会得到整数值(有些是负值)。下面是一个例子: (gdb) x /48b $esp 0xbffff200: 40 -14 -1 -65 24 -114 4 8 0xbffff208: 123 0 0 0 0 0 0 0 0xbffff210: 16 0 0

我试图让GDB显示堆栈的十六进制值,所以我使用了命令
x/48b$esp
,这是我在互联网上看到的一个命令,它应该显示堆栈上48字节的十六进制值,从堆栈指针指向的位置开始。但是,当我执行此命令时,我会得到整数值(有些是负值)。下面是一个例子:

(gdb) x /48b $esp
0xbffff200: 40  -14 -1  -65 24  -114    4   8
0xbffff208: 123 0   0   0   0   0   0   0
0xbffff210: 16  0   0   0   -3  -112    17  0
0xbffff218: -18 64  27  0   -1  -1  -1  -1
0xbffff220: 88  40  19  0   45  -9  17  0
0xbffff228: 38  38  -64 -14 -1  -65 -64 -14

我以前做过这个命令工作(据我所知,它是完全相同的命令),但是突然之间它似乎不起作用。有什么想法吗?

您可能输入了错误的命令:

格式字母为o(八进制)、x(十六进制)、d(十进制)、u(无符号十进制), t(二进制)、f(浮点)、a(地址)、i(指令)、c(字符)和 s(字符串)


您应该对十六进制输出使用此命令:
x/48x$esp

我对gdb不是很好,但我很确定是“b”导致了这一点。。。试着不用它。或许可以尝试
帮助x
。。。