日期:2014-05-16  浏览次数:20660 次

windows程序员进阶系列:《软件调试》之六--编译器的调试支持

                                编译器的调试支持

 

编译器用于将高级语言翻译成cpu可以识别的机器代码。经历了几十年的发展,编译器发生了很大的变化,但是支持调试这一点没有任何改变。检查并报告被编译软件中的错误是编译器设计的一个主要目标。编译器在编译源代码和链接目标代码时,会做很多的检查工作。这包括编译期检查和运行期检查。

 

编译期检查:编译器在编译过程中,会检查代码中的语法错误,与此同时还会检查可能存在的逻辑错误和设计缺陷,并以编译错误或警告的方式报告出来。

 

运行期检查:为了帮助程序在运行阶段发现问题,编译器在编译时会加入检查功能,包括内存检查和栈检查。后面将会对编译期检查和运行期检查做详细介绍。本文将介绍编译期检查。

 

软件是程序和文档的集合。源程序在经过编译期被编译成等价汇编语言模块,然后经过汇编器产生出与目标平台cpu一致的机器码模块,最后经过链接器解决机器码模块中的名称和地址引用,产生出符合目标平台上操作系统所要求格式的可执行模块。

 

以目标代码为界,可以把程序的构建过程分为翻译和链接两个阶段。

 

链接器