首页 > 解决方案 > -fomit-frame-pointer gcc 选项如何使调试变得不可能?

问题描述

GCC 在线文档 - 3.10 控制优化的选项确认-fomit-frame-pointer gcc 选项可以使调试变得不可能。

-fomit-frame-pointer

不要将帧指针保存在不需要的函数的寄存器中。这避免了保存、设置和恢复帧指针的指令;它还为许多功能提供了额外的寄存器。它还使某些机器上的调试变得不可能

我理解为什么在没有帧指针帮助的情况下,局部变量更难定位,而堆栈跟踪更难重建。

但是,在什么情况下无法调试?

标签: gcc

解决方案


从某种意义上说,这些平台的现有工具(通常由平台供应商提供,而不是 GNU)期望帧指针存在以成功展开可能是不可能的。理论上可以将它们修改为更智能,但实际上这是不可能的。


推荐阅读