[发明专利]基于静态分析的冗余代码缺陷检测方法无效

专利信息
申请号: 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/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top