c++ - -fomit-frame-pointer,使用它安全吗?

标签 c++ c optimization gcc

我在很多地方看到人们在编译 C/C++ 代码时经常使用选项 -fomit-frame-pointer 我想知道,使用该选项安全吗?它有什么用?

非常感谢,最诚挚的问候。

最佳答案

该选项是安全的,但会使调试变得更加困难。通常,C 编译器输出的代码在常规寄存器(x86 上的 ebp)中存储指向函数堆栈帧的指针。调试器使用它来打印局部变量内容和其他此类信息。 -fomit-frame-pointer 标志指示 gcc 不要理会该寄存器。在某些情况下,这会产生轻微的性能提升,主要是由于减少了代码占用空间(这对缓存更好)和额外的可用寄存器(尤其是在 32 位模式下的 x86 上,众所周知,寄存器不足)。

关于c++ - -fomit-frame-pointer,使用它安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2334396/

相关文章:

python - Python 中的非顺序循环优化

c++ - 针对不同的目标架构进行编译和优化

c++ - Doxygen 详细描述渗透到简短描述中

php - 在 lampp 服务器中从 php 运行 ffmpeg 时找不到 GLIBCXX_3.4.9

c++ - 将 const 传递给具有非常量参数的函数

C++ Boost 概念弃用警告

c++ - 为什么错误 1400 Invalid window handle?

c - 循环命令

c - 编写C代理时出现的问题

gcc 和 cpu_relax、smb_mb 等?