空指针解引用静态检测方法研究

来源 :国防科学技术大学 | 被引量 : 0次 | 上传用户:chenke
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
C语言中的指针机制使程序员可以直接访问内存地址,具有很高的灵活性。但是由于指针操作不当而引起的动态内存错误也有很多,空指针解引用就是其中的一类。这些错误的存在导致了软件质量和可靠性的下降,而且采用传统的测试方法进行检测很难奏效。静态分析方法不需要运行程序,而是通过对程序代码的分析检查程序中隐藏的错误。本文采用静态分析技术对C程序中的空指针解引用错误进行检测。我们首先基于一种流敏感、上下文敏感的指针分析算法给出了一个表达式左值的计算方法。根据这一方法,我们可以判断任意给定的两个表达式是否为别名。然后,结合上述流敏感、上下文敏感的别名分析,本文针对C程序中的空指针解引用错误给出了一种需求驱动的后向数据流分析算法。算法首先假设已知程序中的某处发生了空指针解引用错误,然后从该结点出发,逆着控制流的方向追踪空值的赋值过程,最终通过错误表达式集合是否为空来判断初始结点处是否发生了错误。我们根据这一过程构造后向的数据流分析方程,最后通过不动点计算理论计算数据流方程的解。在求解过程中,本文使用传统的worklist算法框架对不动点进行迭代计算。我们在SUIF2编译平台上实现了这一算法,并对一些C程序进行了分析,实验结果表明算法具有较高的检测精度。
其他文献
社会分工与服务质量精细化的今天,面对中国社会管理的任务与现实需求,政府社会管理从粗放到精细成为一种必然。与企业及政府其他领域的管理相比,政府社会管理有着独特的内涵,
模型驱动的决策支持系统(MD-DSS)是决策支持系统中最为重要的一种类型,其中,模型管理和MD-DSS的开发是目前国内外学者研究的重点。然而,在已有的研究中,仍然存在一些不足,MD-
本文是基于低渗透和特低渗透油田在开发中所面临的实际问题,在总结前人已有成果的基础上,对鄯善低渗透油田的渗流机理和开发技术进行了研究,完成了以下研究工作:选取渗透率分
近年来,超声速巡航导弹武器系统的快速发展,对导弹综合防御体系提出了越来越高的要求,必须建立有效的超声速巡航导弹防御系统。为检验该类系统的技术性能,配合防御作战训练,
热转印纸可以将自己喜欢的图像随意的转印到衣织物上,展现自己的个性,深受人们的喜爱。目前,市场上所需的热转印纸主要是依赖进口,而且价格较贵,难以普及,因此,早日实现国产
目前国际上公共管理研究已进入多元方法论阶段,但是中国大陆关于公共管理研究方法的探讨却存在以下问题:公共管理研究方法单一,无法回应公共管理实践领域的多样性;程序性方法
创新思维的培养是国家发展的需要,是全民科学素养提高的需要,更是课程改革的需要。在中学语文诗歌课堂教学中,如何利用意象的生成特征、构成要素来培养学生的创新思维是个非
随着城市轨道交通的快速发展,不同种类城市轨道交通线路的并行建设和运营,将在城市轨道交通网络中形成部分超长线路,把城市中心与卫星城镇紧密地连接起来。这样的超长城市轨
<正>作文的评价是作文教学过程中的重要环节,是习作指导的继续与深化。如何评价作文,将直接影响学生习作的兴趣。观摩一些特级教师的精彩课堂,收获
大气颗粒物的质量浓度是大气污染监测中的一项重要指标并且一直是国内外专家所关注的问题。由于粒径小于10μm的颗粒物能穿过咽喉部进入下呼吸道而产生对人体健康更大的危害,