c/c++语言开发共享在执行期间访问.eh_frame数据

我正在尝试从其中访问正在运行的程序的.eh_frame部分的内容(具体来说,该程序是Linux内核2.6.34.8)。 .eh_frame包含用于exception处理的有用数据,我想在内核代码内部使用它。 该部分已由gcc编写( readelf -a vmlinux.o包含.eh_frame ),问题是从代码中读取它。 我很确定精灵格式的文档说在代码执行期间可以访问.eh_frame

我查看了glibc的源代码,以寻找.eh_frame用法,并在sysdeps/generic/sysdep.h找到了大多数CFA指令的宏,但没有找到加载.eh_frame数据的实际代码。

是否需要修改加载内核以从文件加载数据的过程,或者.eh_frame info / .eh_frame_hdr段指针存储在某处作为宏/汇编程序名称(因此可以将其提取到C变量中)?

    vmlinux.o不是加载的实际内核。

    实际的内核映像(通常是bzImage )不是ELF文件,只包含运行内核所需的数据。

    此外,大多数内核不会使用exception处理信息进行编译。

      以上就是c/c++开发分享在执行期间访问.eh_frame数据相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/562659.html

      (0)
      上一篇 2021年2月5日
      下一篇 2021年2月5日

      精彩推荐