[发明专利]一种空指针崩溃的挖掘方法及装置有效
申请号: | 201410664753.2 | 申请日: | 2014-11-19 |
公开(公告)号: | CN105607990B | 公开(公告)日: | 2019-07-05 |
发明(设计)人: | 董杰 | 申请(专利权)人: | 腾讯科技(成都)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 610041 四川省成都市高*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 指针 崩溃 挖掘 方法 装置 | ||
1.一种空指针崩溃的挖掘方法,其特征在于,包括:
获取全量代码文件内返回空指针的函数;
获取待挖掘的代码中使用了所述空指针的变量作为危险变量;
使用所述危险变量进行前向搜索,若搜索得到使用了所述危险变量的代码行,并且所述代码行未进行判空保护,则确定所述代码行为产生空指针崩溃的代码行;
其中,所述获取全量代码文件内返回空指针的函数;包括:
获取全量代码文件内各函数中返回值为空的函数名;
将构造空指针的危险函数库模型,所述危险函数库模型的键值为:返回值为空的函数名以及返回值类型;
其中,所述获取待挖掘的代码中使用了所述空指针的变量作为危险变量;包括:
获取所述待挖掘的代码中符合所述危险函数库模型的键值,并且使用了所述危险函数库模型中的函数赋值的变量,作为危险变量。
2.根据权利要求1所述方法,其特征在于,在使用所述危险变量进行前向搜索之前还包括:
确定所述危险变量是否为注释型代码行,若不是,则使用所述危险变量进行前向搜索。
3.根据权利要求1所述方法,其特征在于,所述方法还包括:
获取所述返回值类型为空的函数名所在代码的文件路径,以及从函数名开始到返回值为空的代码段,并记录到所述危险函数库模型。
4.根据权利要求1所述方法,其特征在于,在确定所述代码行为产生空指针崩溃的代码行之后,所述方法还包括:
产生空指针崩溃的代码行为危险代码行,获取所述危险变量到所述危险代码行之间的代码,以及,所述返回值类型为空的函数名所在代码的文件路径。
5.根据权利要求4所述方法,其特征在于,在获取所述危险变量到所述危险代码行之间的代码,以及,所述返回值类型为空的函数名所在代码的文件路径之后,所述方法还包括:
输出告警信息,并输出所述危险变量到所述危险代码行之间的代码,以及,所述返回值类型为空的函数名所在代码的文件路径。
6.一种空指针崩溃的挖掘装置,其特征在于,包括:
函数获取单元,用于获取全量代码文件内返回空指针的函数;
变量获取单元,用于获取待挖掘的代码中使用了所述空指针的变量作为危险变量;
代码搜索单元,用于使用所述危险变量进行前向搜索;
危险确定单元,用于若搜索得到使用了所述危险变量的代码行,并且所述代码行未进行判空保护,则确定所述代码行为产生空指针崩溃的代码行;
其中,所述函数获取单元,用于获取全量代码文件内各函数中返回值类型为空的函数名;将构造空指针的危险函数库模型,所述危险函数库模型的键值为:返回值为空的函数名以及返回值类型;
其中,所述变量获取单元,用于获取所述待挖掘的代码中符合所述危险函数库模型的键值,并且使用了所述危险函数库模型中的函数赋值的变量,作为危险变量。
7.根据权利要求6所述挖掘装置,其特征在于,
所述代码搜索单元,还用于在使用所述危险变量进行前向搜索之前,确定所述危险变量是否为注释型代码行,若不是,则使用所述危险变量进行前向搜索。
8.根据权利要求6所述挖掘装置,其特征在于,
所述函数获取单元,还用于获取所述返回值类型为空的函数名所在代码的文件路径,以及从函数名开始到返回值为空的代码段,并记录到所述危险函数库模型。
9.根据权利要求6所述挖掘装置,其特征在于,所述挖掘装置还包括:
信息获取单元,用于在确定所述代码行为产生空指针崩溃的代码行之后,产生空指针崩溃的代码行为危险代码行,获取所述危险变量到所述危险代码行之间的代码,以及,所述返回值类型为空的函数名所在代码的文件路径。
10.根据权利要求9所述挖掘装置,其特征在于,所述挖掘装置还包括:
告警输出单元,用于输出告警信息,并输出所述危险变量到所述危险代码行之间的代码,以及,所述返回值类型为空的函数名所在代码的文件路径。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(成都)有限公司,未经腾讯科技(成都)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410664753.2/1.html,转载请声明来源钻瓜专利网。