ELF 动态链接 so的动态符号表(.dynsym)
静态链接中有一个专门的段叫符号表 -- “.symtab”(Symbol Table), 里面保存了所有关于该目标文件的符号的定义和引用。
动态链接中同样有一个段叫 动态符号表 -- “.dynsym”(Dynamic Symbol) , 但.dynsym 相对于 .symtab 只保存了与动态链接相关的导入导出符号。
so中同样有.symtab,其中保存着所有的符号
.symtab 和 .dynsym 都有相对应的辅助表
比如 :
.symtab -> .strtab(String Table)符号字符串表
.dynsym -> .dynstr(Dynamic String Table)动态符号字符串表
在模块加载时,加载器收集每个加载进来的模块的动态符号表,组成全局的动态符号表,只有当依赖这个模块的其他模块发起重定位时,可以查询这个表来获取确定的地址。