进程修复方法、装置、电子设备及存储介质与流程

文档序号:37084011发布日期:2024-02-20 21:39阅读:23来源:国知局
进程修复方法、装置、电子设备及存储介质与流程

本发明涉及云计算,尤其涉及一种进程修复方法、装置、电子设备及存储介质。


背景技术:

1、基于进程热补丁技术可以实现在不重启目标进程的情况下,修复目标进程可执行程序中的代码问题。在进行热补丁修复时,首先将热补丁文件加载到目标进程的内存空间中,然后将目标进程中的某一原函数替换为热补丁文件中已修复代码问题的替换函数。

2、然而,现有技术中,制作热补丁的编译环境难以保持与目标进程的原编译环境一致,在这两种编译环境不一致时,容易导致进程热补丁加载失败,从而无法修复出现的代码问题。不便于热补丁文件的使用。

3、可见,现有技术中存在进程修复效果较差的问题。


技术实现思路

1、本发明实施例提供了一种进程修复方法、装置、电子设备及存储介质,以解决现有技术中进程修复效果较差的问题。

2、为解决上述技术问题,本发明是这样实现的:

3、第一方面,本发明实施例提供了一种进程修复方法,所述方法包括:

4、基于目标进程的编译配置信息,生成对应的编译容器镜像;

5、运行所述编译容器镜像所对应的编译容器,并在所述编译容器中生成进程热补丁文件;

6、使用所述进程热补丁文件对所述目标进程进行热修复。

7、可选地,所述在所述编译容器中生成进程热补丁文件,包括:

8、获取目标程序的代码差异文件;

9、在所述编译容器中使用所述代码差异文件对所述目标程序进行修改,并得到修改后的目标程序;

10、基于所述编译容器中的热补丁制作工具对所述修改后的目标程序进行编译,生成所述进程热补丁文件。

11、可选地,所述使用所述进程热补丁文件对所述目标进程进行热修复,包括:

12、运行验证容器镜像所对应的验证容器,所述验证容器镜像为所述编译容器在成功运行预设编译命令的情况下所生成的容器镜像;

13、在所述验证容器中加载所述进程热补丁文件,以对所述进程热补丁文件对应的热修复功能进行验证,得到验证结果;

14、在所述验证结果指示所述热修复功能成功的情况下,使用所述进程热补丁文件对所述目标进程进行热修复。

15、可选地,所述基于目标进程的编译配置信息,生成对应的编译容器镜像,包括:

16、基于所述目标进程的源代码确定编译参数;

17、基于所述编译参数和所述目标进程的标识信息,生成编译配置信息,所述标识信息包括名称、版本号中的至少一项;

18、通过对所述编译配置信息进行哈希计算,生成对应的编译容器镜像。

19、可选地,在所述运行所述编译容器镜像所对应的编译容器,并在所述编译容器中生成进程热补丁文件之后,所述方法还包括:

20、存储所述编译容器镜像至容器镜像仓库;和/或,

21、存储所述进程热补丁文件至进程热补丁仓库。

22、可选地,所述存储所述进程热补丁文件至进程热补丁仓库,包括:

23、存储所述进程热补丁文件和所述进程热补丁文件对应的属性信息至进程热补丁仓库,在所述进程热补丁文件的替换函数与所述进程热补丁仓库中存储的另一进程热补丁文件的替换函数存在交集的情况下,所述进程热补丁文件对应的属性信息包括所述进程热补丁文件与所述另一进程热补丁文件之间的互斥关系。

24、第二方面,本发明实施例还提供了一种进程修复装置,所述装置包括:

25、第一生成模块,用于基于目标进程的编译配置信息,生成对应的编译容器镜像;

26、第二生成模块,用于运行所述编译容器镜像所对应的编译容器,并在所述编译容器中生成进程热补丁文件;

27、修复模块,用于使用所述进程热补丁文件对所述目标进程进行热修复。

28、可选地,所述第二生成模块包括:

29、获取子模块,用于获取目标程序的代码差异文件;

30、修改子模块,用于在所述编译容器中使用所述代码差异文件对所述目标程序进行修改,并得到修改后的目标程序;

31、第一生成子模块,用于基于所述编译容器中的热补丁制作工具对所述修改后的目标程序进行编译,生成所述进程热补丁文件。

32、可选地,所述修复模块包括:

33、运行子模块,用于运行验证容器镜像所对应的验证容器,所述验证容器镜像为所述编译容器在成功运行预设编译命令的情况下所生成的容器镜像;

