作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
反汇编中有这样的代码:
movl $0x6,-0x4(%rbp)
我尝试以这种方式打印值,但失败了:
(gdb) p 0x4(%esp)
A syntax error in expression, near `%esp)'.
(gdb) p 0x4+$esp
Argument to arithmetic operation not a number or boolean.
如何正确打印?
最佳答案
看起来您正在使用 64 位代码,在这种情况下您只需要,例如:
(gdb) p $rbp-0x4
$1 = (void *) 0x7fff5fbff71c
如果您想查看该地址的实际内容,则需要转换 void *
地址,例如
(gdb) p /x *(int *)($rbp-0x4)
$2 = 0x7fff
或者,更简洁地,使用 x
而不是 p
,例如
(gdb) x /w $rbp-0x4
0x7fff5fbff71c: 0x00007fff
关于gdb - 如何在gdb中打印-0x4(%rbp)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5455832/
我是一名优秀的程序员,十分优秀!