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