-fomit-frame-pointer

-fomit-frame-pointer

Content #

GCC编译器有一个参数叫做-fomit-frame-pointer可以取消 帧指针(Frame Pointer),即不使用任何帧指针,而是通过esp直接计算帧上变量的位置。

这么做的好处是可以多出一个ebp寄存器供使用,但是坏处却很多,比如帧上寻址速度会变慢,而且没有帧指针之后,无法准确定位函数的调用轨迹(Stack Trace)。所以除非你很清楚你在做什么,否则请尽量不使用这个参数。

From #

程序员的自我修养