我正在尝试从其中访问.eh_frame
正在运行的程序部分的内容(具体来说,该程序是 Linux 内核 2.6.34.8)。包含用于异常处理的.eh_frame
有用数据,我想在内核代码内部使用它。该部分已经由gcc
(readelf -a vmlinux.o
包含.eh_frame
)编写,问题是从代码中读取它。我很确定精灵格式文档说.eh_frame
在代码执行期间可以访问。
我查看了 的来源glibc
以寻找.eh_frame
用法,并在 中找到了大多数 CFA 指令的宏sysdeps/generic/sysdep.h
,但没有找到加载.eh_frame
数据的实际代码。
是否需要修改加载内核的过程以从文件中加载数据,或者.eh_frame
信息/.eh_frame_hdr
节指针是否作为宏/汇编程序名称存储在某处(因此可以将其提取到 C 变量中)?