[发明专利]栈空间统计方法、装置及介质有效
申请号: | 202110284125.1 | 申请日: | 2021-03-17 |
公开(公告)号: | CN112948000B | 公开(公告)日: | 2023-03-03 |
发明(设计)人: | 王伟;黄思源 | 申请(专利权)人: | 星汉智能科技股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F8/30 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 俞梁清 |
地址: | 519030 广东省珠*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 空间 统计 方法 装置 介质 | ||
1.一种栈空间统计方法,其特征在于,包括:
初始化栈顶动态变量;
运行软件程序的任一项功能,获取处理器的SP寄存器值;
SP指针对比,包括将SP寄存器值分别与栈空间边界及所述栈顶动态变量进行对比,根据对比结果分别进行栈空间使用情况提示及更新所述栈顶动态变量;
编译所述软件程序,获取对应的PUSH指令,并在所述PUSH指令中添加用于执行所述SP指针对比的指令,重复执行在所述PUSH指令中添加用于执行所述SP指针对比的指令直至得到所述软件程序功能运行时所需的最大栈空间;
所述SP指针对比包括:获取处理器的SP寄存器值及所述栈顶动态变量;
对于递减栈,比较SP寄存器值和栈空间边界,若SP寄存器值小于栈空间边界,则提示栈空间不足并终止运行;比较SP寄存器值和所述栈顶动态变量,若SP寄存器值小于所述栈顶动态变量,则更新所述栈顶动态变量为SP寄存器值,否则退出;
以及,对于递增栈,比较SP寄存器值和栈空间边界,若SP寄存器值大于栈空间边界,则提示栈空间不足并终止运行;比较SP寄存器值和所述栈顶动态变量,若SP寄存器值大于所述栈顶动态变量,则更新所述栈顶动态变量为SP寄存器值,否则退出;
所述SP指针对比还包括:将所述SP指针对比以汇编指令格式进行输出,输出的汇编指令格式用于编译器的编译处理,所述汇编指令格式根据编译器进行对应设置;
所述编译所述软件程序还包括:通过查询所述汇编指令格式中的PUSH指令,并在PUSH指令后添加用于执行所述SP指针对比的汇编指令,修改后的所述汇编指令根据处理器进行对应设置。
2.根据权利要求1所述的栈空间统计方法,其特征在于,所述初始化栈顶动态变量包括:创建一初始化指令,所述初始化指令用于在每次执行所述SP指针对比时初始化所述栈顶动态变量。
3.根据权利要求1所述的栈空间统计方法,其特征在于,所述栈空间边界可自定义设置。
4.根据权利要求1所述的栈空间统计方法,其特征在于,该方法还包括:将修改后的所述汇编指令以文件形式输出。
5.根据权利要求1所述的栈空间统计方法,其特征在于,所述栈空间使用情况提示通过命令或显示界面进行提示。
6.一种栈空间统计装置,该装置包括存储装置、处理装置以及存储在所述存储装置中并可在所述处理装置上运行的计算机程序,其特征在于,所述处理装置执行所述计算机程序时实现权利要求1-5任一所述的方法步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理装置执行时实现如权利要求1-5任一所述的方法步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于星汉智能科技股份有限公司,未经星汉智能科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110284125.1/1.html,转载请声明来源钻瓜专利网。