【问题标题】:viewing the content of stack other than registers查看寄存器以外的堆栈内容
【发布时间】:2023-03-16 11:10:02
【问题描述】:

我只是想知道如何使用 GDB 查看 8(%rsp) 的内容。根据我在谷歌搜索几个gdb指南后发现的几个来源,当我尝试查看寄存器rsp的内容时,我可以使用这个命令:

print/d $rsp

将打印$rsp 的地址。但是,当我尝试时:

print/d 8($rsp)

我遇到了分段错误。当我尝试时:

print/d *$rsp+8 

它说我不能取消引用通用指针。我也尝试使用:

x/8d $rsp

但是,我认为此命令将查看 rsp 下方而不是 rsp 上方的 8 个数字。我对吗?我之所以要查看8($rsp)的内容,唯一的原因是有一个汇编语句:

cmp    0x8(%rsp),%eax

有什么建议吗?

【问题讨论】:

  • Rsp没有地址;它的值通常但不一定被解释为地址。

标签: assembly gdb


【解决方案1】:

事实上,您已经非常接近解决方案了。正确的语法就是print /d *($rsp+8)x /x $rsp+8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 2011-12-12
    • 2012-04-27
    • 1970-01-01
    • 2021-06-10
    相关资源
    最近更新 更多