[发明专利]堆栈溢出的获取方法和装置在审
| 申请号: | 202011411535.X | 申请日: | 2020-12-03 |
| 公开(公告)号: | CN112329006A | 公开(公告)日: | 2021-02-05 |
| 发明(设计)人: | 张雪凯;薛高飞;生竹声;李德胜;郑隽一;张育铭 | 申请(专利权)人: | 国创新能源汽车智慧能源装备创新中心(江苏)有限公司 |
| 主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F11/36 |
| 代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 姜晓钰 |
| 地址: | 213000 江苏省常州市武*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 堆栈 溢出 获取 方法 装置 | ||
1.一种堆栈溢出的获取方法,其特征在于,包括以下步骤:
在系统初始化前,将物理内存划分为第一内存空间和第二内存空间,其中,所述第二内存空间与无物理设备的地址空间相邻;
在系统运行过程中,将待执行任务描述符与其对应的堆栈空间从所述第一内存空间拷贝到所述第二内存空间;
在所述待执行任务执行期间,如果检测到CPU产生异常中断,则获取当前堆栈指针的位置;
当所述当前堆栈指针的位置超出待执行任务的堆栈空间范围时,确定堆栈溢出。
2.根据权利要求1所述的堆栈溢出的获取方法,其特征在于,将待执行任务描述符与其对应的堆栈空间从所述第一内存空间拷贝到所述第二内存空间,包括:
当所述第二内存空间的最低地址与所述无物理设备地址空间相邻时,将所述待执行任务的堆栈的最低地址与所述物理空间的最低地址保持一致;
当所述第二内存空间的最高地址与所述无物理设备地址空间相邻时,将所述待执行任务的堆栈的最高地址与所述物理空间的最高地址保持一致。
3.根据权利要求1所述的堆栈溢出的获取方法,其特征在于,还包括:
当所述当前堆栈指针的位置未超出待执行任务的堆栈空间范围时,进入死循环。
4.根据权利要求1所述的堆栈溢出的获取方法,其特征在于,在确定堆栈溢出之后,还包括:
获取当前任务的标识,打印后进入死循环。
5.根据权利要求1所述的堆栈溢出的获取方法,其特征在于,还包括:
在所述待执行任务执行完成后,将该任务从所述第二内存空间拷贝到所述第一内存空间中的原始地址。
6.一种堆栈溢出的获取装置,其特征在于,包括:
划分模块,用于在系统初始化前,将物理内存划分为第一内存空间和第二内存空间,其中,所述第二内存空间与无物理设备的地址空间相邻;
拷贝模块,用于在系统运行过程中,将待执行任务描述符与其对应的堆栈空间从所述第一内存空间拷贝到所述第二内存空间;
检测模块,用于在所述待执行任务执行期间,检测CPU是否产生异常中断;
获取模块,用于在检测到所述CPU产生异常中断时,获取当前堆栈指针的位置;
确定模块,用于在所述当前堆栈指针的位置超出待执行任务的堆栈空间范围时,确定堆栈溢出。
7.根据权利要求6所述的堆栈溢出的获取装置,其特征在于,所述拷贝模块将待执行任务描述符与其对应的堆栈空间从所述第一内存空间拷贝到所述第二内存空间,具体用于,
当所述第二内存空间的最低地址与所述无物理设备地址空间相邻时,将所述待执行任务的堆栈的最低地址与所述物理空间的最低地址保持一致;
当所述第二内存空间的最高地址与所述无物理设备地址空间相邻时,将所述待执行任务的堆栈的最高地址与所述物理空间的最高地址保持一致。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现根据权利要求1-5中任一项所述的堆栈溢出的获取方法。
9.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现根据权利要求1-5中任一项所述的堆栈溢出的获取方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国创新能源汽车智慧能源装备创新中心(江苏)有限公司,未经国创新能源汽车智慧能源装备创新中心(江苏)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011411535.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种绿色环保的新型建筑工程施工用振动棒
- 下一篇:自动化高速芯片智能包装机





