-
CONFIG_OVERRIDE_FRAME_POINTER_DEFAULT
¶
Override compiler defaults for -fomit-frame-pointer
Type: bool
Help¶
Omitting the frame pointer prevents the compiler from putting the stack frame pointer into a register. Saves a few instructions in function prologues/epilogues and frees up a register for general-purpose use, which can provide good performance improvements on register-constrained architectures like x86. On some architectures (including x86) omitting frame pointers impedes debugging as local variables are harder to locate. At -O1 and above gcc will enable -fomit-frame-pointer automatically but only if the architecture does not require if for effective debugging.
Choose Y if you want to override the default frame pointer behavior of your compiler, otherwise choose N.
Defaults¶
No defaults. Implicitly defaults to n
.
Kconfig definition¶
At <Zephyr>/subsys/debug/Kconfig:280
Included via <Zephyr>/Kconfig:8
→ <Zephyr>/Kconfig.zephyr:34
→ <Zephyr>/subsys/Kconfig:17
Menu path: (Top) → Sub Systems and OS Services → Debugging Options
config OVERRIDE_FRAME_POINTER_DEFAULT
bool "Override compiler defaults for -fomit-frame-pointer"
help
Omitting the frame pointer prevents the compiler from putting the stack
frame pointer into a register. Saves a few instructions in function
prologues/epilogues and frees up a register for general-purpose use,
which can provide good performance improvements on register-constrained
architectures like x86. On some architectures (including x86) omitting
frame pointers impedes debugging as local variables are harder to
locate. At -O1 and above gcc will enable -fomit-frame-pointer
automatically but only if the architecture does not require if for
effective debugging.
Choose Y if you want to override the default frame pointer behavior
of your compiler, otherwise choose N.
(The ‘depends on’ condition includes propagated dependencies from ifs and menus.)