Advertisement

ELF编译链接过程中的关键信息(初步整理的笔记)

阅读量:

此前仅接触过与Windows系统相关的PE文件,现暂且整理一些关于ELF文件的信息,后续将另行发布详细内容。

ELF文件结构解析

ELF header
.init
.text (代码段)
.rodata (只读数据段,存储字符串,static等变量)
.data (正常初始化的变量)
.bss (未初始化的变量)

符号表信息概述

- 符号表与重定位表

- 上述表格是可重定位目标文件中不可或缺的组成部分

- 为后续的链接操作提供必要的信息支持

可以通过 readelf 工具来查阅相关数据,如以下展示的信息所示,sub 函数标记为 UND,表示其尚未被定义,由于无法确定具体地址,因此暂时将其地址设置为零,该符号表将在后续的链接过程中被使用。

复制代码
 int sub(int a, int b);

    
 int xxx = 1;
    
 int a(){
    
     sub(1,2);
    
     printf("good");
    
     return 0;
    
 }
    
  
    
 readelf -s main.o
    
     Num:    Value          Size Type    Bind   Vis      Ndx Name

全部评论 (0)

还没有任何评论哟~