
编译链接
-
原创
如何实现语义分析中的类型检查
之前曾写过一篇语义分析的概念性介绍:https://daichen.blog.csdn.net/article/details/100097850。最近,终于开发完了一套基于SQL的语义分析器,算是对之前学习到的理论的一次工程实践。本文只是点出一下实践时的一些关键点和经验,具体细节还请看这里的设计文档:https://github.com/opendistro-for-elasticsearch/...2019-10-12 13:47:13 阅读数 85 评论数 0 -
原创
六星经典CSAPP-笔记(7)加载与链接(上)
六星经典CSAPP-笔记(7)加载与链接1.对象文件(Object File)1.1 文件类型对象文件有三种形式: 可重定位对象文件(Relocatable object file):包含二进制代码和数据,能与其他可重定位对象文件在编译时合并创建出一个可执行文件。 可执行对象文件(Executable object file):包含可以直接拷贝进行内存执行的二进制代码和数据。 共享对象文件(Sh2015-05-22 22:15:46 阅读数 5360 评论数 2 -
原创
程序员的自我修养:(1)目标文件
程序员的自我修养:(1)目标文件1.目标文件1.1 编译与链接在使用像Visual Studio或Qt Creator等IDE时,通常有一个叫做“构建”的按钮。当编辑完成要运行和测试时点一下它,程序就能跑起来了,所以我们很少关心编译和链接。其实,编译和链接合并在一起就称为 构建(Build)。简单的一次按键,实际背后却是异常复杂的过程: 预编译(Preprocessing) 编译(Compilati2015-06-05 21:59:02 阅读数 6157 评论数 2 -
原创
CSAPP缓冲区溢出攻击实验(下)
CSAPP缓冲区溢出实验(下)3.3 Level 2: 爆竹实验要求这一个Level的难度陡然提升,我们要让getbuf()返回到bang()而非test(),并且在执行bang()之前将global_value的值修改为cookie。因为全局变量与代码不在一个段中,所以我们不能让缓冲区一直溢出到.bss段(因为global_value初始化为0,所以它会被放在.bss而非.data段以节省空间)覆2015-06-12 21:16:32 阅读数 8209 评论数 5