[发明专利]堆栈溢出的获取方法和装置在审
| 申请号: | 202011411535.X | 申请日: | 2020-12-03 |
| 公开(公告)号: | CN112329006A | 公开(公告)日: | 2021-02-05 |
| 发明(设计)人: | 张雪凯;薛高飞;生竹声;李德胜;郑隽一;张育铭 | 申请(专利权)人: | 国创新能源汽车智慧能源装备创新中心(江苏)有限公司 |
| 主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F11/36 |
| 代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 姜晓钰 |
| 地址: | 213000 江苏省常州市武*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 堆栈 溢出 获取 方法 装置 | ||
本发明提供一种堆栈溢出的获取方法和装置,所述方法包括以下步骤:在系统初始化前,将物理内存划分为第一内存空间和第二内存空间,其中,第二内存空间与无物理设备的地址空间相邻;在系统运行过程中,将待执行任务描述符与其对应的堆栈空间从第一内存空间拷贝到第二内存空间;在待执行任务执行期间,如果检测到CPU产生异常中断,则获取当前堆栈指针的位置;当当前堆栈指针的位置超出待执行任务的堆栈空间范围时,确定堆栈溢出。本发明的获取方法,通过使用无物理设备的地址空间,可以增加堆栈溢出捕获的概率和准确率,并且,采用异常中断的方式,能够快速的检测到堆栈溢出。
技术领域
本发明涉及计算机技术领域,具体涉及一种堆栈溢出的获取方法、一种堆栈溢出的获取装置、一种计算机设备和一种非临时性计算机可读存储介质。
背景技术
在单片机系统上,往往没有完善的内存管理体系,堆栈溢出难以避免。因此如何监测并定位堆栈溢出是一个重要的问题。
在相关技术中,一般采用的是标识符定位溢出,具体是在堆栈区后紧跟一个缓冲区,在缓冲区填写特定的数值,然后使用循环检测的方法,查看缓冲区中的数值是否被修改了,如果被修改,则说明内存溢出了;如果没有被修改,则说明还没有溢出。
但是在实际的运行中,上述方法并不能完全检测到堆栈溢出。其一,当堆栈溢出的非常多,导致整个系统崩溃,根本无法监测到堆栈溢出,这个现象在freertos中经常出现;其二,堆栈溢出后修改的数值和之前一样,同样无法监测到堆栈溢出。
发明内容
本发明为解决上述技术问题,提供了一种堆栈溢出的获取方法,利用CPU(CentralProcessing Unit,中央处理器)地址空间中的无物理设备的地址空间,将待执行任务放在与无物理设备的地址空间相邻的位置,在任务执行期间,如果堆栈指针溢出,CPU就会出现异常中断,从而可以增加堆栈溢出捕获的概率和准确率,并且,采用异常中断的方式,能够快速的检测到堆栈溢出。
本发明采用的技术方案如下:
一种堆栈溢出的获取方法,包括以下步骤:在系统初始化前,将物理内存划分为第一内存空间和第二内存空间,其中,所述第二内存空间与无物理设备的地址空间相邻;在系统运行过程中,将待执行任务描述符与其对应的堆栈空间从所述第一内存空间拷贝到所述第二内存空间;在所述待执行任务执行期间,如果检测到CPU产生异常中断,则获取当前堆栈指针的位置;当所述当前堆栈指针的位置超出待执行任务的堆栈空间范围时,确定堆栈溢出。
根据本发明的一个实施例,将待执行任务描述符与其对应的堆栈空间从所述第一内存空间拷贝到所述第二内存空间,包括:当所述第二内存空间的最低地址与所述无物理设备地址空间相邻时,将所述待执行任务的堆栈的最低地址与所述物理空间的最低地址保持一致;当所述第二内存空间的最高地址与所述无物理设备地址空间相邻时,将所述待执行任务的堆栈的最高地址与所述物理空间的最高地址保持一致。
根据本发明的一个实施例,上述的堆栈溢出的获取方法,还包括:当所述当前堆栈指针的位置未超出待执行任务的堆栈空间范围时,进入死循环。
根据本发明的一个实施例,在确定堆栈溢出之后,还包括:获取当前任务的标识,打印后进入死循环。
根据本发明的一个实施例,上述的堆栈溢出的获取方法,还包括:在所述待执行任务执行完成后,将该任务从所述第二内存空间拷贝到所述第一内存空间中的原始地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国创新能源汽车智慧能源装备创新中心(江苏)有限公司,未经国创新能源汽车智慧能源装备创新中心(江苏)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011411535.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种绿色环保的新型建筑工程施工用振动棒
- 下一篇:自动化高速芯片智能包装机





