[发明专利]路径敏感检测方法和装置有效
申请号: | 201410064881.3 | 申请日: | 2014-02-25 |
公开(公告)号: | CN104866417B | 公开(公告)日: | 2018-01-02 |
发明(设计)人: | 衷璐洁;霍玮;李丰;张兆庆 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 路径 敏感 检测 方法 装置 | ||
1.一种路径敏感检测方法,其特征在于,包括:
根据值流错误类型为变量设置初始的与错误相关的属性;
沿着定值引用链传播所述初始的与错误相关的属性,所述定值引用链为所有可能流经定值点的引用点所组成的集合;
在潜在错误语句处识别所述变量的与错误相关的属性;
根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述潜在错误语句为可能错误语句,所述可能错误语句表示所述变量的定值语句经由部分路径到达会导致错误的引用语句;
根据所述可能错误语句获得路径敏感检测的语句输入集;
根据所述路径敏感检测的语句输入集进行路径敏感检测;
所述根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述潜在错误语句为可能错误语句,包括:
根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述变量的与错误相关的属性是否为不安全的属性;
若所述变量的与错误相关的属性为不安全的属性,则通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句,所述控制节点为所述潜在错误语句相对于所述变量的定值语句的控制流图上的控制节点;
若存在检查语句,则查找是否存在特殊控制流;
若不存在特殊控制流,则将下一个控制节点作为当前控制节点,并执行所述通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句的步骤;
在检查过的所有控制节点中都不存在检查语句和特殊控制流的情况下,确定所述潜在错误语句为可能错误语句。
2.根据权利要求1所述的方法,其特征在于,还包括:
若不存在检查语句,则将下一个控制节点作为当前控制节点,并执行所述通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句的步骤。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
若存在特殊控制流,则确定所述潜在错误语句为一定不错语句。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述可能错误语句获得路径敏感检测的语句输入集,包括:
对所述可能错误语句进行程序切片,以获得与所述可能错误语句相关的语句集合,并将所述与所述可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
5.根据权利要求4所述的方法,其特征在于,所述对所述可能错误语句进行程序切片,以获得与可能错误语句相关的语句集合,包括:
对所述可能错误语句进行后向切片,以获得语句集合SBT;
对所述变量的定值语句进行前向切片,以获得语句集合SFS;
计算所述SBT与所述SFS的交集STS,并对所述变量的定值语句进行后向切片,以获得对所述变量的定值语句进行后向切片的结果;
计算获得的对所述变量的定值语句进行后向切片的结果与所述STS的并集,并将所述对所述变量的定值语句进行后向切片的结果与所述STS的并集作为与所述可能错误语句相关的语句集合,并将所述与所述可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410064881.3/1.html,转载请声明来源钻瓜专利网。