gpt4 book ai didi

linux - 查看堆栈溢出寄存器错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:27:46 25 4
gpt4 key购买 nike

我正在尝试查看 esp 寄存器,以了解堆栈溢出是如何发生的。

我使用了x/8xw $esp命令来查看寄存器,但一直收到无法访问0xffffffffffffdf30处的内存的错误。有人可以告诉我问题可能是什么吗?

我使用的是Linux 3.13。我通过以下链接来了解寄存器和堆栈溢出。除了上述命令之外,其他一切都正常工作。在10:32的视频中,作者可以显示esp寄存器,但是当我在我的机器上显示时,却无法显示。

https://www.youtube.com/watch?v=RF7DF4kfs1E&index=1&list=PL118A3998B4401EC6

最佳答案

主要问题是,该教程是针对 x86 架构制作的。

"Cannot access memory at 0xffffffffffffdf30"

0xffffffffffffdf30是64位地址。当你在 64 位系统上时,你无法检查 ESP 寄存器,因为根本就没有。

例如,64位系统正在使用这些寄存器——RSP、RBP、RIP等。在x86上您可以知道这些寄存器为ESP、EBP和EIP。因此,如果您想继续学习本教程,请使用 gcc 将训练 .c 代码编译为 32 位,例如:gcc -m32 -o demo demo.c

关于linux - 查看堆栈溢出寄存器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28651853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com