《编译系统-自底向上研究方法》 归档 - 弦外之音

好消息:《SRS原理》一书荣获官方推荐,访问地址:https://srs.xianwaizhiyin.net

GDB 断点的时候,如何找到对应的源码文件路径,待写。 由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 Loken1,QQ...

发布 0 条评论

前面已经把 可运行文件格式 ELF,链接器 ld ,汇编器 gas 简单介绍了一下,终于到了要讲 编译器的章节。实际上在 整个编译系统里面,编译器是最重要的,开发难度也是最高的。链接器,汇编器做的都是一些简单的工作。 我们通常 会...

发布 0 条评论

Linux 环境的的汇编器是 gas,也叫做 as,实际上 汇编器 as 的调试环境搭建,跟之前的 链接器的调试环境搭建非常类似的,因为 as 跟 ld 的代码都在 binutils 项目里面。阅读本文需要参考之前的 《编译系统-自底向上研究方法》用clion...

发布 0 条评论

之前的文章 《编译系统-自底向上研究方法》ELF符号段,《编译系统-自底向上研究方法》链接器分析, 已经讲解了 可运行文件格式 ELF 以及 链接器的一些主要的作用。 无论是 操作系统运行 可执行文件,还是 链接器 把多个 .o 目标文...

发布 0 条评论

源码下载地址:百度网盘,提取码:cat1 。 之前的文章已经讲解了如何在 clion 里面调试 ld 链接器,本文不打算讲 链接器的源码逻辑,因为我也没看,我也不会,本文主要讲 链接器 主要做了什么事情。 第一件事,修正地址。我们...

发布 0 条评论

源码下载地址:百度网盘,提取码:cat1 。 通过前面的文章分析,读者应该已经对 可执行文件 ELF 的格式有一定了解,本文主要讲解,链接器 ld 是如何把 main.o 跟 sum.o 链接在一起的。 先执行以下命令,编译出来 main.o 跟 sum...

发布 0 条评论

源码下载地址:百度网盘,提取码:cat1 。 通过前面的文章《编译系统-自底向上研究方法》ELF符号段 ,基本已经知道了 符号表的 作用,就是能找到 变量,或者函数的位置。还是用 main 项目来分析,项目里面有个 sum.c 文件,里面有...

发布 0 条评论

源码下载地址:百度网盘,提取码:cat1 。 本文来讲解 ELF 里面的 符号段 symtab,也可以叫 符号表,因为相对于 段表 来说,symtab 他是一个段。但是对于 各个符号项 来说,symtab 他是一个表。所以把他叫成 是段 或者是表都可以...

发布 0 条评论

《编译系统-自底向上研究方法》ELF头部 ,之前这篇文章讲解了 ELF 的头部,头部有几个段表的字段,当时没有仔细讲解。 1,e_shoff ,段表的指针,也就是段表在 main 文件的偏移值。 2,e_shensize,段表中单个段的大小。 3...

发布 0 条评论

接着上篇文章分析,main.c ,sum.c,main 3个文件,下载地址:百度网盘,提取码:cat1 。用 xelfviewer 打开 文件 main ,如下图: 上图我圈出来几个重点,上面的 Offset 是指这个字段在 main 文件的位置,例如 0x12 ~ 0x14 ...

发布 0 条评论