你好,我正在VMWARE上运行Ubuntu,当我尝试访问$esp处的内存时,会出现如下屏幕截图中的错误。我已经尝试过谷歌搜寻答案,但大多数都太复杂了。是否有任何配置需要我做才能使其工作?我已经在我的实际Windows机器上运行了gdb,它没有这个问题。谢谢。
你需要使用$rsp,而不是$esp。 使用 $esp,你得到了符号扩展的32位截断值,该值指向neverland。 注意:GDB提供$sp伪寄存器,它自动映射到给定平台的正确堆栈指针寄存器。(gdb) p $rsp $1 = (void *) 0x7fffffffe178 (gdb) p $sp $2 = (void *) 0x7fffffffe178 (gdb) p $esp $3 = -7816 (gdb) p/x $esp $4 = 0xffffe178