5

我试图让 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

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

4

1 回答 1

4

您可能输错了命令:

格式字母为 o(octal)、x(hex)、d(decimal)、u(unsigned decimal)、t(binary)、f(float)、a(address)、i(instruction)、c(char) 和 s (细绳)。

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

于 2012-04-08T02:44:10.233 回答