嵌入式软件堆栈溢出检测方法和装置
发布时间: 2022-05-20
来源: 试点城市(园区)
基本信息
本发明公开了一种嵌入式软件堆栈溢出检测方法和装置,所述方法包括:通过链接文件将处理器随机存储器空间划分为堆栈区、堆栈溢出缓冲区和全局变量区;并在所述堆栈溢出缓冲区定义一个堆栈溢出缓冲数组;处理器上电,开启定时器;在所述定时器的中断服务程序中,读取堆栈溢出缓冲区和堆栈区的数据,计算最大堆栈使用量;判断所述最大堆栈使用量是否大于堆栈区尺寸,若是,判断为堆栈溢出;将溢出的上下文信息存入所述堆栈溢出缓冲数组;判断所述最大堆栈使用量是否小于或等于预设阈值,若是,根据堆栈溢出缓冲数组判断堆栈溢出位置。本发明通过设置堆栈溢出缓冲区,保证了浅度堆栈溢出不会造成系统运行异常,并且可以辅助开发人员进行程序修正。