[发明专利]一种检测内存泄漏的方法及系统无效
申请号: | 201110252335.9 | 申请日: | 2011-08-30 |
公开(公告)号: | CN102279797A | 公开(公告)日: | 2011-12-14 |
发明(设计)人: | 吴昊 | 申请(专利权)人: | 深圳宝德科技集团股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 深圳市顺天达专利商标代理有限公司 44217 | 代理人: | 易钊 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 检测 内存 泄漏 方法 系统 | ||
技术领域
本发明涉及内存检测技术,尤其涉及一种检测内存泄漏的方法及系统。
背景技术
内存测试需要测试软件中的内存越界访问、内存资源泄漏情况。内存越界主要包括数组越界读写、“野指针操作”和堆栈溢出等。内存资源泄漏情况则包含较多的种类,如分配的内存没有释放、打开的文件没有关闭、socket没有关闭、Windows窗口句柄没有关闭等。内存越界和内存资源泄漏是普遍存在的严重问题,可以说如果解决了内存越界和内存资源泄漏问题,软件中的Bug就消除了一大半以上。
针对内存测试的特点和待测试的内容,当前内存测试的主要手段包括以下几种:静态检查,即使用静态检查工具或代码评审检视等手段来发现问题;动态检查,即通过使用内存动态检查工具在软件运行时进行检查;手工测试,自行编写内存测试代码进行白盒测试和黑盒测试,设计专门的用例来检查可能存在的资源泄漏和内存越界等问题;使用内存监测工具进行监测,如Windows系统使用任务管理器来监测程序的内存使用情况、句柄等资源使用情况等。看是否存在资源泄漏等情况;通过路径分析方法来提高内存测试的质量,分析可能出现的操作路径,对这些操作路径反复测试,可以利用动态检查方法进行测试;编写极端情况下的测试用例来模拟内存资源的最大消耗情况,看程序消耗的内存等资源是否会超越系统所能承受的极限。
使用上述测试手段的任何一种时都存在某种程度的缺陷,例如:静态检查可以检查内存中的堆栈溢出等比较浅显的问题,对复杂的内存使用情况无能为力;动态检查,鉴于测试用例对程序执行路径的覆盖很难做到完全,此时很难完全检查内存越界或内存泄漏。
发明内容
本发明要解决的技术问题在于针对现有技术中检测内存泄漏的方法单一,没有形成一套完善的检测内存泄漏的方法的缺陷,提供一种较完善的检测内存泄漏的方法及系统。
本发明解决其技术问题所采用的技术方案是:
提供一种检测内存泄漏的方法,包括以下步骤:
S1、读取内存基本信息;
S2、判断所读取的内存基本信息是否正确;
S3、在所述内存基本信息正确时,根据所读取的内存基本信息,通过代码走读的方式来判断内存占用量是否持续增长;
S4、在所述内存占用量持续增长时,获取内存分配和释放的函数调用数据;
S5、根据所述函数调用数据获知每一块内存的生命周期,定位内存泄漏。
本发明所述的检测内存泄漏的方法中,步骤S1具体包括:
S11、在开机时,读取POST界面和BIOS下的内存容量;
S12、在dos下利用光盘版Memtest运行测试50次以上,读取内存容量和频率;
S13、在RED Hat 5.4和Suse10系统中读取内存容量;
S14、在linux系统下运行STRESS 48小时以上,并读取内存基本信息;
S15、在Windows系统中读取内存容量;
S16、运行everest ultimate软件读取内存各种信息,包括内存容量、存取类型、存取速度和频率;
S17、反复运行压力测试工具24小时以上,读取所述内存基本信息。
本发明所述的检测内存泄漏的方法中,在所述内存基本信息正确时,还包括步骤:
读取内存带宽、延时和缓存信息进行性能测试,并在所读取的内存带宽、延时和缓存信息均正确无误时,再判断内存的大小是否持续增长。
本发明所述的检测内存泄漏的方法中,在步骤S1之前还包括步骤:
S0、对内存进行物理兼容性测试,以检测内存结构是否完整无损以及内存是否正确安装。
本发明解决其技术问题所采用的另一技术方案是:
提供一种检测内存泄漏的系统,包括:
内存信息读取模块,用于读取内存基本信息;
第一判断模块,用于判断所述内存信息读取模块所读取的内存基本信息是否正确;
第二判断模块,用于在所述第一判断模块的判断结果为所述内存基本信息正确时,根据所述内存信息读取模块所读取的内存基本信息,通过代码走读的方式来判断内存占用量是否持续增长;
函数调用数据获取模块,用于在所述第二判断模块的判断结果为所述内存占用量持续增长时,获取内存分配和释放的函数调用数据;
内存泄漏定位模块,用于根据所述函数调用数据获取模块获取的所述函数调用数据获知每一块内存的生命周期,定位内存泄漏。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳宝德科技集团股份有限公司,未经深圳宝德科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110252335.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于低量燃料喷射的控制系统和方法
- 下一篇:高效低破碎玉米果穗剥皮装置