GDB没有显示堆栈的十六进制值

Nos*_*tap 5 c c++ hex gdb

我试图让GDB显示堆栈的十六进制值,所以我使用了command x /48b $esp,这是我在Internet上看到的命令,该命令应显示堆栈中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
Run Code Online (Sandbox Code Playgroud)

我以前曾使用过此命令(据我所知,它是完全相同的命令),但是突然之间似乎不起作用。有任何想法吗?

Ale*_*lin 4

您可能输错了命令:

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

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