【问题标题】:What is the .data.rel.ro used for?.data.rel.ro 是做什么用的?
【发布时间】:2011-10-25 04:14:11
【问题描述】:

我正在使用 objdump 来分析共享对象的内存使用情况。除了 .data 和 .rodata 部分,我还看到了 .data.rel.ro 部分。

谁知道这个是干什么用的?

【问题讨论】:

    标签: gcc objdump


    【解决方案1】:

    我找到了答案here

    gcc、GNU 链接器和 glibc 动态链接器合作 实现一个称为只读重定位或 relro 的想法。这允许 链接器指定可执行文件的一部分或(更常见的)一个 动态重定位后共享库为只读 已申请。

    这可以用于已初始化的只读全局变量 到需要搬迁的东西,例如一个地址 函数或不同的全局变量。因为全局变量 需要动态重定位形式的运行时初始化, 它不能放在只读段中。然而,因为它是 声明为常量,因此不能由 程序,动态链接器可以在动态后将其标记为只读 已申请搬迁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-29
      • 2011-08-24
      • 2023-04-03
      • 2014-03-04
      • 2012-05-19
      • 2015-07-17
      • 2014-02-26
      • 2012-06-29
      相关资源
      最近更新 更多