[发明专利]重载方法和装置有效
申请号: | 202011388381.7 | 申请日: | 2020-12-01 |
公开(公告)号: | CN112379973B | 公开(公告)日: | 2023-10-24 |
发明(设计)人: | 苏远程 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 深圳市联鼎知识产权代理有限公司 44232 | 代理人: | 叶虹 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 重载 方法 装置 | ||
1.一种重载方法,其特征在于,包括:
监听应用程序的开发文件中发生修改的代码,并获取用于执行所述开发文件的虚拟机中所述代码对应的指定代码模块;
对所述虚拟机中除了所述指定代码模块之外的文件进行镜像处理,得到镜像虚拟机,并将所述镜像虚拟机存储至沙盒中;
基于所述镜像虚拟机将修改后的代码加载至所述沙盒中,得到目标代码模块;
使用所述目标代码模块替换所述虚拟机中的所述指定代码模块,以对所述指定代码模块进行热重载。
2.根据权利要求1所述的重载方法,其特征在于,还包括:
在基于所述镜像虚拟机将修改后的代码加载至所述沙盒中,得到目标代码模块的过程中,若检测到所述修改后的代码中包含对所述镜像虚拟机中的全局变量进行初始化的语句,则提示重载错误并停止重载。
3.根据权利要求1所述的重载方法,其特征在于,在使用所述目标代码模块替换所述虚拟机中的所述指定代码模块之前,所述方法还包括:
获取所述目标代码模块中的外部局部变量,作为目标外部局部变量;
获取所述指定代码模块中的外部局部变量,作为指定外部局部变量;
将所述目标外部局部变量,替换为与所述目标外部局部变量对应的指定外部局部变量。
4.根据权利要求1所述的重载方法,其特征在于,在使用所述目标代码模块替换所述虚拟机中的所述指定代码模块之前,所述方法还包括:
获取所述目标代码模块中的父函数原型;
查找所述指定代码模块中与所述父函数原型对应的子函数原型,作为所述目标代码模块中与所述父函数原型对应的子函数原型;
实例化所述子函数原型;
填充实例化后的子函数原型,得到所述目标代码模块中与所述父函数原型对应的子函数。
5.根据权利要求4所述的重载方法,其特征在于,所述填充实例化后的子函数原型,包括:
在所述指定代码模块中,查找所述子函数原型对应的外部局部变量;
使用所述子函数原型对应的外部局部变量,填充所述实例化后的子函数原型。
6.根据权利要求4所述的重载方法,其特征在于,所述填充实例化后的子函数原型,包括:
在所述目标代码模块中,获取所述父函数原型对应的外部局部变量列表;
在所述父函数原型对应的外部局部变量列表中,查找与所述子函数原型对应的外部局部变量;
使用与所述子函数原型对应的外部局部变量,填充所述实例化后的子函数原型。
7.根据权利要求1所述的重载方法,其特征在于,
在基于所述镜像虚拟机将修改后的代码加载至所述沙盒中,得到目标代码模块的过程中,
若检测到需要调用所述镜像虚拟机中的文件对应的功能,则获取所述镜像虚拟机中的安全表,通过所述安全表从所述虚拟机中获取与所述镜像虚拟机中的文件对应的功能。
8.根据权利要求1所述的重载方法,其特征在于,所述使用所述目标代码模块替换所述虚拟机中的所述指定代码模块,包括:
获取所述目标代码模块中文件的类型,并获取所述指定代码模块中文件的类型;
若所述目标代码模块中文件的类型和所述指定代码模块中文件的类型一致,则使用所述目标代码模块替换所述虚拟机中的所述指定代码模块。
9.根据权利要求1所述的重载方法,其特征在于,在使用所述目标代码模块替换所述虚拟机中的所述指定代码模块之后,所述方法还包括:
获取所述虚拟机中与所述指定代码模块具有依赖关系的相关代码模块,并获取所述指定代码模块与所述相关代码模块之间的依赖关系;
基于所述目标代码模块与所述依赖关系,重载所述相关代码模块。
10.一种重载装置,其特征在于,包括:
监听模块,配置为监听开发文件中发生修改的代码,并获取用于执行所述开发文件的虚拟机中所述代码对应的指定代码模块;
镜像模块,配置为制作所述虚拟机中除了所述指定代码模块之外的文件的镜像,得到镜像虚拟机,并将所述镜像虚拟机存储至沙盒中;
重载模块,配置为基于所述镜像虚拟机将修改后的代码加载至所述沙盒中,得到目标代码模块;
替换模块,配置为使用所述目标代码模块替换所述虚拟机中的所述指定代码模块,以对所述指定代码模块进行热重载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011388381.7/1.html,转载请声明来源钻瓜专利网。