[发明专利]内存泄漏的监测方法有效
| 申请号: | 201510736283.0 | 申请日: | 2015-11-03 |
| 公开(公告)号: | CN105260314B | 公开(公告)日: | 2018-06-29 |
| 发明(设计)人: | 刘华敏 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 杭州千克知识产权代理有限公司 33246 | 代理人: | 周希良 |
| 地址: | 201616 *** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 内存泄漏 内存 数据结构体 管理链表 释放 监测 内存分配 路由器内存 报警信号 基本信息 内存领域 遍历 分配 记录 泄漏 应用 | ||
本发明涉及内存领域,尤其涉及一种内存泄漏的监测方法。一种内存泄漏的监测方法,应用于在路由器内存发生泄漏时报警,所述监测方法包括:对内存进行分配,在管理链表中用数据结构体记录内存分配的基本信息;释放内存,遍历所述管理链表,寻找所述内存对应的数据结构体;判断释放内存的地址与所述数据结构体记录的内存分配BUF地址是否相同;若相同则释放所述管理链表,释放分配的内存,若不同,则判断出现内存泄漏,发出报警信号。
技术领域
本发明涉及内存领域,尤其涉及一种内存泄漏的监测方法。
背景技术
内存泄露是软件开发中十分常见并且十分常见的错误跟踪起来相当困难。内存泄露引发的段错误轻则使软件功能失效,重则使设备CPU0等重启现象,所以快速的检测和快速的定位内存溢出的机制就十分重要。另外对于无屏的嵌入式设备(如路由器,交换机等)需要一种对于内存溢出错误的告警机制,因为这些设备没有屏幕显示错误,只有当调试人员连接串口、telnet查看、web页面登入客户端的时候才能看到设备的信息。现有的内存泄露检测方案只描述了如何检测内存泄露出现断错误或者设备重启时才去发现内存泄露,这样定位问题就比较慢,需要长时间拷机复现问题所在,效率比较低下,现有的简单检测方案在嵌入式设备上并不能达到定位问题。
发明内容
针对现有技术中存在的问题,本发明能够在无屏的路由器嵌入式设备上能快速的检测定位内存溢出问题,并且将问题进行记录,方便开发人员的调试。
本发明采用如下技术方案:
一种内存泄漏的监测方法,应用于在路由器内存发生泄漏时报警,所述监测方法包括:
对内存进行分配,在管理链表中用数据结构体记录内存分配的基本信息;
释放内存,遍历所述管理链表,寻找所述内存对应的数据结构体;
判断释放内存的地址与所述数据结构体记录的内存分配BUF地址是否相同;
若相同则释放所述管理链表,释放分配的内存,若不同,则判断出现内存泄漏,发出报警信号。
优选的,所述基本信息包括:链表和/或分配BUF时赋予的地址和/或分配内存的数量和/或分配内存的次数和/或分配内存的函数入口和需要追溯的堆栈的地址。
优选的,所述方法还包括:
创建内存泄漏链表,保存内存泄漏的所述数据结构体于所述内存泄露链表中;
记录和保存内存泄漏的管理信息。
优选的,所述方法还包括:
创建调用进程,所述调用进程接收控制命令,调用读取记录所述基本信息的接口;
将所述管理链表中的数据结构体输出至串口上。
优选的,所述方法还包括:
创建调用进程,所述调用进程接收控制命令,所述调用进程根据所述控制命令同一删除所述管理链表的节点,并且清理内存泄漏链表。
优选的,所述方法中:
提供一相对于所述内存泄漏链表的上层应用,所述上层应用调用所述内存泄漏链表的最大阈值,当内存泄漏超过所述最大阈值,则向所述上层应用报警。
优选的,所述方法还包括:
所述最大阈值为变量,当分配内存时,叠加所述最大阈值,释放内存时,递减所述最大阈值。
优选的,所述方法还包括:
所述内存泄漏链表设有上限,当记录所述内存泄漏的管理信息时,将所述管理信息插入所述内存泄漏链表的链表头。
优选的,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510736283.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种存储虚拟化数据处理方法以及装置
- 下一篇:一种日志记录方法、装置及系统





