[发明专利]内存越界检测方法、装置、电子设备及存储介质在审
申请号: | 202011585569.0 | 申请日: | 2020-12-28 |
公开(公告)号: | CN114691469A | 公开(公告)日: | 2022-07-01 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 熊永强 |
地址: | 201306 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 越界 检测 方法 装置 电子设备 存储 介质 | ||
1.一种内存越界检测方法,其特征在于,所述方法包括:
获取目标张量的地址;
根据所述目标张量的地址,在所述已分配的内存块中获取对应的目标内存块,其中,所述目标内存块中包含检测字段;
基于所述检测字段,判断所述目标内存块的检测字段是否被覆写;
若所述检测字段被覆写,则所述目标张量存在内存越界问题;
否则,所述目标张量不存在内存越界问题。
2.根据权利要求1所述的方法,其特征在于,所述已分配的内存块与张量的地址存在映射关系;
所述根据所述目标张量的地址,在所述已分配的内存块中获取对应的目标内存块,包括:
根据所述映射关系,从所述已分配的内存块中获取所述目标张量的地址对应的所述目标内存块。
3.根据权利要求1或2所述的方法,其特征在于,在根据所述目标张量的地址,在所述已分配的内存块中获取对应的目标内存块之前,所述方法还包括:
判断所述目标张量的地址是否存在于所述已分配内存中;
若所述目标张量的地址未存在于所述已分配内存块中,上报所述目标张量的地址为非法地址。
4.根据权利要求3所述的方法,其特征在于,申请所述目标内存块具体包括:
判断第一内存申请释放管理器是否开启所述内存越界检测器;
若所述第一内存申请释放管理器开启所述内存越界检测器,将第一空闲内存块划分成所述目标内存块和第二空闲内存块;
在所述目标内存块和所述第二空闲内存块添加所述检测字段,并保存所述目标内存块的调用栈信息;
将所述目标内存块放入所述已分配内存块中。
5.根据权利要求4所述的方法,其特征在于,释放所述目标内存块具体包括:
判断所述第一内存申请释放管理器是否开启所述内存越界检测器;
若所述第一内存申请释放管理器开启所述内存越界检测器,根据所述目标张量的地址从所述已分配内存块中查找对应的所述目标内存块;
检测所述目标内存块中的检测字段;
在所述目标内存块中的检测字段被覆写时,将所述目标内存块与第一内存块进行合并,所述第一内存块为所述第二空闲内存块中链表指针为空的内存块。
6.根据权利要求4或5所述的方法,其特征在于,所述目标内存块中的检测字段被覆写,所述方法还包括:
上报所述目标内存块出现所述内存越界问题,并打印所述目标内存块的调用栈信息。
7.根据权利要求6所述的方法,其特征在于,在所述获取目标张量的地址之前,所述方法还包括:
将目标环境变量的值设置为第一值,所述目标环境变量用于指示是否开启所述内存越界检测器。
8.一种内存越界检测装置,其特征在于,所述装置包括:
处理器,用于获取目标张量的地址;获取目标张量的地址;
内存越界检测器,用于根据所述目标张量的地址,在所述已分配的内存块中获取对应的目标内存块,其中,所述目标内存块中包含检测字段;基于所述检测字段,判断所述目标内存块的检测字段是否被覆写;若所述检测字段被覆写,所述目标张量存在内存越界问题;否则,所述目标张量不存在内存越界问题。
9.一种芯片,其特征在于,所述芯片用于执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储用于数据交换的计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
11.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行如权利要求1-7中任意一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011585569.0/1.html,转载请声明来源钻瓜专利网。