[发明专利]一种堆栈状态检测方法、装置、设备及存储介质有效
申请号: | 202210039845.6 | 申请日: | 2022-01-14 |
公开(公告)号: | CN114048465B | 公开(公告)日: | 2022-05-06 |
发明(设计)人: | 费卫宏;李瑞东;钟戟 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 鲁梅 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 堆栈 状态 检测 方法 装置 设备 存储 介质 | ||
1.一种堆栈状态检测方法,其特征在于,应用于裸机系统,包括:
确定目标堆栈的存储位置,并在所述目标堆栈的预设位置上分配预设大小的内存空间;
将初始预设值写入至所述内存空间,并对所述内存空间中的所述初始预设值进行直接读取,以得到相应的第一回读值;
判断所述第一回读值与所述初始预设值是否一致,若一致,则通过预设检测接口回读所述初始预设值,以得到相应的第二回读值;
判断所述第二回读值与所述初始预设值是否一致,如果一致,则判定所述目标堆栈状态处于非异常状态并执行接口退出操作,如果不一致,则判定所述目标堆栈状态处于异常状态并执行程序断言操作;
其中,所述通过预设检测接口回读所述初始预设值,以得到相应的第二回读值之前,还包括:
创建与所述目标堆栈状态检测对应的入口函数,并将所述入口函数加入主函数的主循环中,以得到与所述入口函数对应的所述预设检测接口。
2.根据权利要求1所述的堆栈状态检测方法,其特征在于,所述在所述目标堆栈的预设位置上分配预设大小的内存空间,包括:
在所述目标堆栈的栈底和栈顶分别配置预设大小的内存空间,以得到所述栈底对应的第一内存空间和所述栈顶对应的第二内存空间;
相应的,所述将初始预设值写入至所述内存空间,包括:
将第一初始预设值和第二初始预设值分别写入所述栈底对应的所述第一内存空间和所述栈顶对应的所述第二内存空间。
3.根据权利要求2所述的堆栈状态检测方法,其特征在于,所述对所述内存空间中的所述初始预设值进行直接读取,以得到相应的第一回读值,包括:
对所述第一内存空间中的所述第一初始预设值进行直接读取,以得到第一内存回读值;
对所述第二内存空间中的所述第二初始预设值进行直接读取,以得到第二内存回读值;
相应的,所述判断所述第一回读值与所述初始预设值是否一致,包括:
判断所述第一内存回读值和所述第二内存回读值与所述第一初始预设值和所述第二初始预设值是否一致。
4.根据权利要求2所述的堆栈状态检测方法,其特征在于,所述通过预设检测接口回读所述初始预设值,以得到相应的第二回读值,包括:
通过预设检测接口回读所述第二内存空间中的所述第二初始预设值,以得到与所述栈顶对应的第二目标回读值;
相应的,所述判断所述第二回读值与所述初始预设值是否一致,包括:
判断所述第二目标回读值与所述第二初始预设值是否一致。
5.根据权利要求1所述的堆栈状态检测方法,其特征在于,所述判断所述第一回读值与所述初始预设值是否一致之后,还包括:
若所述第一回读值与所述初始预设值不一致,则重新将所述初始预设值写入至所述内存空间。
6.根据权利要求1至5任一项所述的堆栈状态检测方法,其特征在于,所述如果所述第二回读值与所述初始预设值不一致,则判定所述目标堆栈状态处于异常状态并执行程序断言操作之后,还包括:
对所述第二回读值和当前的所述目标堆栈对应的堆栈信息进行打印,以得到相应的打印信息,并基于所述打印信息对所述目标堆栈进行适当地调整。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210039845.6/1.html,转载请声明来源钻瓜专利网。