[发明专利]一种服务的更新方法、装置及计算机可读存储介质有效
申请号: | 202110604530.7 | 申请日: | 2021-05-31 |
公开(公告)号: | CN113342389B | 公开(公告)日: | 2022-09-30 |
发明(设计)人: | 任长城 | 申请(专利权)人: | 深圳市腾讯网络信息技术有限公司 |
主分类号: | G06F8/658 | 分类号: | G06F8/658;G06F8/71;G06F11/07 |
代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 高天华;张颖玲 |
地址: | 518057 广东省深圳市宝安区新安街道新安六路御景*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 服务 更新 方法 装置 计算机 可读 存储 介质 | ||
1.一种服务的更新方法,其特征在于,包括:
当服务进程发生故障时,根据所述故障的故障函数的逻辑故障,生成用于修复所述逻辑故障的逻辑修复函数;根据所述故障的故障函数的数据故障,生成用于修复所述数据故障的数据修复函数;并对所述逻辑修复函数和所述数据修复函数进行编译处理,得到所述故障的补丁文件;
其中,所述数据故障,用于指示所述服务进程发生所述故障时,已经运行的所述故障函数存在产生的故障数据,所述逻辑故障,用于指示所述故障函数自身存在逻辑错误;
获取所述故障函数的起始地址;
通过使所述服务进程加载所述补丁文件的方式,解析出所述补丁文件中的逻辑修复函数的地址,其中,所述逻辑修复函数为所述故障函数的正确版本;
从所述故障函数的起始地址开始写入操作指令,其中,所述操作指令用于将所述逻辑修复函数的地址写入寄存器,并使所述服务进程在执行所述故障函数时跳转到所述逻辑修复函数的地址,以执行所述逻辑修复函数,以修复所述逻辑故障;
通过执行所述补丁文件中的所述数据修复函数的方式,修复所述故障函数产生的数据故障。
2.根据权利要求1所述的方法,其特征在于,所述操作指令包括数据传输指令和跳转指令;
所述从所述故障函数的起始地址开始写入操作指令,包括:
从所述故障函数的起始地址开始写入所述数据传输指令,其中,所述数据传输 指令用于将所述逻辑修复函数的地址写入所述寄存器;
在写入所述数据传输指令后继续写入所述跳转指令,其中,所述跳转指令用于使所述服务进程在执行所述故障函数时跳转到所述逻辑修复函数的地址,以执行所述逻辑修复函数。
3.根据权利要求2所述的方法,其特征在于,所述从所述故障函数的起始地址开始写入所述数据传输指令,包括:
从所述故障函数的起始地址开始写入包括所述逻辑修复函数的地址的数据传输 指令,其中,所述数据传输 指令用于将所述逻辑修复函数的地址写入寄存器。
4.根据权利要求3所述的方法,其特征在于,所述从所述故障函数的起始地址开始写入包括所述逻辑修复函数的地址的数据传输 指令,包括:
从所述故障函数的起始地址开始写入包括特定地址和所述逻辑修复函数的地址的数据传输 指令,其中,所述特定地址为与所述故障函数的起始地址具有偏移量的地址。
5.根据权利要求1所述的方法,其特征在于,
所述从所述故障函数的起始地址开始写入操作指令之前,所述方法还包括:通过调用系统接口函数,对从所述故障函数的起始地址开始的特定长度存储空间赋予可写权限;
所述通过执行所述补丁文件中的数据修复函数的方式,修复所述故障函数产生的数据故障之后,所述方法还包括:通过调用系统接口函数,对从所述故障函数的起始地址开始的特定长度存储空间取消所述可写权限。
6.根据权利要求5所述的方法,其特征在于,所述通过调用系统接口函数,对从所述故障函数的起始地址开始的特定长度存储空间赋予可写权限,包括:
通过调用系统接口函数包括的第一参数,对从所述故障函数的起始地址开始的特定长度存储空间赋予可写权限;
其中,所述第一参数用于使所述特定长度存储空间中的内容可写。
7.根据权利要求5所述的方法,其特征在于,所述通过调用所述系统接口函数,对从所述故障函数的起始地址开始的特定长度存储空间取消所述可写权限,包括:
通过调用系统接口函数包括的第二参数,对从所述故障函数的起始地址开始的特定长度存储空间取消所述可写权限;
其中,所述第二参数用于使所述特定长度存储空间中的内容不可写。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市腾讯网络信息技术有限公司,未经深圳市腾讯网络信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110604530.7/1.html,转载请声明来源钻瓜专利网。