我正在尝试访问以下内容.eh_frame
正在运行的程序的一部分(具体来说,该程序是 Linux 内核 2.6.34.8)。这.eh_frame
包含用于异常处理的有用数据,我想在内核代码内部使用它。该部分已经由以下人员编写gcc
(readelf -a vmlinux.o
包含.eh_frame
),问题是从代码中读取它。我很确定 elf 格式文档是这么说的.eh_frame
在代码执行期间可以访问。
我已经研究过来源glibc
寻找.eh_frame
用法并找到了大多数 CFA 指令的宏sysdeps/generic/sysdep.h
,但不是加载的实际代码.eh_frame
data.
是否需要修改加载内核的流程来从文件中加载数据,或者是.eh_frame
info/.eh_frame_hdr
节指针作为宏/汇编器名称存储在某处(因此可以将其提取到 C 变量中)?
vmlinux.o
不是加载的实际内核。
实际的内核映像(通常是bzImage
)不是 ELF 文件,仅包含运行内核所需的数据。
此外,大多数内核都没有使用异常处理信息进行编译。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)