[发明专利]堆栈自检方法及装置有效
申请号: | 201610942165.X | 申请日: | 2016-10-25 |
公开(公告)号: | CN106547606B | 公开(公告)日: | 2019-07-02 |
发明(设计)人: | 王伟;郜春海 | 申请(专利权)人: | 交控科技股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 李相雨 |
地址: | 100070 北京市丰台区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种堆栈自检方法及装置,其中,所述方法包括:在程序启动时,控制程序的主函数调用预设堆栈自检子函数进行自检,其中,预设堆栈自检子函数定义了预设大小的局部变量数组和该局部变量数组中所有局部变量的取值,所述预设大小远大于使所述程序正常运行的子函数被调用时所使用堆栈的大小;在预设堆栈自检子函数向主函数发送返回值后,控制主函数调用使所述程序正常运行的子函数,编译器为使所述程序正常运行的子函数分配预设堆栈自检子函数使用过的堆栈区域;在预设堆栈自检子函数自检不通过时,将程序处于空循环停滞状态,不再返回。本发明能够对C语言堆栈进行有效、快速的自检,且不会影响系统运行的可靠性,提高了程序运行效率。 | ||
搜索关键词: | 堆栈 自检 方法 装置 | ||
【主权项】:
1.一种堆栈自检方法,其特征在于,包括:在程序启动时,控制所述程序的主函数调用预设堆栈自检子函数进行自检,包括:在程序启动时,控制所述程序的主函数调用预设堆栈自检子函数;依次读取所述预设堆栈自检子函数所定义的局部变量数组中各局部变量对应存储地址所存储的数值;判断所读取的各局部变量对应存储地址所存储的数值与该局部变量在所述预设堆栈自检子函数中被定义的取值是否一致;若所读取的各局部变量对应存储地址所存储的数值与该局部变量在所述预设堆栈自检子函数中被定义的取值一致,则确定所述预设堆栈自检子函数自检通过,向所述主函数发送返回值;若所读取的各局部变量对应存储地址所存储的数值与该局部变量在所述预设堆栈自检子函数中被定义的取值不一致,则确定所述预设堆栈自检子函数自检不通过;其中,所述预设堆栈自检子函数定义了预设大小的局部变量数组和所述局部变量数组中所有局部变量的取值,所述预设大小为使所述程序正常运行的子函数被调用时所使用堆栈的大小的10倍或10倍以上;在所述预设堆栈自检子函数向所述主函数发送返回值后,控制所述主函数调用使所述程序正常运行的子函数,编译器为所述使所述程序正常运行的子函数分配所述预设堆栈自检子函数使用过的堆栈区域;在所述预设堆栈自检子函数自检不通过时,将所述程序处于空循环停滞状态,不再返回。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于交控科技股份有限公司,未经交控科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610942165.X/,转载请声明来源钻瓜专利网。