为什么在3GB地址空间之外显示帧指针?

时间:2019-01-09 17:22:57

标签: c linux-kernel kernel

在进行gdb调试时,我在0xffffd3d0处获取了帧,并将eip = 0xf7e04e7e保存在堆栈级别0中。

(gdb) info frame
Stack level 0, frame at 0xffffd3d0:
 eip = 0x8048452 in main (test.c:13); saved eip = 0xf7e04e7e
 source language c.
 Arglist at 0xffffd3b8, args:
 Locals at 0xffffd3b8, Previous frame's sp is 0xffffd3d0
 Saved registers:
  ebp at 0xffffd3b8, eip at 0xffffd3cc
(gdb)

这是我关于用户空间3GB地址空间的问题。为什么它在3GB地址空间之外显示帧指针? 通常,在3:1虚拟地址分布中,用户空间的地址空间是0到0xc000000

1 个答案:

答案 0 :(得分:0)

3GB的限制不适用于64位进程