收藏本站
收藏 | 手机打开
二维码
手机客户端打开本文

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

马晓东  
【摘要】: 计算机软件在当今社会中发挥着越来越重要的作用。无论是在人们的日常生活中,还是在一些关键系统中——例如银行系统,飞行控制器和医疗系统——都大量地使用软件。软件运行的正确与否影响到人们的正常生活,软件的失效甚至会引发巨大的损失。 作为一种重要的编程语言,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条
1 郑昀;;使用UMDH和DH检查内存泄漏[J];程序员;2002年07期
2 谢宇;宁艳文;;防御C++内存泄露的闸门[J];程序员;2006年09期
3 詹荣开;MFC中内存泄漏的检测[J];电脑编程技巧与维护;2000年06期
4 查伟;;关于Java内存泄漏问题的研究[J];咸宁学院学报;2006年03期
5 代子营;毛晓光;马晓东;王瑞;;基于抽象符号表的内存模型[J];计算机工程与科学;2011年06期
6 杨继宏,龚晖,李治;Delphi内存管理与内存泄漏探析[J];现代电子技术;2003年12期
7 孙青岩,陈平;基于开放编译器的内存泄漏检测机制[J];计算机工程;2004年20期
8 周雷;陈克非;;基于符号运算的归纳变量识别与约化[J];计算机工程;2010年24期
9 奚玲;new和delete使用技巧[J];计算机时代;1999年05期
10 吕维梅,刘坚;C/C++程序安全漏洞的分类与分析[J];计算机工程与应用;2005年05期
11 俞黎敏;;JMRC:轻松解决内存泄漏难题[J];程序员;2007年06期
12 冯涛;宋成明;;清剿Java程序中的内存泄漏[J];计算机技术与发展;2006年07期
13 崔超;;基于Solaris操作系统内存资源泄漏和预防的研究[J];齐齐哈尔大学学报;2007年04期
14 陈华;;探讨JAVA的内存泄漏问题[J];科技信息;2008年33期
15 王文陵;;内存泄漏的处理与监测[J];福建信息技术教育;2005年03期
16 马安岭;陈德平;;浅谈垃圾回收机制[J];仪器仪表用户;2006年06期
17 林丽芬;;关于内存泄漏的检测与防范[J];福建教育学院学报;2007年07期
18 杨磊;汪仁煌;刘洪江;黄颖怡;;使用Visual Leak Detector检测c/c++程序内存泄漏[J];电脑与电信;2008年07期
19 张天良;;C/C++中常见内存泄漏与对策及预防措施浅析[J];科技资讯;2008年35期
20 魏远红;;Java内存管理分析[J];硅谷;2009年08期
中国重要会议论文全文数据库 前10条
1 单孝全;;形态分析与生物可给性——现状与趋势[A];第九届全国稀土分析化学学术报告会论文集[C];2001年
2 关富玲;吴明儿;翁文庆;高博青;;索结构与膜结构的形态分析[A];第三届全国结构工程学术会议论文集(下)[C];1994年
3 崔彦杰;康天放;巢静波;;牡蛎中有机锡形态分析初探[A];第五届全国环境化学大会摘要集[C];2009年
4 陈明丽;赵亚男;王建华;;固载化离子液体用于Cr(Ⅵ)的吸附及铬形态分析的研究[A];第十届中国化学会分析化学年会暨第十届全国原子光谱学术会议论文摘要集[C];2009年
5 阴永光;何滨;江桂斌;;紫外衍生在线富集毛细管电泳用于汞的形态分析[A];中国化学会第二十五届学术年会论文摘要集(下册)[C];2006年
6 苑春刚;;食品中有毒砷形态快速分析方法[A];第五届全国环境化学大会摘要集[C];2009年
7 侯贤灯;郑成斌;高英;吴鹏;;原子光谱直接形态分析新方法[A];中国化学会第27届学术年会第02分会场摘要集[C];2010年
8 冯素萍;邹晓东;朱英;张晓东;叶新强;;小清河底泥沉积物的形态分析——Tessier形态分类法[A];山东环境科学学会2002年度学术论文集[C];2003年
9 楼昕;刘振华;;浅析膜结构的发展和张拉膜结构设计[A];建设工程理论与实践(第二辑)[C];2005年
10 冯金荣;邓必阳;;CE-ICP-AES法分析大白鼠血清中Ca、Mg和Cu元素形态[A];第三届全国微全分析系统学术会议论文集[C];2005年
中国博士学位论文全文数据库 前10条
1 马晓东;C程序内存错误静态分析技术研究[D];国防科学技术大学;2009年
2 胡燕;编译过程安全性基础研究[D];中国科学技术大学;2007年
3 王磊;博弈期权定价及其应用[D];国防科学技术大学;2009年
4 陈共德;互联网精神交往形态分析[D];中国社会科学院研究生院;2002年
5 于振花;海洋环境中有机锡的形态分析及其代谢降解研究[D];中国科学院研究生院(海洋研究所);2009年
6 庞秀言;硫化合物的形态分析与硫氰酸铵合成反应历程研究[D];河北大学;2003年
7 潘丽;花鼓灯的现时调查与保护的思考[D];中国艺术研究院;2007年
8 尚社平;磁暴期间全球电离层扰动形态分析和理论研究[D];中国科学院空间科学与应用研究中心;2000年
9 康维钧;铬的原子化动力学与环境铬的生态行为研究[D];河北大学;2003年
10 吴军;生活垃圾填埋场腐殖垃圾腐殖质表征及重金属生物有效性初步研究[D];同济大学;2005年
中国硕士学位论文全文数据库 前10条
1 夏玲;火锅底料熬煮过程中镉、铅、铬、砷形态分布研究[D];西南大学;2009年
2 廖理;索膜结构形态分析及连接构造研究[D];浙江大学;2003年
3 郭春梅;维药香青兰中微量金属元素的形态分析与有效化学成分的抗氧化性研究[D];新疆大学;2005年
4 卓莉;铅锌尾矿对环境的污染行为研究[D];成都理工大学;2005年
5 朱英;东平湖重金属污染物分布特征及其存在形态的研究[D];山东大学;2005年
6 贺容利;溶剂萃取—火焰原子吸收分光光度法测定河水中的Cr(Ⅵ)与Cr(Ⅲ)[D];四川大学;2005年
7 刘冬莲;药用植物中重金属形态分析及其生境土壤重金属地球化学特征研究[D];中国地质大学(北京);2006年
8 阮静;丁香中微量元素形态及其生物活性应用研究[D];西安建筑科技大学;2006年
9 冯金荣;毛细管电泳等离子体光谱法的建立及其应用研究[D];广西师范大学;2006年
10 唐增煦;树脂分离—氢化物发生—原子荧光光谱法测定食品中不同形态砷[D];首都师范大学;2007年
中国重要报纸全文数据库 前10条
1 ;关于建立高校毕业生就业见习制度的通知[N];中国人事报;2006年
2 本报记者  潘继红;亚航展有望成为全球最大民用航空工业展会[N];国际商报;2007年
3 任征 文伟;国防电子展搭建贸易良好平台[N];中国贸易报;2006年
4 蒙志军;加快创新步伐 提供科技支撑[N];湖南日报;2007年
5 证券时报记者 李坤李沫;江苏三友参与北斗系统产品研发[N];证券时报;2007年
6 廖文根;779个项目荣获国防科技奖[N];人民日报;2007年
7 本报记者 刘立红;点亮和谐家园的明灯[N];中国老年报;2009年
8 记者 郑黎;省政府与国防科工委共建长春理工大学[N];长春日报;2006年
9 本报记者 李亦金曹卫新;江苏三友支持北斗卫星系统项目[N];证券日报;2007年
10 本报记者 王握文;问题的支点作用有多大[N];解放军报;2009年
中国知网广告投放
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62982499
  • 010-62783978