[发明专利]基于VxWorks操作系统的动态内存泄漏检测方法及装置有效
申请号: | 201310428609.4 | 申请日: | 2013-09-18 |
公开(公告)号: | CN103455424A | 公开(公告)日: | 2013-12-18 |
发明(设计)人: | 陈兴林;刘川;杨天博;刘杨 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F12/02 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 岳泉清 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 基于VxWorks操作系统的动态内存泄漏检测方法及装置,涉及一种动态内存泄漏检测方法及装置。为了解决目前动态内存泄漏检测的检错效率低且速度慢的问题。它通过改写内存分配函数malloc()和内存释放函数free()得到函数LC_malloc()和函数LC_free(),以日志的形式记录分配和释放信息,实现动态内存的跟踪;通过TCP通信协议,使用数据发送缓冲队列,将日志信息从安装有VxWorks操作系统的工控机上传到上位机;在上位机中,从日志文件中读入日志事件项,并对比内存的分配和释放,从日志文件中分析并检测出内存泄露。它适用于动态内存泄漏检测。 | ||
搜索关键词: | 基于 vxworks 操作系统 动态 内存 泄漏 检测 方法 装置 | ||
【主权项】:
基于VxWorks操作系统的动态内存泄漏检测方法,它是基于安装VxWorks操作系统的工控机和上位机实现的,其特征在于,所述工控机内嵌入有工控机软件,所述工控机软件的工作过程包括如下步骤:用于调用函数LC_malloc()和函数LC_free()实现动态内存的跟踪,并以日志的形式记录各事件项的内存分配和内存释放的信息的步骤;函数LC_malloc()用于根据用户需求内存大小的参数进行内存分配,若返回一个有效的内存地址,则将动态内存分配信息输出到日志文件,若返回一个无效的内存地址,则不做任何日志操作;函数LC_free()用于对指定的内存释放,若内存释放成功,则将动态内存释放信息输出到日志文件,如果内存释放失败,则不做任何日志操作;用于将日志信息通过TCP通信协议并使用数据发送缓冲队列发送到上位机的步骤;所述上位机内嵌入有上位机软件,所述上位机软件包括如下步骤:用于从日志文件中读入日志信息,遍历日志信息中的每个日志事件项,并检查读入的每个日志事件项是否进行了内存分配操作或者内存释放操作的步骤;用于当读入的日志事件项进行了内存分配操作时,将所述日志事件项的内存地址作为键值加入哈希表的步骤;用于当读入的日志事件项进行了内存释放操作时,判断哈希表中是否存在所述日志事件项对应的内存地址的步骤;用于当哈希表中存在内存释放操作的日志事件项的内存地址时,在哈希表中删除所述日志事件项对应的内存地址的步骤;用于当哈希表中不存在内存释放操作的日志事件项的内存地址时,将所述日志事件项及相应信息加入到重复释放错误列表中的步骤;用于当检测到进行了内存分配操作的日志事件项的已分配时间达到设定的阈值且没有进行内存释放操作时,将所述日志事件项标记为内存泄漏事件项的步骤;用于当遍历完日志文件中所有日志事件项时,根据重复释放错误列表中的信息和哈希表中标记的内存泄漏事件项,定位发生内存泄漏的位置的步骤。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310428609.4/,转载请声明来源钻瓜专利网。