符号表、链接器与地址
符号表将标识符和其类型、位置关联起来,当我们去处理变量,函数的声明时,就是将这些信息组织(绑定)起来,放在表里,当需
要知道这些函数,变量的意义时,就去这个表里查。
- 重定位。链接器把每个符号定义与一个虚拟地址联系起来,然后修改所有对这些符号的引用,使得它们指向这个存储位置,从而重定位这些节。
一般来讲,符号表有内存地址和函数/变量的对应关系,编译时节点的各种属性(类型,作用域,分配空间大小,(函数)的参数类型)等。对符号表的具体使用方法每个编译器都不同。
0000000100134d18 - 01 0000 FUN +[CCResponseHandle checkRequestController]
0000000100134d18 t +[CCResponseHandle checkRequestController]
000000010013470c t +[CCResponseHandle handleResponse:]
000000010013470c - 01 0000 FUN +[CCResponseHandle handleResponse:]
0000000000000000 - 00 0000 GSYM _OBJC_IVAR_$_CCBaseReqApi._retCode
00000001005f87f0 s _OBJC_IVAR_$_CCBaseReqApi._retCode
0000000000000000 - 00 0000 GSYM _OBJC_IVAR_$_CCBaseReqApi._retMessage
00000001005f87f4 s _OBJC_IVAR_$_CCBaseReqApi._retMessage
我思故我在