[发明专利]内存泄露检测方法、装置、计算机设备和存储介质在审
申请号: | 202111455500.0 | 申请日: | 2021-12-01 |
公开(公告)号: | CN114238086A | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 颜天佑;蔡蒂;谢剑翔;王遂 | 申请(专利权)人: | 广东电网有限责任公司广州供电局 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 华进联合专利商标代理有限公司 44224 | 代理人: | 唐敏 |
地址: | 510665 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 泄露 检测 方法 装置 计算机 设备 存储 介质 | ||
1.一种内存泄露检测方法,其特征在于,所述方法包括:
获取与内存操作对应的待检测代码;
生成与所述待检测代码对应的控制流图,并根据所述控制流图确定出节点路径;
依据代码指令与哈希表操作的对应关系,依次对所述节点路径中的各节点的代码指令执行对应的哈希表操作,并更新哈希表状态;
根据执行完成的所述节点路径对应的哈希表状态,确定所述待检测代码中是否存在内存泄露。
2.根据权利要求1所述的方法,其特征在于,所述依据代码指令与哈希表操作的对应关系,依次对所述节点路径中的各节点的代码指令执行对应的哈希表操作,并更新哈希表状态,包括:
将所述控制流图中的各所述节点路径输入至中间模型;
利用所述中间模型解析各所述节点,并将各所述节点按照所述控制流图的形式转存至所述中间模型中;
通过所述中间模型依次调用所述节点路径中的各所述节点,依据所述代码指令与所述哈希表操作的对应关系,对各所述节点的所述代码指令执行对应的哈希表操作,并更新所述哈希表状态。
3.根据权利要求2所述的方法,其特征在于,所述通过所述中间模型依次调用所述节点路径中的各所述节点,依据所述代码指令与所述哈希表操作的对应关系,对各所述节点的所述代码指令执行对应的哈希表操作,并更新所述哈希表状态,包括:
通过所述中间模型依次调用所述节点路径中的各所述节点;
依据所述代码指令与所述哈希表操作的对应关系,确定出所述节点的代码指令对应的哈希表操作;
根据所述哈希表操作以及指针与内存块的映射关系,更新所述哈希表状态。
4.根据权利要求1所述的方法,其特征在于,所述生成与所述待检测代码对应的控制流图,并根据所述控制流图确定出节点路径,包括:
根据所述待检测代码中的流程关系确定节点和控制流线,并根据所述节点和所述控制流线确定出所述控制流图;
利用所述控制流图中起始节点和结束节点之间的节点和控制流线,确定出所述节点路径。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述控制流图中的每个所述节点中的信息包括节点号、所述节点对应的代码指令所在行数、所述节点对应的代码指令的内容以及所述节点的后继节点的节点号。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述哈希表状态的异常数据和所述哈希表操作确定出异常操作语句;
根据所述异常操作语句确定出所述待检测代码中存在内存泄露的代码指令位置。
7.一种内存泄露检测装置,其特征在于,所述装置包括:
获取模块,用于获取与内存操作对应的待检测代码;
确定模块,用于生成与所述待检测代码对应的控制流图,并根据所述控制流图确定出节点路径;
操作模块,用于依据代码指令与哈希表操作的对应关系,依次对所述节点路径中的各节点的代码指令执行对应的哈希表操作,并更新哈希表状态;
检测模块,用于根据执行完成的所述节点路径对应的哈希表状态,确定所述待检测代码中是否存在内存泄露。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东电网有限责任公司广州供电局,未经广东电网有限责任公司广州供电局许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111455500.0/1.html,转载请声明来源钻瓜专利网。