[发明专利]内存越界的检测方法和相关设备在审
申请号: | 202210082302.2 | 申请日: | 2022-01-24 |
公开(公告)号: | CN114490377A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 陈星宇;金庆瑜;王洪炼 | 申请(专利权)人: | 重庆奥普泰通信技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 李哲;臧建明 |
地址: | 401120 重庆市渝北*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 越界 检测 方法 相关 设备 | ||
本发明提供一种内存越界的检测方法和相关设备,该方法包括:获取待检测的内存的地址,并将所述地址存储至指针数组;在检测到功能对应的第一函数被执行时,读取所述地址的第一地址值;在所述第一函数执行完毕后,读取所述地址的第二地址值;在所述第一地址值与所述第二地址值不同时,确定所述第一函数的执行导致所述内存出现越界。本发明中,通过设置指针数组监控内存的地址的地址值,若是功能的第一函数执行完毕且地址的地址值发生变化,则可定位到函数的执行导致内存越界,无需通过搭建复杂调试环境的调试工具进行内存越界的定位,内存越界的检测成本较低。
技术领域
本发明涉及内存管理技术领域,尤其涉及一种内存越界的检测方法和相关设备。
背景技术
在C语言开发领域,内存越界一直是让人头疼的问题。
目前,可以采用调试工具检测内存是否越界。调试工具检测内存是否越界时会影响调试效果,因此,需要搭建较为复杂的调试环境使得调试工具在检测内存是否越界时不会影响调试效果。
搭建复杂的调试环境所需的时间较长,导致内存越界的检测成本较高。
发明内容
本发明提供一种内存越界的检测方法和相关设备,用以解决内存越界的检测成本较高的问题。
一方面,本发明提供一种内存越界的检测方法,包括:
获取待检测的内存的地址,并将所述地址存储至指针数组;
在检测到功能对应的第一函数被执行时,读取所述地址的第一地址值;
在所述第一函数执行完毕后,读取所述地址的第二地址值;
在所述第一地址值与所述第二地址值不同时,确定所述第一函数的执行导致所述内存出现越界。
在一实施例中,所述在检测到功能对应的第一函数被执行时,读取所述地址的第一地址值的步骤包括:
在检测到功能被执行时,运行预设脚本以识别所述功能对应的第一函数;
执行所述第一函数,并读取所述地址的第一地址值。
在一实施例中,所述运行预设脚本以识别所述功能对应的目标函数的步骤包括:
生成检测函数,并根据所述检测函数运行所述预设脚本,其中,所述检测函数用于支持所述预设脚本对各个函数进行识别以确定所述第一函数。
在一实施例中,所述读取所述地址的第二地址值的步骤之后,还包括:
确定所述功能对应的第二函数,并将所述第二函数更新为第一函数;
返回执行所述在检测到功能对应的第一函数被执行时,读取所述地址的第一地址值的步骤。
在一实施例中,所述确定所述功能的执行导致所述内存出现越界的步骤之后,还包括:
获取所述第一函数被执行的过程中的日志信息;
输出提示信息以及所述日志信息,所述提示信息用于指示所述第一函数的执行导致所述内存出现越界。
在一实施例中,所述获取待检测的内存的地址的步骤之前,还包括:
在预设存储区域设置指针数组。
另一方面,本发明还提供一种内存越界的检测装置,包括:
获取模块,用于获取待检测的内存的地址,并将所述地址存储至指针数组;
存储模块,用于在检测到功能对应的第一函数被执行时,读取所述地址的第一地址值;
读取模块,用于在所述第一函数执行完毕后,读取所述地址的第二地址值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆奥普泰通信技术有限公司,未经重庆奥普泰通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210082302.2/2.html,转载请声明来源钻瓜专利网。