2013-04-23 55 views
2

我只是想知道如何使用GDB查看8(%rsp)的内容。根据几个来源,我在Google上搜寻一些GDB指南后发现,当我尝试查看寄存器RSP的内容,我可以使用这个命令:查看寄存器以外的堆栈内容

print/d $rsp 

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

print/d 8($rsp) 

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

print/d *$rsp+8 

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

x/8d $rsp 

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

cmp 0x8(%rsp),%eax 

任何建议家伙?

+0

Rsp没有地址;它有一个典型值,但不一定被解释为地址。 – 2013-04-23 20:34:48

回答

1

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

+0

啊,sooo关闭。 thx人 – 2013-04-23 20:40:57