[发明专利]一种动态内存泄漏检测方法及系统有效

专利信息
申请号: 201710272171.3 申请日: 2017-04-24
公开(公告)号: CN107066390B 公开(公告)日: 2020-01-17
发明(设计)人: 刘小燕;陈献庆;张春峰;韩啸;闫振宇;杨坤;郭亚楠;张玉龙;王利业;张荣良;李新玲;纪元;宋彦峰;朱建斌 申请(专利权)人: 许继集团有限公司;许继电气股份有限公司;许昌许继软件技术有限公司;国家电网公司
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 41119 郑州睿信知识产权代理有限公司 代理人: 陈浩
地址: 461000 河*** 国省代码: 河南;41
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 代理服务 工具端 内存泄漏检测 内存信息 消息队列 监视 进程 动态链接库 操作行为 地址空间 电力系统 定位内存 动态内存 监视模块 进程空间 内存监视 内存泄漏 实时监视 统一管理 泄漏检测 远程控制 在线监测 中断目标 动态的 读写 放入 内存 场景 诊断 记录 损害
【说明书】:

发明涉及一种动态内存泄漏检测方法及系统,工具端动态的把“动态链接库”中的内存监视模块挂接到被监视进程的地址空间中,从而让被监视进程自身具有内存泄漏检测功能,监视模块记录内存的操作行为,并将这些消息放入到消息队列中,发送给代理服务端,代理服务端将消息队列中的内存信息进行统一管理,发送给工具端。本发明可以在不中断目标进程的情况下实时监视进程空间中内存泄漏情况,实现了真正的在线监测,能够通过工具端来远程控制内存泄漏检测,并以代理服务端无损害的读写被监视进程内存信息,对定位内存错误、诊断问题最有非常实用的价值,适用于Linux系统C/C++程序、电力系统程序等不同场景。

技术领域

本发明属于计算机技术领域,具体涉及一种动态内存泄漏检测方法及系统。

背景技术

在用C/C++语言开发程序时,常常使用动态内存分配技术。动态内存使用系统的堆空间,从而有效地利用了系统的内存资源。程序员在运行的时候用malloc、realloc、calloc或new申请任意多少的内存,然而,动态内存必须依赖程序员自己去调用内存释放函数free或delete显式的释放。由于程序员的疏忽,程序中非常容易出现内存泄漏的问题。

内存泄漏,是用动态存储分配函数动态开辟的空间,在使用完毕后未释放,导致一直占据该内存单元的现象。

在电力继电保护领域,由于后台监控服务和保护装置程序日益复杂,内存泄漏错误时常发生,短时间少量的内存泄漏容易被忽视。但由于继电保护产品系统庞大性和运行周期长期性的特性,少量的内存泄漏积累到一定的程度有可能导致继电保护产品死机甚至系统崩溃,这样将导致变电站无法正常运行从而导致巨大的经济损失。而且,使用常规的调试手段很难远程实时定位正在运行大型系统的内存泄漏出现的具体位置。

《信息技术》2007年第9期中出版的《一种Linux下动态内存泄漏检测技术的实现》中介绍了一种基于动态代码插装技术的内存泄漏检测器的实现方法,程序整体框架由三部分组成:内存检测模块、注射器和报告进程。内存检测模块实现使用跟踪和泄漏检测;注射器对目标进程进行动态代码插装,并在内存泄漏发生时刻向报告进程发送消息;报告进程用于产生最终报告。该方法只能在本地进行检测,并且使用的ptrace读写内存方式是会影响系统性能的方式,可扩展性不强,无法通过工具端来远程控制内存泄漏检测,并以代理服务端无损害的读写被监视进程内存信息。

发明内容

本发明的目的在于提供一种动态内存泄漏检测方法及系统,用以解决现有技术中无法无损地对内存泄漏情况进行检测的问题。

为解决上述技术问题,本发明的技术方案为:

本发明的一种动态内存泄漏检测方法,包括如下步骤:

1)工具端启动内存监视系统,向系统中的代理服务端发送读写内存命令;

2)被监视进程调用接口动态库中的三个接口函数来接入系统,实现代理服务端通过共享内存和消息队列与被监视进程交互;所述三个接口函数为:注册接口函数、启动服务接口函数和注销接口函数;

3)工具端将动态链接库中的内存监视模块挂接到被监视进程地址空间中,获取被监视进程的内存操作信息。

进一步的,工具端通过修改被监视进程的PLT过程连接表的内存管理条目,将动态链接库中的内存监视模块插入被监视进程,将被监视进程的内存管理函数替换为所述内存监视模块的内存管理函数,执行所述内存监视模块的内存管理函数,获取被监视进程的内存操作信息;所述内存监视模块的内存管理函数包括内存分配函数和内存释放函数。

进一步的,工具端通过UDP协议与代理服务端交互。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于许继集团有限公司;许继电气股份有限公司;许昌许继软件技术有限公司;国家电网公司,未经许继集团有限公司;许继电气股份有限公司;许昌许继软件技术有限公司;国家电网公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710272171.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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