[发明专利]一种内存故障检测方法及装置有效
申请号: | 201910620003.8 | 申请日: | 2019-07-10 |
公开(公告)号: | CN110457150B | 公开(公告)日: | 2023-03-21 |
发明(设计)人: | 熊化春 | 申请(专利权)人: | 锐捷网络股份有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F9/52 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 350002 福建省福州市仓*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 故障 检测 方法 装置 | ||
1.一种内存故障检测方法,其特征在于,包括:
预先编译内存操作函数的重构函数,所述重构函数用于获取内存操作的内存信息和申请者信息;
建立内存故障检测红黑树,在计算机程序编译过程中,当有内存操作时,将计算机程序链接至内存操作函数对应的重构函数,在所述红黑树中增加当前内存操作对应的节点,获取当前内存操作的内存信息和申请者信息,并在所述节点中保存所述内存信息和申请者信息;
在计算机程序编译过程中,在内存访问的指令中增加检测代码,所述检测代码用于获取当前访问的内存信息;
遍历红黑树节点,对比访问的内存信息和所述红黑树节点中保存的内存信息,根据对比结果确定是否出现内存故障;
若出现内存故障,则根据所述红黑树节点中保存的申请者信息确定出现内存故障的申请模块;
其中,所述预先编译内存操作函数的重构函数,所述重构函数用于获取内存操作的内存信息和申请者信息,包括:
预先分别编译线程操作函数的重构函数和锁操作函数的重构函数,所述线程操作函数的重构函数用于获取线程信息和线程标识,所述锁操作函数的重构函数用于获取锁信息和锁标识;
相应地,所述建立内存故障检测红黑树,在计算机程序编译过程中,当有内存操作时,将计算机程序链接至内存操作函数对应的重构函数,在所述红黑树中增加当前内存操作对应的节点,获取当前内存操作的内存信息和申请者信息,并在所述节点中保存所述内存信息和申请者信息,包括:
建立死锁检测红黑树,在计算机程序编译过程中,当建立线程时,将计算机程序链接至所述线程操作函数的重构函数,在所述红黑树中增加当前建立线程对应的节点,获取当前线程,并在所述节点中保存所述线程信息和当前线程的线程标识;
在计算机程序编译过程中,当有加锁操作时,将计算机程序链接至所述锁操作函数的重构函数,在所述死锁检测红黑树中所述锁操作所在线程对应的节点中增加子节点,获取当前锁信息,并在所述子节点中按获取顺序依次保存所述锁信息和对应的锁标识,并标记锁状态为持有状态;
当有解锁操作时,在所述红黑树中对应的线程中查找与解锁操作对应的子节点,清除所述与解锁操作对应的子节点中锁信息的持有状态。
2.根据权利要求1所述的方法,其特征在于,所述预先编译内存操作函数的重构函数,所述重构函数用于获取内存操作的内存信息和申请者信息,包括:
预先编译各个模块的内存分配函数的重构函数,所述重构函数用于在分配内存时多申请预设字节的隔离带以隔离不同的内存分配,并获取当前分配的内存首地址、内存大小和申请分配内存的模块信息;
相应地,所述建立内存故障检测红黑树,在计算机程序编译过程中,当有内存操作时,将计算机程序链接至内存操作函数对应的重构函数,在所述红黑树中增加当前内存操作对应的节点,获取当前内存操作的内存信息和申请者信息,并在所述节点中保存所述内存信息和申请者信息,包括:
建立内存改写检测红黑树,在计算机程序编译过程中,当有内存分配时,将计算机程序链接至内存分配函数对应的重构函数,在所述内存改写检测红黑树中增加当前内存分配对应的节点,获取当前内存分配的内存首地址、内存大小和申请分配内存的模块信息,并在所述节点中保存所述内存首地址、内存大小和申请分配内存的模块信息。
3.根据权利要求2所述的方法,其特征在于,所述遍历红黑树节点,对比访问的内存信息和所述红黑树节点中保存的内存信息,根据对比结果确定是否出现内存故障,包括:
遍历所述内存改写检测红黑树节点,对比访问的内存信息和所述内存改写检测红黑树节点中保存的内存首地址、内存大小;
若所述访问的内存信息不在所述内存改写检测红黑树节点记载的内存信息中,则确定内存故障为访问未知内存;
若所述访问的内存信息中只有部分内存信息在所述内存改写检测红黑树节点记载的内存信息中,则确定内存故障为内存越界。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于锐捷网络股份有限公司,未经锐捷网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910620003.8/1.html,转载请声明来源钻瓜专利网。