它意味着什么以及了解它对于 C/C++ 程序员有多重要?
至少在概念上,跨平台是否相同?
我将其理解为一个分配的内存块,用于通过函数存储局部变量......
我想了解更多
激活记录是堆栈帧的另一个名称。它是组成调用堆栈的数据结构。它一般由以下几部分组成:
- 被叫方的本地人
- 返回地址给调用者
- 被调用者参数
- 前一个堆栈指针 (SP) 值
因此,调用堆栈由任意数量的激活记录组成,这些激活记录在添加新子例程时添加到堆栈中,并在它们返回时(通常)从堆栈中删除。
元素的实际结构和顺序是由平台甚至实现定义的。
对于C/C++程序员来说,基本知识此结构的详细信息对于理解某些实现功能(例如调用约定)以及为什么缓冲区溢出允许运行第 3 方恶意代码非常有用。
A more 成竹在胸将进一步深化上述概念,并且即使在没有调试器或调试符号的情况下,也允许程序员调试其应用程序并读取内存转储。
但更一般地说,C/C++ 程序员可能会在业余编程生涯的大部分时间里甚至没有考虑过调用堆栈。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)