我试图让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)
我以前曾使用过此命令(据我所知,它是完全相同的命令),但是突然之间似乎不起作用。有任何想法吗?
您可能输错了命令:
格式字母为 o(八进制)、x(十六进制)、d(十进制)、u(无符号十进制)、t(二进制)、f(浮点)、a(地址)、i(指令)、c(字符)和 s (细绳)。
您应该使用此命令进行十六进制输出:x /48x $esp