我正在尝试让GDB显示堆栈的十六进制值,所以我使用了命令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
之前我已经完成了这个命令(据我所知它是完全相同的命令),但突然之间似乎没有工作。有什么想法吗?
答案 0 :(得分:4)
你可能错误地输入了你的命令:
格式字母是o(八进制),x(十六进制),d(十进制),u(无符号十进制), t(二进制),f(浮点),a(地址),i(指令),c(char)和 S(字符串)。
您应该将此命令用于十六进制输出:x /48x $esp