如何-fomit-frame-pointer gcc选项可能使调试无法进行?

时间:2018-05-31 15:45:44

标签: gcc

GCC在线文档 - 3.10 Options That Control Optimization确认 -fomit-frame-pointer gcc选项可能无法进行重新布局。

  

-fomit帧指针

     

不要将帧指针保存在寄存器中以查找不需要的函数。这避免了保存,设置和恢复帧指针的指令;它还在许多功能中提供额外的寄存器。 它也使某些机器无法进行调试

我理解为什么局部变量难以定位,如果没有框架指针来帮助重建堆栈跟踪就更难了。

但是,在什么情况下调试不可能

1 个答案:

答案 0 :(得分:0)

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