34、验证子模块,用于在所述验证容器中加载所述进程热补丁文件,以对所述进程热补丁文件对应的热修复功能进行验证,得到验证结果;

35、修复子模块,用于在所述验证结果指示所述热修复功能成功的情况下,使用所述进程热补丁文件对所述目标进程进行热修复。

36、可选地,所述第一生成模块包括:

37、确定子模块,用于基于所述目标进程的源代码确定编译参数;

38、第二生成子模块,用于基于所述编译参数和所述目标进程的标识信息,生成编译配置信息,所述标识信息包括名称、版本号中的至少一项;

39、第三生成子模块,用于通过对所述编译配置信息进行哈希计算,生成对应的编译容器镜像。

40、可选地,所述装置还包括:

41、第一存储模块,用于存储所述编译容器镜像至容器镜像仓库;和/或,

42、第二存储模块,用于存储所述进程热补丁文件至进程热补丁仓库。

43、可选地,所述第二存储模块,包括:

44、存储子模块,用于存储所述进程热补丁文件和所述进程热补丁文件对应的属性信息至进程热补丁仓库,在所述进程热补丁文件的替换函数与所述进程热补丁仓库中存储的另一进程热补丁文件的替换函数存在交集的情况下,所述进程热补丁文件对应的属性信息包括所述进程热补丁文件与所述另一进程热补丁文件之间的互斥关系。

45、第三方面,本发明实施例还提供了一种电子设备,包括收发机和处理器;

46、所述处理器,用于基于目标进程的编译配置信息,生成对应的编译容器镜像;

47、所述处理器,还用于运行所述编译容器镜像所对应的编译容器,并在所述编译容器中生成进程热补丁文件;

48、所述处理器,还用于使用所述进程热补丁文件对所述目标进程进行热修复。

49、可选地,所述在所述编译容器中生成进程热补丁文件,包括:

50、获取目标程序的代码差异文件;

51、在所述编译容器中使用所述代码差异文件对所述目标程序进行修改,并得到修改后的目标程序;

52、基于所述编译容器中的热补丁制作工具对所述修改后的目标程序进行编译,生成所述进程热补丁文件。

53、可选地,所述使用所述进程热补丁文件对所述目标进程进行热修复,包括:

54、运行验证容器镜像所对应的验证容器,所述验证容器镜像为所述编译容器在成功运行预设编译命令的情况下所生成的容器镜像;

55、在所述验证容器中加载所述进程热补丁文件,以对所述进程热补丁文件对应的热修复功能进行验证,得到验证结果;

56、在所述验证结果指示所述热修复功能成功的情况下,使用所述进程热补丁文件对所述目标进程进行热修复。

57、可选地,所述基于目标进程的编译配置信息,生成对应的编译容器镜像,包括:

58、基于所述目标进程的源代码确定编译参数;

59、基于所述编译参数和所述目标进程的标识信息,生成编译配置信息,所述标识信息包括名称、版本号中的至少一项;

60、通过对所述编译配置信息进行哈希计算,生成对应的编译容器镜像。

61、可选地,所述处理器,还用于存储所述编译容器镜像至容器镜像仓库;和/或,

62、所述处理器,还用于存储所述进程热补丁文件至进程热补丁仓库。

63、可选地,所述存储所述进程热补丁文件至进程热补丁仓库,包括:

64、存储所述进程热补丁文件和所述进程热补丁文件对应的属性信息至进程热补丁仓库,在所述进程热补丁文件的替换函数与所述进程热补丁仓库中存储的另一进程热补丁文件的替换函数存在交集的情况下,所述进程热补丁文件对应的属性信息包括所述进程热补丁文件与所述另一进程热补丁文件之间的互斥关系。

65、第四方面,本发明实施例还提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的进程修复方法的步骤。

66、第五方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的进程修复方法的步骤。

67、本发明实施例中,首先基于目标进程的编译配置信息生成对应的容器镜像,通过将程序的运行环境打包为容器镜像,使得程序每次运行时的环境依赖完全一致,为程序的分发和部署提供了极大的便捷性;然后在编译容器镜像所对应的编译容器中生成进程热补丁文件,这样使用进程热补丁文件对目标进程进行热修复时,可以确保进程热补丁文件制作所在的编译环境和目标进程原本的编译环境完全一致。减少了进程热补丁加载失败,导致无法修复代码问题的情况,便于热补丁文件的使用,提升了进程修复效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1