我请谷歌给我gcc
选项-fomit-frame-pointer
的含义,它将我重定向到下面的声明.
-fomit-frame-pointer个
对于不需要帧指针的函数,不要将帧指针保存在寄存器中.这避免了保存、设置和恢复帧指针的指令;它还可以在许多功能中使用额外的寄存器.这也使得在某些机器上无法进行调试.
根据我对每个函数的了解,将在进程内存堆栈中创建一个激活记录,以保存所有局部变量和更多信息.我希望这个帧指针意味着函数激活记录的地址.
在这种情况下,它不需要将帧指针保存在寄存器中的函数类型是什么?如果我获得此信息,我将try 基于此设计新函数(如果可能),因为如果帧指针没有保存在寄存器中,一些指令将以二进制形式省略.这将在功能众多的应用程序中显著提高性能.