C程序内存错误静态分析技术研究

来源 :国防科学技术大学 | 被引量 : 0次 | 上传用户:y51211
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
计算机软件在当今社会中发挥着越来越重要的作用。无论是在人们的日常生活中,还是在一些关键系统中——例如银行系统,飞行控制器和医疗系统——都大量地使用软件。软件运行的正确与否影响到人们的正常生活,软件的失效甚至会引发巨大的损失。作为一种重要的编程语言,C语言至今仍被大量应用于开发各种系统软件与应用软件。同其它一些语言一样,C显式地支持指针操作以及动态内存的处理,这大大地提高了语言的表达能力。但是,使用带指针的语言编程是一项容易出错的工作,有可能产生大量的内存错误。又因为有些这样的错误不易重现,难以查找诱发错误的原因,所以内存错误通常很难检测。静态检查(static checking)技术是检测软件错误的一种重要技术。它通过直接分析源代码来发现程序中的错误,而不需要实际运行。由于其具有覆盖率较高、能够在早期发现错误和易于使用的优点,因而被大量地应用于软件查错中。本文主要研究如何利用静态检查技术来查找C程序中的内存错误,并在SUIF2编译平台下实现了相应的算法。形态分析(shape analysis)是分析带有指针和动态内存分配程序之内存特性的一种重要技术,它通过静态检查技术来获取程序所分配的堆中的数据结构信息,其结果有助于对程序的理解和验证。本文提出了一种新的形态分析技术,能够处理C语言中复杂的表达式,支持对于结构域和栈变量的取址操作。从一个表达式出发,我们定义了它的抽象赋值路径(Abstract Evaluation Path, AEP),抽象赋值路径被用来对抽象形态图(Abstract Shape Graph, ASG)进行精化,从而定义语句的语义。形态分析的结果可以用来决定程序的“形态不变量”、检测内存泄漏错误、获取别名信息以及程序中内存结构的形态等。内存泄漏是C程序中一种常见的错误,它有可能耗尽系统内存,从而导致程序崩溃。基于C程序的一种流敏感、上下文敏感的指针分析方法,本文提出了一个需求驱动(demand-driven)的内存泄漏检测算法。该算法首先假设程序中的某一语句引发了内存泄漏,由此假设出发,可以得到一些初始信息,然后进行后向分析,来判断这个假设是否成立。通过指针分析,可以得到指向图(points-to graph),基于这样的指向图,计算出数据流事实(data flow fact),从而判断是否有内存泄漏发生。另一类重要的内存错误是空指针解引用(null pointer dereference)错误。访问空指针是危险的操作,有可能产生不可预见的错误,导致程序崩溃。本文提出了一种检测空指针解引用错误的算法,它利用了必然别名(must alias)和可能别名(may alias)信息来提高检测算法的精度。从一个不精确的流不敏感、上下文不敏感指针分析算法出发,我们计算出赋值语句所产生的必然别名信息。使用必然别名信息,可以提高可能别名的精度,还能够在赋值语句处更新更多的表达式,降低空指针解引用检测算法的误报率。SUIF2是一个研发编译技术的平台,支持C、C++、Fortran和Java等语言。C程序代码被编译成SUIF(Stanford University Intermediate Format)格式。它提供了模块化的环境,可以容易地开发能相互交互的遍(pass)。在SUIF2平台下,我们实现了本文中的算法,分别开发了C程序的形态分析工具,内存泄漏检测工具以及空指针解引用检测工具,并取得了预期的实验结果。
其他文献
<正>当前中学生物教育正从应试教育向素质教育转化,有不少学生轻视生物学习,甚至把生物课看成是负担,作为一位初中的生物教师,对生物教学中出现的这种问题,有担忧也有困惑,但
针对传统的大学英语阅读课教材和上课方式存在的问题,笔者提议运用主题单元教学法来上大学英语阅读课。该方法是以整体语言教学法为理论基础,鼓励教师立足教材,超出教材,围绕
计算机网络为教育教学带来了教学内容和方式的巨大变革,关于计算机网络技术在教育中的应用研究也正如火如荼地的进行着。文章分析了当前教育形式存在的弊病,分析了计算机网络
区域物流业发展规划是区域物流业发展的指导性文件,合理的区域物流规划有利于物流资源的大范围内整合,促进区域经济协调发展,为区域物流市场主体的培育提供条件,改善区域经济
青钱柳是我国特有的天然资源 ,目前国内学者对青钱柳的化学成分和药理作用等方面研究较多。在总结前人研究成果的基础上 ,结合当前的发展趋势 ,提出了在青钱柳人工林资源培育
随着国家西部建设战略规划的实施,“西电东送”使水电开发又迎来了一个新的高峰。尽管如此,水电工程施工企业之间的竞争呈现出愈演愈烈的趋势。国有水电建筑施工企业,必须坚
大学生活中有着充足的课余时间,然而,并非每位大学生都能处理好学习、生活、社会活动中的矛盾,合理地安排课余时间。为此,我们对这一问题进行认真调查研究,在调查数据分析的
长期以来,我国风景名胜区发展所面临的还不仅仅是基础设施薄弱、人员素质不高、资金投入不足的困难,更大的困难是管理体制不顺、经营机制不活的现实,这实质上就是风景名胜区
随着高校信息化建设的不断深入,校园网不断延伸和拓展。一方面,学校教学、科研和管理等工作对校园网的依赖程度不断增加,另一方面,校园网的自身复杂程度也不断增加。传统的高
自20世纪90年代以来,我国由大豆的出口国,变为最大的大豆进口国,进口大豆对我国大豆产业造成巨大的冲击,国内大豆产业面临严峻挑战。本文分析国内外大豆产业现状,运用"显性"