在现代 Linux 操作系统上,frame.h 文件(或其等效文件)位于哪里?

在现代 Linux 操作系统上,frame.h 文件(或其等效文件)位于哪里?

我正在读的一本书提到了一个包含文件展示堆栈框架的样子在 UNIX 系统上。

尤其:/usr/include/sys/frame.h

我找不到现代的对应版本。有人知道吗?我在用 Ubuntu 12.10。


顺便说一句,我想要的是堆栈框架和激活记录的描述——不一定是文件的遗迹。不过,这些信息“在过去”就存储在那个文件中。

答案1

您可能希望查看ptrace.hcalling.h文件,它们有一些定义堆栈框架布局和调用约定的 C 结构(它们可以在与相同的文件夹中找到frame.h)。此外,elfcore.h头文件包括gperftools 项目可能会对调用堆栈框架提供一些有用的见解。

如果你有兴趣,你也可以看看x86 汇编x86 反汇编Wikibooks 上的书籍。它们包含大量有关堆栈框架和调用约定细节的有用信息(高级和低级)。


就而言frame.h,调用sudo find / -name "frame.h"我的 Xubuntu 12.04 安装返回以下内容:

/usr/src/linux-headers-3.2.0-23/arch/x86/include/asm/frame.h
/usr/src/linux-headers-3.2.0-33/arch/x86/include/asm/frame.h
/usr/src/linux-headers-3.2.0-35/arch/x86/include/asm/frame.h
/usr/src/linux-headers-3.2.0-34/arch/x86/include/asm/frame.h

毫不奇怪,上面列出的内核版本之间文件没有变化,并且由于兼容性原因您不太可能看到任何变化(当然,这取决于您的系统架构)。

相关内容