08 2018 档案

摘要:4.1.2 符号解析与重定位 (1)重定位 在完成空间和地址的分配步骤之后,链接器就进入了符号解析和重定位的步骤,这是静态链接的核心部分。 先看看 a.o 的反汇编文件: objdump -d a.o: 程序代码里面都是使用的虚地址,main 起始地址为 0 ,这是因为在未进行空间分配之前,目标文件 阅读全文
posted @ 2018-08-22 21:54 游戏进行中 阅读(1190) 评论(0) 推荐(0) 编辑
摘要:三、汇编 编译过程就是生成汇编代码的过程,在编译过程中,也会调用汇编器 as,将源代码生成汇编代码。比如,执行 gcc -S hello.c -o hello.s 此时已经生成了汇编代码。 汇编的过程就是将 hello.s 生成目标文件。 汇编器是将汇编代码转变成机器可以执行的指令,每一个汇编语句几 阅读全文
posted @ 2018-08-22 21:52 游戏进行中 阅读(1773) 评论(0) 推荐(0) 编辑
摘要:2.2 语法分析 语法分析器(Grammar Parser)将对由扫描器产生的记号进行语法分析,从而产生语法树(Syntax Tree)。整个分析过程采用了上下文无关语法(Context-free Grammar)的分析手段。 由语法分析器生成的语法树就是以表达式(Expression)为节点的树。 阅读全文
posted @ 2018-08-17 14:31 游戏进行中 阅读(2336) 评论(0) 推荐(0) 编辑
摘要:二、编译 引用文档:https://blog.csdn.net/chdhust/article/details/9040647 编译过程就是把预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后生成相应的汇编代码文件,这个过程是整个程序构建的核心部分,也是最复杂的部分之一。 现在版本的 GC 阅读全文
posted @ 2018-08-17 12:01 游戏进行中 阅读(2515) 评论(0) 推荐(0) 编辑
摘要:Gcc的编译流程分为了四个步骤: 预处理,生成预编译文件(.文件):gcc –E hello.c –o hello.i 编译,生成汇编代码(.s文件):gcc –S hello.i –o hello.s 汇编,生成目标文件(.o文件):gcc –c hello.s –o hello.o 链接,生成可 阅读全文
posted @ 2018-08-16 22:51 游戏进行中 阅读(5166) 评论(0) 推荐(0) 编辑
摘要:4.5 String Table:字符串表 字符串表节区包含以 NULL( ASCII 码 0) 结尾的字符序列, 通常称为字符串。 ELF 目标文件通常使用字符串来表示符号和节区名称。 对字符串的引用通常以字符串在字符串表中的下标给出。 一般, 第一个字节(索引为 0)定义为一个空字符串。类似的, 阅读全文
posted @ 2018-08-16 22:01 游戏进行中 阅读(1461) 评论(0) 推荐(0) 编辑
摘要:四、 ELF 文件格式分析 ELF文件(目标文件)格式主要四种: 可重定向文件: 文件保存着代码和适当的数据,用来和其他的目标文件一起来创建一个可执行文件或者是一个共享目标文件。(目标文件或者静态库文件,即linux通常后缀为 .a 和 .o 的文件) 可执行文件: 文件保存着一个用来执行的程序。( 阅读全文
posted @ 2018-08-16 21:56 游戏进行中 阅读(3102) 评论(0) 推荐(0) 编辑
摘要:二、ELF 文件介绍 2.1 可执行文件格式综述 相对于其它文件类型,可执行文件可能是一个操作系统中最重要的文件类型,因为它们是完成操作的真正执行者。可执行文件的大小、运行速度、资源占用情况以及可扩展性、可移植性等与文件格式的定义和文件加载过程紧密相关。研究可执行文件的格式对编写高性能程序和一些黑客 阅读全文
posted @ 2018-08-16 21:49 游戏进行中 阅读(1967) 评论(0) 推荐(0) 编辑
摘要:一、目标文件 在 UNIX® 和 Linux® 中,任何事物都是文件。UNIX 和 Linux 编程实际上是编写处理各种文件的代码。系统由许多类型的文件组成,但目标文件具有一种特殊的设计,提供了灵活和多样的用途。 目标文件是包含带有附加地址和值的助记符号的路线图。这些符号可以用来对各种代码段和数据段 阅读全文
posted @ 2018-08-14 22:19 游戏进行中 阅读(2890) 评论(0) 推荐(0) 编辑
摘要:1.3.18 readelf:elf 文件格式分析工具 这个工具和 objdump 命令提供的功能类似,但是它显示的信息更为具体,并且它不依赖 BFD 库( BFD 库是一个 GNU 项目,它的目标就是希望通过一种统一的接口来处理不同的目标文件); ELF 文件类型 ELF(Executable a 阅读全文
posted @ 2018-08-13 22:03 游戏进行中 阅读(3335) 评论(0) 推荐(0) 编辑
摘要:1.3.13 nlmconv nlmconv 将可重定位的对象文件(Infile)转换为 NetWare 可加载模块(outfile),并可选择读取头文件信息获取 NLM 头信息。 选项,描述 -I bfdname --input-target=bfdname 指定源文件得格式为 bfdname - 阅读全文
posted @ 2018-08-13 21:59 游戏进行中 阅读(2601) 评论(0) 推荐(0) 编辑
摘要:1.3.7 gprof:性能分析工具 参考文档:https://www.cnblogs.com/andashu/p/6378000.html gprof是GNU profile工具,可以运行于linux、AIX、Sun等操作系统进行C、C++、Pascal、Fortran程序的性能分析,用于程序的性 阅读全文
posted @ 2018-08-13 21:52 游戏进行中 阅读(6738) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示