为什么 GDB 中显示的 RSP 值高于 RBP?
Why is value of RSP higher than RBP as displayed in GDB?
我正在用 gdb 检查一个进程(实际上没有错误)。
但是我注意到,在做info registers的时候,RSP
高于RBP
,这与栈向下增长的事实不符。这可能是编译器的一些优化?
rbp 0x7fabaf9ba290 0x7fabaf9ba290
rsp 0x7ffdf1ffa1b0 0x7ffdf1ffa1b0
不要求 rbp
用作帧指针。当 -fomit-frame-pointer
处于活动状态时,作为优化程序中的默认设置,它的使用方式与任何其他调用保存寄存器(例如,rbx
)相同。
我正在用 gdb 检查一个进程(实际上没有错误)。
但是我注意到,在做info registers的时候,RSP
高于RBP
,这与栈向下增长的事实不符。这可能是编译器的一些优化?
rbp 0x7fabaf9ba290 0x7fabaf9ba290
rsp 0x7ffdf1ffa1b0 0x7ffdf1ffa1b0
不要求 rbp
用作帧指针。当 -fomit-frame-pointer
处于活动状态时,作为优化程序中的默认设置,它的使用方式与任何其他调用保存寄存器(例如,rbx
)相同。