答案 0 :(得分:1)
有人可以解释为什么我们需要Stack帧吗? 它的核心目的是什么? 有什么好处?
我认为这些都是类似的问题。堆栈框架提供了一种方法,
signal
处理。原因'3'在没有很多寄存器的机器上更重要。上述项目是“核心目的”,利益还是需要是主观的。它们都是堆叠框架的原因。出于上述原因,是否需要堆栈帧取决于应用程序设计人员。
在大多数情况下,是不是只有一个堆栈指针足以从堆栈中推送和弹出元素而不使用任何帧?
push / pop就足够了,但它可能效率不高;确实在较新的ARM'应用程序二进制接口'(ABI)中,它不是必需的,gcc提供了使用/不使用堆栈帧的选项。在不使用堆栈帧的情况下提供堆栈跟踪肯定更难。
使用递归,变量分配(alloca),函数指针等推送/弹出变得不那么直接。
这里的Stack Frames,提到堆栈帧是一种内存管理技术......它是一种内存管理技术?
它以简单的方式管理内存。 “最后一个请求”是“第一个空闲”,堆栈和帧指针是完美的。 Gnu Objstack类似。