[发明专利]基于静态分析的冗余代码缺陷检测方法无效
申请号: | 201110216640.2 | 申请日: | 2011-07-29 |
公开(公告)号: | CN102231134A | 公开(公告)日: | 2011-11-02 |
发明(设计)人: | 苏小红;马培军;王甜甜;龚丹丹;逄龙 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 牟永林 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 基于静态分析的冗余代码缺陷检测方法,涉及基于静态分析的冗余代码缺陷检测方法,为了解决目前缺少成熟的对冗余代码及相关缺陷检测的方法的问题,它包括:步骤1、输入待测试程序,将其解析为抽象语法树;步骤2、分析可能包含显式幂等操作的语句,检测显式幂等操作;步骤3、对局部定义的变量,采用过程内部分析方法,检测冗余的赋值语句;步骤4、遍历程序的抽象语法树,在标准化后的程序依赖图的基础上查找包含缺陷的结构,检测死代码;步骤5、检测冗余的条件表达式;步骤6、检测隐式幂等操作;步骤7、检测冗余的函数参数;根据步骤2至7获得的六种缺陷的检测结果,给出缺陷检测报告。本发明适用于大规模程序代码的分析。 | ||
搜索关键词: | 基于 静态 分析 冗余 代码 缺陷 检测 方法 | ||
【主权项】:
基于静态分析的冗余代码缺陷检测方法,其特征是它包括的具体步骤如下:步骤1:输入待测试程序,将其解析为抽象语法树;步骤2:分析可能包含显式幂等操作的语句,检测显式幂等操作:遍历程序的抽象语法树,对可能包含幂等操作的特定类型的抽象语法树子树进行处理,判断是否存在缺陷;步骤3:对局部定义的变量,采用过程内部分析方法,检测冗余的赋值语句:在抽象语法树的基础上,跟踪每一个被赋值的变量,如果在函数结束之前或重新被赋值之前没有被使用,则判为缺陷;步骤4:遍历程序的抽象语法树,对每一个函数子树创建对应的程序依赖图PDG,并将程序依赖图PDG进行选择结构、循环结构的标准化,在标准化后的程序依赖图PDG的基础上查找包含缺陷的结构,检测死代码;步骤5:在抽象语法树的基础上,分析程序的每条路径,计算赋值表达式和条件表达式的值,检测冗余的条件表达式:遍历程序的抽象语法树,跟踪抽象语法树中的赋值语句、条件分支中的谓词集合、以及条件语句中的变量值的界限,来检测分支语句中冗余——总是真或总是假的条件表达式;步骤6:对程序的路径进行分析,检测隐式幂等操作:遍历程序的抽象语法树,分析程序的每条路径,跟踪抽象语法树中的赋值语句,根据赋值语句维护一个等价类集合,该集合记录值相等的变量;当具有相同值的变量之间互相赋值时,则判为存在隐式幂等缺陷;步骤7:对每个函数的参数,采用过程内部分析方法,检测冗余的函数参数:在抽象语法树的基础上,采用过程内部分析方法,跟踪每一个函数参数,如果在函数结束之前或重新被赋值之前没有被使用,则判为存在冗余的函数参数缺陷;根据步骤2至7获得的六种缺陷的检测结果,给出缺陷检测报告。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110216640.2/,转载请声明来源钻瓜专利网。