为什么 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)相同。