符号表、链接器与地址

符号表将标识符和其类型、位置关联起来,当我们去处理变量,函数的声明时,就是将这些信息组织(绑定)起来,放在表里,当需
要知道这些函数,变量的意义时,就去这个表里查。
 
  • 重定位。链接器把每个符号定义与一个虚拟地址联系起来,然后修改所有对这些符号的引用,使得它们指向这个存储位置,从而重定位这些节。

一般来讲,符号表有内存地址和函数/变量的对应关系,编译时节点的各种属性(类型,作用域,分配空间大小,(函数)的参数类型)等。对符号表的具体使用方法每个编译器都不同。

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

原文地址:https://www.cnblogs.com/feng9exe/p/7885666.html