[发明专利]内存块有效性检测方法有效
申请号: | 201210199999.8 | 申请日: | 2012-06-18 |
公开(公告)号: | CN102789407A | 公开(公告)日: | 2012-11-21 |
发明(设计)人: | 车任秋;罗德贵;周琳 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F11/22 | 分类号: | G06F11/22;G06F12/02 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 201600 上海市松江*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 有效性 检测 方法 | ||
1.一种内存块有效性检测方法,其特征在于:所述内存块有效性检测方法包括如下步骤:
step1:获取内存管理系统中内存池的起始地址及结束地址,从而确定内存管理系统的范围;
step2:检索内存管理系统中的空闲内存块AVL树,收集所有空闲内存块的信息,以数组形式存储,并按照内存块地址进行由低到高排序;
step3:判断是否存在空闲块,如果是存在空闲块,执行step4,如果不存在空闲块,则检测完成;
step4:检测当前空闲块的有效性:
step4.1:如果不能通过有效性检测,则作为坏块,提示该坏块的位置以及其详细信息,再获取下一个空闲块并重复step3,即,重复判断是否还存在空闲块,如果还存在空闲块,重复检测该空闲块的有效性;如果不存在空闲块,则检测完成;
step4.2:如果能通过有效性检测,则检测下一个内存块的有效性,如果能通过有效性检测,则执行step5,如果不能通过有效性检测,则作为坏块,提示该坏块的位置以及其详细信息,再获取下一个空闲块并重复step3;
step5:判断再下一个内存块是否为空闲块,如果是空闲块,重复step4;如果不是空闲块,则判断是否为最后一个分配块,如果是最后一个分配块,则检测完成,如果不是最后一个分配块,则执行step6;
step6:检测该分配块的有效性,如果该分配块能通过有效性检测,则重复step5;如果该分配块不能通过有效性检测,则作为坏块,提示该坏块的位置以及其详细信息,再获取下一个空闲块并重复step3。
2.根据权利要求1所述的内存块有效性检测方法,其特征在于:自第一个空闲块开始,依序向后检测各个空闲块的有效性。
3.根据权利要求1所述的内存块有效性检测方法,其特征在于:检测内存块的有效性的方法是:检测内存块地址是否对齐,如果不对齐,则该内存块为坏块,如果对齐,则该内存块有效。
4.根据权利要求1所述的内存块有效性检测方法,其特征在于:检测内存块的有效性的方法是:检测内存块地址是否超过内存系统的管理范围,如果超出,则该内存块为坏块,如果不超出,则该内存块有效。
5.根据权利要求1所述的内存块有效性检测方法,其特征在于:检测内存块的有效性的方法是:检测内存块的大小是否对齐(什么大小?空气大小、与谁对齐?),如果对齐,则该内存块为坏块,如果不对齐,则该内存块有效。
6.根据权利要求1所述的内存块有效性检测方法,其特征在于:检测内存块的有效性的方法是:检测内存块的大小是否超出内存系统管理的范围,如果超出,则该内存块为坏块,如果不超出,则该内存块有效。
7.根据权利要求1所述的内存块有效性检测方法,其特征在于:检测内存块的有效性的方法是:检测内存块的前后块地址是否超出内存系统管理的范围,如果超出,则该内存块为坏块,如果不超出,则该内存块有效。
8.根据权利要求2-7中任意一项所述的内存块有效性检测方法,其特征在于:执行step4.2时,在检测下一个内存块的有效性之前,检查该下一个内存块是否连续,若不连续,则说明该下一个内存块的头部信息被破坏,则为坏块,提示该坏块的位置以及其详细信息,不再进行有效性检测;如果连续,再继续进行有效性检测。
9.根据权利要求8所述的内存块有效性检测方法,其特征在于:执行step6时,检测该分配块的有效性之前,检查该分配块是否连续,若不连续,则说明该分配块的头部信息被破坏,则为坏块,提示该坏块的位置以及其详细信息,不再进行有效性检测;如果连续,再继续进行有效性检测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210199999.8/1.html,转载请声明来源钻瓜专利网。