[发明专利]一种内存故障检测方法及装置有效

专利信息
申请号: 201910620003.8 申请日: 2019-07-10
公开(公告)号: CN110457150B 公开(公告)日: 2023-03-21
发明(设计)人: 熊化春 申请(专利权)人: 锐捷网络股份有限公司
主分类号: G06F11/07 分类号: G06F11/07;G06F9/52
代理公司: 暂无信息 代理人: 暂无信息
地址: 350002 福建省福州市仓*** 国省代码: 福建;35
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 内存 故障 检测 方法 装置
【说明书】:

发明实施例提供一种内存故障检测方法及装置。该方法包括:预先编译内存操作函数的重构函数,获取内存操作的内存信息和申请者信息;建立内存故障检测红黑树,当有内存操作时,将计算机程序链接至内存操作函数对应的重构函数,在红黑树中增加当前内存操作对应的节点,获取当前内存操作的内存信息和申请者信息并保存;在计算机程序编译过程中,在内存访问的指令中增加检测代码,获取当前访问的内存信息;遍历红黑树节点,对比访问的内存信息和红黑树节点中保存的内存信息,根据对比结果确定是否出现内存故障并根据红黑树中保存的申请者信息确定出现内存故障的申请模块。本发明实施例能够快速定位出现故障的模块。

技术领域

本发明实施例涉及计算机技术领域,具体涉及一种内存故障检测方法及装置。

背景技术

内存改写、内存泄漏和死锁是代码开发过程中的常见问题,内存改写主要分为3种情形:内存越界、访问已释放内存和指针异常。内存泄漏是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费。死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。

目前内存故障检测工具主要为valgrind,valgrind中用于内存检测的工具为memcheck。对于内存改写,memcheck维护两个全局表valid-value和valid-address。valid-value对于整个地址空间的每一个字节,都有与之对应的8个bit,CPU的每个寄存器也有对应的bit向量,该表负责记录字节或者寄存器是否具有有效的、已经初始化的值;valid-address对于进程整个地址空间中的每一个字节,都有与之对应的1个bit负责记录该地址能否被读写。当进行内存读写操作时会从valid-value和valid-address这两个全局表取值,判断地址是否可读写或者是否初始化。对于内存泄漏,memcheck判断是否存在指向分配地址的指针,若只存在指向分配内存的指针但不是首地址则认为是可能泄漏,如果没有指针指向已分配内存则认为直接泄漏。对于多线程锁的检查则是另外一个工具helgrind,通过记录加锁、解锁的线程和位置,当发生死锁时,中断程序后则会输出占用锁的线程。

valgrind对于内存改写和内存泄漏都有比较好的支持,但工具内存损耗和性能都较为严重,当一个应用由多个模块组成时,valgrind无法进一步定位出现问题的模块。

发明内容

针对现有技术中的缺陷,本发明实施例提供了一种内存故障检测方法及装置。

第一方面,本发明实施例提供一种内存故障检测方法,包括:

预先编译内存操作函数的重构函数,所述重构函数用于获取内存操作的内存信息和申请者信息;

建立内存故障检测红黑树,在计算机程序编译过程中,当有内存操作时,将计算机程序链接至内存操作函数对应的重构函数,在所述红黑树中增加当前内存操作对应的节点,获取当前内存操作的内存信息和申请者信息,并在所述节点中保存所述内存信息和申请者信息;

在计算机程序编译过程中,在内存访问的指令中增加检测代码,所述检测代码用于获取当前访问的内存信息;

遍历红黑树节点,对比访问的内存信息和所述红黑树节点中保存的内存信息,根据对比结果确定是否出现内存故障;

若出现内存故障,则根据所述红黑树节点中保存的申请者信息确定出现内存故障的申请模块。

如上述方法,可选地,所述预先编译内存操作函数的重构函数,所述重构函数用于获取内存操作的内存信息和申请者信息,包括:

预先编译各个模块的内存分配函数的重构函数,所述重构函数用于在分配内存时多申请预设字节的隔离带以隔离不同的内存分配,并获取当前分配的内存首地址、内存大小和申请分配内存的模块信息;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于锐捷网络股份有限公司,未经锐捷网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910620003.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top