我使用 gdb 来调试我的程序。像这样的输出,我在 Python/ceval.c:1071
(gdb) info reg
eax 0x7d 125
ecx 0x29 41
edx 0x8a44e04 144985604
ebx 0xce4518 13518104
esp 0xbfb24d10 0xbfb24d10
ebp 0xb7d72bed 0xb7d72bed
esi 0x8a563e4 145056740
edi 0x8a56294 145056404
eip 0xc400f8 0xc400f8 <PyEval_EvalFrameEx+936>
eflags 0x206 [ PF IF ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
(gdb)
所以我想知道为什么esp比ebp大? 一些信息,
Linux foxyfont2.uc.local 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:43 EDT 2010 i686 i686 i386 GNU/Linux
gcc 版本 4.6.2 (GCC)
最佳答案
尽管ebp
有时被用作帧指针,但它只是另一个通用寄存器。如果它不用作帧指针,则它的值可以是任何值。您可能还会看到以前使用的剩余值(value)。
关于python - 为什么在我的 32 位服务器中,Python 的 ESP 比 EBP 大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26972249/