[发明专利]堆栈溢出检测方法、装置、电子设备和存储介质在审
申请号: | 202011072551.0 | 申请日: | 2020-10-09 |
公开(公告)号: | CN112182559A | 公开(公告)日: | 2021-01-05 |
发明(设计)人: | 刘君 | 申请(专利权)人: | OPPO广东移动通信有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 黄丽霞 |
地址: | 523860 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 堆栈 溢出 检测 方法 装置 电子设备 存储 介质 | ||
本申请涉及一种堆栈溢出检测方法、装置、计算机设备和存储介质。所述方法包括:确定访问的任务堆栈为第一任务堆栈,所述第一任务堆栈的属性为允许读写属性,除所述第一任务堆栈之外的其他任务堆栈的属性均为不允许访问属性;当检测到访问超出所述第一任务堆栈时,生成堆栈溢出提示信息,其中,所述堆栈溢出提示信息用于提示所述第一任务堆栈存在堆栈溢出。采用本方法能够更全面地检测到堆栈溢出的情况。
技术领域
本申请涉及计算机技术领域,特别是涉及一种堆栈溢出检测方法、装置、电子设备和计算机可读存储介质。
背景技术
堆栈(Stack)是一种抽象数据结构,是一组相同数据类型的组合,所有的操作均在堆栈顶端进行,具有“后进先出”的特性,即最后一个放入堆栈中的物体总是被最先拿出来。
嵌入式系统中一般运行有很多的任务,每个任务都会分配一小块内存作为堆栈,用来存储返回地址、入参、局部变量等数据。在系统运行过程中,如果因为各种原因造成所分配的堆栈不够用,就会形成堆栈溢出现象,进而会破坏相邻的内存空间。如果这个时候不及时汇报这种行为,当后续这块被破坏的内存空间被使用时,就会造成更大的影响。
因此,需要对堆栈溢出进行检测。传统的堆栈溢出检测方法,通常是确定在访问的堆栈下方设置一个保护区域,当访问的堆栈的数据溢出至保护区域时,即可检测到访问的堆栈存在溢出现象。然而,这种堆栈溢出检测方法,存在无法检测到堆栈溢出的情况。
发明内容
本申请实施例提供了一种堆栈溢出检测方法、装置、电子设备、计算机可读存储介质,可以更全面地检测到堆栈溢出的情况。
本申请实施例提供了一种堆栈溢出检测方法。该方法包括:
确定访问的任务堆栈为第一任务堆栈,所述第一任务堆栈的属性为允许读写属性,除所述第一任务堆栈之外的其他任务堆栈的属性均为不允许访问属性;
当检测到访问超出所述第一任务堆栈时,生成堆栈溢出提示信息,其中,所述堆栈溢出提示信息用于提示所述第一任务堆栈存在堆栈溢出。
本申请实施例提供了一种堆栈溢出检测装置。该装置包括:
访问的堆栈确定模块,用于确定访问的任务堆栈为第一任务堆栈,所述第一任务堆栈的属性为允许读写属性,除所述第一任务堆栈之外的其他任务堆栈的属性均为不允许访问属性;
堆栈溢出提示信息生成模块,用于当检测到访问超出所述第一任务堆栈时,生成堆栈溢出提示信息,其中,所述堆栈溢出提示信息用于提示所述第一任务堆栈存在堆栈溢出。
本申请实施例提供了一种电子设备。该电子设备包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述的堆栈溢出检测方法的步骤。
本申请实施例提供了一种计算机可读存储介质。该计算机可读存储介质其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的方法的步骤。
本申请实施例的技术方案至少包括以下技术效果:
上述堆栈溢出检测方法、装置、电子设备和计算机可读存储介质,确定访问的任务堆栈为第一任务堆栈,第一任务堆栈的属性为允许读写属性,除第一任务堆栈之外的其他任务堆栈的属性均为不允许访问属性,则当检测到访问超出第一任务堆栈时,即第一任务堆栈的数据溢出至不允许访问的其他任务堆栈,会造成异常,从而可以生成堆栈溢出提示信息,提示第一任务堆栈存在堆栈溢出的现象。不仅可以在第一任务堆栈的数据溢出至第一任务堆栈的下方区域时检测到堆栈溢出,还可以在第一任务堆栈的数据溢出至第一任务堆栈的上方区域时检测到堆栈溢出,更全面地检测到堆栈溢出的情况。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于OPPO广东移动通信有限公司,未经OPPO广东移动通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011072551.0/2.html,转载请声明来源钻瓜专利网。