[发明专利]线程栈的处理方法及系统有效
申请号: | 201710001925.1 | 申请日: | 2017-01-03 |
公开(公告)号: | CN106648549B | 公开(公告)日: | 2019-03-19 |
发明(设计)人: | 宋晓眉;李海翔 | 申请(专利权)人: | 北京华胜信泰数据技术有限公司;华胜信泰信息产业发展有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京华进京联知识产权代理有限公司 11606 | 代理人: | 王程 |
地址: | 100192 北京市海淀区学*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 处理 方法 系统 | ||
1.一种线程栈的处理方法,其特征在于,所述处理方法包括:
根据线程调用的调用函数获得所述调用函数对应的函数数据;
将所述函数数据写入线程栈,并获取所述函数数据在写入所述线程栈时在所述线程栈中的栈顶地址;
判断所述栈顶地址是否位于所述线程栈的栈保护区之内;
如果所述栈顶地址位于所述栈保护区内,则扩展所述线程栈的内存空间至所述线程栈的当前内存空间的预设倍数,并在扩展后的线程栈的内存空间中根据所述栈保护区的内存空间大小重新设置所述线程栈的栈保护区,使所述栈顶地址位于重设的栈保护区之外。
2.根据权利要求1所述的线程栈的处理方法,其特征在于,所述判断所述栈顶地址是否位于所述线程栈的栈保护区之内的步骤包括:
获取设置在所述栈保护区内的初始魔数数据,并由所述初始魔数数据中提取所述初始魔数数据的魔数偏移量和魔数占用空间;
根据线程栈终止地址和所述魔数偏移量确定所述初始魔数数据的魔数起始地址,并根据所述魔数起始地址和所述魔数占用空间确定所述初始魔数数据的魔数终止地址,其中,所述魔数起始地址与所述魔数终止地址界定的区间为所述初始魔数数据的魔数占用空间;
当所述函数数据写入所述线程栈时,获取所述魔数占用空间中的当前数据;
将所述当前数据与所述初始魔数数据进行比较,并在所述当前数据与所述初始魔数数据不一致时,确定所述栈顶地址位于所述栈保护区内。
3.根据权利要求2所述的线程栈的处理方法,其特征在于,所述扩展所述线程栈的内存空间的步骤包括:
根据所述线程栈的当前内存空间将所述线程栈的内存空间扩展为所述当前内存空间的预设倍数,扩展后的内存空间作为所述线程栈的新内存空间。
4.根据权利要求3所述的线程栈的处理方法,其特征在于,当所述初始魔数数据为多个,每个所述初始魔数数据对应有不同的魔数偏移量时;所述在扩展后的线程栈的内存空间中根据所述栈保护区的内存空间大小重新设置所述线程栈的栈保护区,使所述栈顶地址位于重设的栈保护区之外的步骤包括:
从多个所述初始魔数数据对应的魔数偏移量中获得最大魔数偏移量,并根据所述最大魔数偏移量和所述魔数占用空间确定所述栈保护区的内存空间大小;
根据所述栈保护区的内存空间大小在所述线程栈的新内存空间中重设所述栈保护区的起始地址和终止地址,并将所述重设的栈保护区的起始地址作为新的栈保护区起始地址,将重设的栈保护区的终止地址作为新的线程栈终止地址;
判断所述函数数据在所述线程栈中的所述栈顶地址是否位于所述重设的栈保护区内,并在所述栈顶地址位于所述重设的栈保护区内时返回所述根据初始内存空间将所述线程栈的内存空间扩展为所述初始内存空间的预设倍数的步骤,直至将所述函数数据全部写入所述线程栈后所述函数数据的所述栈顶地址位于所述重设的栈保护区之外。
5.根据权利要求4所述的线程栈的处理方法,其特征在于,所述根据所述栈保护区的内存空间大小在所述线程栈的新内存空间中重设所述栈保护区的起始地址和终止地址,并将所述重设的栈保护区的起始地址作为新的栈保护区起始地址,将重设的栈保护区的终止地址作为新的线程栈终止地址的步骤之后,还包括:
将所述新的栈保护区起始地址和所述新的线程栈终止地址保存在相应的存储单元中,以及
根据初始魔数数据的所述魔数偏移量和所述魔数占用空间在所述重设的栈保护区内设置新的魔数数据。
6.根据权利要求1至5任一项所述线程栈的处理方法,其特征在于,所述扩展所述线程栈的内存空间,并根据所述栈保护区的内存空间大小重新设置所述线程栈的栈保护区,使所述栈顶地址位于重设的栈保护区之外的步骤之后,还包括:
判断所述调用函数是否结束,并在所述调用函数结束后,删除写入到所述线程栈中的所述函数数据;
释放所述线程栈扩展的内存空间,保留所述线程栈的初始内存空间;
将所述线程栈的所述初始内存空间对应的栈保护区起始地址和线程栈终止地址重新写入相应的存储单元中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华胜信泰数据技术有限公司;华胜信泰信息产业发展有限公司,未经北京华胜信泰数据技术有限公司;华胜信泰信息产业发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710001925.1/1.html,转载请声明来源钻瓜专利网。