[发明专利]一种内存错误检测方法有效
申请号: | 201410366790.5 | 申请日: | 2014-07-29 |
公开(公告)号: | CN104133733B | 公开(公告)日: | 2017-03-29 |
发明(设计)人: | 康一梅;张浩中 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京科迪生专利代理有限责任公司11251 | 代理人: | 成金玉,李新华 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 错误 检测 方法 | ||
1.一种内存错误检测方法,应用于对嵌入式系统的实时性能测试,其特征在于:所述方法包括以下步骤:
(1)对应用程序进行静态分析,完成对所述应用程序的内存错误特征建模;
(2)运行所述应用程序,利用所述内存错误特征模型,创建并动态维护所述应用程序的合法地址库;
(3)在所述应用程序运行完毕或被异常终止运行之前,所述应用程序每次访问内存前均先计算即将访问的地址范围,并与合法地址库中的记录相匹配;若无法匹配上,则说明将发生内存错误,记录下相关错误信息;
(4)在所述应用程序运行完毕或被异常终止运行后检查合法地址库中是否存在由内存分配函数创建的记录;若存在,说明发生了内存泄露错误,记录下相关错误信息。
2.根据权利要求1所述的方法,其特征在于:所述步骤(1)中对所述应用程序的内存错误特征建模指的是将所述应用程序中所有可能出现内存错误的语句和位置信息进行识别,并构建内存错误特征模型。所述内存错误特征模型包括所述应用程序中的数组、指针、不安全字符串操作函数、内存分配与释放函数等关键错误节点的声明、引用或调用语句所在的位置信息和引用或调用信息。
3.根据权利要求1所述的方法,其特征在于:所述步骤(2)中,所述合法地址库指的是包含了所述应用程序在运行时当前即时有效的所有内存地址空间的仓库,仓库中的每条记录对应所述应用程序中的一个对象,所述对象指的是所述应用程序在内存中可单独存在的语法个体,即所述应用程序的一个变量或函数。
4.根据权利要求1所述的方法,其特征在于:所述步骤(2)中,动态维护所述应用程的规则是:所述应用程序刚开始运行时,就根据内存错误特征模型初始化合法地址库,创建用于合法地址库记录的数据容器;随着所述应用程序的不断运行,变量的声明、变量被赋值、函数调用以及内存的申请和释放都需要不断增加、修改、删除合法地址库中的记录;其中,变量声明或新申请成功内存时,需要在合法地址库中创建一条新的记录;变量被赋值时,需要修改合法地址库中关联记录的合法地址范围;变量或函数脱离作用域或释放成功内存时,需要删除合法地址库中关联记录。
5.根据权利要求1所述的方法,其特征在于:所述步骤(3)中,所述应用程序每次访问内存前均先计算即将访问的地址范围,若计算出的地址范围与所述应用程序中发起访问的语法对象在所述合法地址库中关联记录中的地方范围不是包含与被包含的关系,则说明当次访问将出现内存错误,此时只需根据前述两个地址范围的实际包含关系和所述语法对象的类型、操作类型来判断可能会出现的内存错误类型及其他相关信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410366790.5/1.html,转载请声明来源钻瓜专利网。