1、什么是符号表?
2、何为符号解析和符号重定位?

在链接中,将函数和变量统称为符号。函数名或变量名称为符号名

链接过程中很关键的一部分就是符号的管理,每一个目标文件都会有一个相应的符号表,这个表里记录了目标文件中所用到的所有符号。

每一个定义的符号有一个对应的值,叫做符号值。对于函数和变量来说,符号值就是它们的地址。

符号表中所有的分类
    1.定义在本目标文件的全局符号,可以被其他目标文件引用。
    2.在本目标文件中引用的全局符号,却没有定义在本目标文件,这一般叫做外部符号。这里就是引用外部符号。
    3.段名,这种符号由编译器产生,它的值就是其段的起始地址。如目标文件里的.text、.data 段。
    4.局部符号,只在编译单元内部可见。局部符号对于链接过程是没有作用的。
    5.行号信息,即目标文件指令与源代码中代码行的对应关系。

对于链接过程来说,只关注全局符号的相互“粘合”,其它的符号都是次要

符号值(st_value)的几种情况
    1.在目标文件中,如果是符号的定义并且该符号不是在COMMON块类型的,则st_value表示该符号在段中的偏移。
    2.在目标文件中,如果符号时COMMON块类型的,则st_value表示该符号的对齐属性。
    3.在可执行文

什么是符号表、符号解析、符号重定位?相关推荐

  1. 程序链接之符号解析和重定位

    一.空间与地址分配 链接器在连接过程中的工作就是把多个输入的目标文件加工合并成一个输出文件.有几种不同的方案: 按序叠加 按序叠加可以说是最简单的一个方案,就是将输入的目标文件按照次序叠加起来. 从图 ...

  2. 第七章家庭作业——符号解析,重定位绝对引用,重定位相对引用

    题一:符号解析 考察可重定位目标文件各个节的内容,本质分类,那就分类: 节 内容 .text 已编译程序的机器代码,函数 .data 已初始化的全局 C 变量,包括已初始化的extend,带stati ...

  3. 符号表--什么是符号表

    符号表 在计算机科学中,符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构.在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型.作用域以及内存地址. 散列表 ...

  4. Android-腾讯bugly符号表管理,上传so符号表、mapping符号表

    Android-腾讯bugly符号表管理,上传so符号表.mapping符号表 mac端运行记录 准备参数 在腾讯bugly官网下载符号表管理工具 使用符号表管理工具上传 注意事项: 更多其他页面-自 ...

  5. “找不到符号”或“无法解析符号”错误是什么意思?

    本文翻译自:What does a "Cannot find symbol" or "Cannot resolve symbol" error mean? Pl ...

  6. 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc)

    系列汇总 写一个PE的壳_Part 1:加载PE文件到内存 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc) 写一个PE的壳_Part 3:Section里实 ...

  7. 杂货边角(7):C++继承和多态的符号表角度解析

    面向对象设计核心的思想便是抽象.封装.继承.多态和接口.继承机制是面向对象设计过程中动态性和模块性的来源,而多态性则是很多功能灵活性的来源. 0. C++继承机制 面向对象设计核心是抽象的思维,但是& ...

  8. bugly android z自动上传符号表失败,Bugly 符号表上传错误分析+解决办法

    最近发现了Bugly的符号表没有上传,追踪了下发现在Debug和Release模式都可以上传符号表,但一打包(Archive)就不会上传符号表 command+9查看下日志 查看日志 发现接口返回报错 ...

  9. android bugly 符号表,Bugly的符号表工具使用总结-iOS

    首先先说下bugly的崩溃统计是实时的,即你的app前脚崩溃,bugly后脚就会给你统计到,但是在统计崩溃信息的时候有的时候可能只给你记录了一个简单的崩溃信息,并不能详细的告诉你哪个类的哪个方法的哪行 ...

  10. Windows PE 重定位表编程(枚举重定位地址)

    原理之前单独总结过,在这里: http://blog.csdn.net/u013761036/article/details/54051347 下面是枚举重定位信息的代码: // ReLocation ...

最新文章

  1. Windows安全软件长臂管辖的折中方案?
  2. 《明解C语言》pdf
  3. 笔记本电脑键盘切换_全球首款折叠屏笔记本电脑ThinkPad X1 Fold:5G高速互联拥抱PC场景融合时代...
  4. php数组地址,怎么实现javascript数组与php数组的地址传递
  5. Linux磁盘管理——df、du、磁盘分区、格式化、挂载、LVM
  6. java转net容易吗_每日一醒(1):学习Java容易忽视的小错误,你注意到了吗?
  7. 尝鲜!.NET5实操之docker+k8s,这10个坑,你不得不知!
  8. 人工智能TensorFlow工作笔记009---认识TensorFlow中的会话
  9. Varnish的vcl子程序
  10. 基于opencv的摄像头脸部识别抓取及格式储存(python)
  11. c语言专业面试问题,c语言面试问题(共3篇).doc
  12. 遗传算法的基本原理和matlab实现
  13. 邮箱大师与微软Acompli功能评测
  14. 51单片机非阻塞串口中断收发数据
  15. 激活剂、天梯与火石:从ASC 19解读产学结合的关键密码
  16. Cocoa是什么???
  17. 缓存穿透、击穿、雪崩
  18. 达威尔CHERRY樱桃轴 铝合金有线背光电竞吃鸡游戏机械键盘
  19. 315晚会实在涨知识
  20. 国产操作系统逐步强大,Linux操作系统成为主流

热门文章

  1. DCDC80V降压24V、12V、5V、3.3V/2A电流降压转换器
  2. C语言之生肖、年龄、星座查询
  3. 几行代码,一个逼真的圣诞树,圣诞快乐
  4. MDC/MDIO通信时序图
  5. OOA、OOD、OOP 代表什么
  6. Windows+Qt5.3.1+VS2013安装教程
  7. java基于ssm美食论坛系统发帖子系统美食论坛网站美食分享论坛源码
  8. d3d程序调试方法——一个简单的d3d程序
  9. celeron处理器_【微软】第39期分享:微软公布Win10 v2004正式版支持处理器!
  10. 纪念下我的第一款游戏——《剑盾勇者》