[发明专利]内存溢出处理方法、装置、电子设备和存储介质在审
申请号: | 202110341250.1 | 申请日: | 2021-03-30 |
公开(公告)号: | CN112965851A | 公开(公告)日: | 2021-06-15 |
发明(设计)人: | 路小霞;丁方伟;封侣 | 申请(专利权)人: | 建信金融科技有限责任公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F11/36 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 200120 上海市浦东新区中国(*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 溢出 处理 方法 装置 电子设备 存储 介质 | ||
1.一种内存溢出处理方法,其特征在于,包括:
获取待检测系统的源码文件,并对所述源码文件进行解析得到语法树结构;
基于预先设置的内存溢出检测规则对所述语法树结构进行检测,得到存在内存溢出风险的目标树节点;
对所述目标树节点进行修复,得到对源码文件进行内存溢出处理后的目标文件。
2.根据权利要求1所述的方法,其特征在于,对所述源码文件进行解析得到语法树结构,包括:
基于PSI对所述源码文件进行解析,得到第一语法树结构;
基于PMD对所述源码文件进行解析,得到第二语法树结构。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据内存溢出风险的共性特征,抽取内存溢出风险对应的代码特征;
对所述代码特征进行分类,并根据分类结果确定内存溢出检测规则。
4.根据权利要求3所述的方法,其特征在于,其中,分类结果包括访问对象分类结果,
相应的,根据分类结果确定内存溢出检测规则,包括:
根据访问对象分类结果设置不同的访问接口,通过所述访问接口实现内存溢出检测规则的具体实现。
5.根据权利要求4所述的方法,其特征在于,所述访问对象分类结果包括:类对象、方法调用表达式对象、新定义变量表达式对象和赋值表达式对象。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述代码特征为每条内存溢出检测规则设置关联的修复方案。
7.根据权利要求6所述的方法,其特征在于,对所述目标树节点进行修复,包括:
确定检测所述目标树节点关联的目标内存溢出检测规则,并确定与所述目标内存溢出检测规则关联的目标修复方案;
根据所述目标修复方案对所述目标树节点进行修复。
8.根据权利要求7所述的方法,其特征在于,所述目标修复方案包括根据所述目标树节点的特征,在所述语法树结构中添加或修改所述目标树节点的子节点。
9.根据权利要求1所述的方法,其特征在于,每条内存溢出检测规则对应一个检测实现类;
相应的,基于预先设置的内存溢出检测规则对所述语法树结构进行检测,得到存在内存溢出风险的目标树节点,包括:
确定目标内存溢出检测规则对应的目标检测实现类;
将所述语法树结构以接口参数的形式传入所述目标检测实现类中,由所述目标检测实现类对所述语法树结构中的树节点进行检测,得到目标树节点。
10.根据权利要求9所述的方法,其特征在于,确定目标内存溢出检测规则对应的目标检测实现类,包括:
若所述目标内存溢出检测规则为类对象检测规则,则调用类对象检测实现类对所述语法树中的类对象树节点进行检测;
若所述目标内存溢出检测规则为方法对象检测规则,则调用方法对象检测实现类对所述语法树中的方法对象树节点进行检测;
若所述目标内存溢出检测规则为新定义变量对象检测规则,则调用新定义变量对象检测实现类对所述语法树中的新定义变量对象树节点进行检测;
若所述目标内存溢出检测规则为赋值表达式对象检测规则,则调用赋值表达式对象检测实现类对所述语法树中的赋值表达式对象树节点进行检测。
11.根据权利要求9所述的方法,其特征在于,由所述目标检测实现类对所述语法树结构中的树节点进行检测,包括:
通过所述目标检测实现类确定检测对象树节点,并根据检测对象确定同类型的上下文节点信息,
根据所述检测对象树节点和所述上下文节点信息对所述检测对象树节点进行检测。
12.根据权利要求1所述的方法,其特征在于,所述内存溢出检测规则中至少包括如下一项:规则描述信息、错误提示信息以及规则显示级别信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于建信金融科技有限责任公司,未经建信金融科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110341250.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种在线教育课堂优化方法
- 下一篇:用于斜拉索检测机器人上的平衡夹紧避震装置