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

文档序号:39053010发布日期:2024-08-17 22:16阅读:4来源:国知局
文件修复方法、装置、电子设备及存储介质与流程

本公开涉及信息,尤其涉及一种文件修复方法、装置、电子设备及存储介质。


背景技术:

1、现有技术中,系统在运行的应用程序发生崩溃时,往往会生成存储有应用程序发生崩溃时的相关信息的文件,用于进行后续的异常分析与调试。

2、然而,在某些情况下,系统生成的文件可能出现缺失文件页的问题,进而导致生成的文件不完整,无法正常打开使用。


技术实现思路

1、本公开提供一种文件修复方法、装置、电子设备及存储介质。

2、本公开实施例的第一方面,提供一种文件修复方法,包括:

3、确定目标设备的第一文件是否有缺失文件页;所述第一文件包括程序头;其中,一个所述程序头对应于一个所述文件页;

4、在所述第一文件有缺失一个或多个第一文件页时,根据所述程序头记录的第一虚拟地址,确定所述第一文件缺失的所述第一文件页存储在所述目标设备的内存中的第二虚拟地址;

5、根据所述第二虚拟地址,从所述目标设备的内存中读取所述第一文件页;

6、将读取的所述第一文件页插入所述第一文件中,得到第二文件;其中,所述第二文件,用于所述目标设备的异常分析。

7、在一些实施例中,所述方法还包括:

8、在所述第一文件页不是所述第一文件中最后一个文件页时,根据所述第一文件的第一长度,更新第二文件页对应的一个或多个程序头,得到所述第二文件;其中,所述第二文件页为:在所述第一文件中位于所述第一文件页之后的一个或多个文件页。

9、在一些实施例中,所述程序头包括第一字段;其中,所述第一字段用于记录所述程序头对应的文件页在所述第一文件中的起始地址;

10、所述根据所述第一文件的第一长度,更新第二文件页对应的一个或多个程序头,得到所述第二文件,包括:

11、根据所述第一文件页的第一长度,修改所述第二文件页对应的程序头中的所述第一字段。

12、在一些实施例中,所述确定目标设备的第一文件是否有缺失文件页,还包括以下至少之一:

13、当第n个程序头的第二字段记录的第二长度为0时,确定第n个所述程序头对应的文件页缺失;其中,所述n为大于或等于1的正整数;

14、当第n个程序头的第二字段记录的第二长度小于第三字段记录的第三长度时,确定第n个所述程序头对应的文件页缺失;

15、当所述第一文件的所有程序头的第二字段记录的第二长度之和小于所述所有程序头的第三字段记录的第三长度之和时,确定所述第一文件有缺失文件页;

16、其中,所述第二字段,用于记录对应文件页在所述第一文件中的实际长度;所述第三字段,用于记录对应文件页的期望长度。

17、在一些实施例中,所述将读取的所述第一文件页插入所述第一文件中,得到第二文件,包括:

18、将第三虚拟地址和所述第一虚拟地址匹配;其中,所述第三虚拟地址为:从所述目标设备的内存中读取文件页的虚拟地址,所述第一虚拟地址为:所述第一文件页对应的程序头的第一字段记录的虚拟地址;

19、当所述第一虚拟地址和所述第三虚拟地址匹配成功时,将读取的所述文件页作为所述第一文件页,从所述第一文件页对应的所述程序头的第一字段记录的起始位置处插入所述第一文件。

20、在一些实施例中,所述确定目标设备的第一文件是否有缺失文件页,包括:

21、在使用调试工具加载所述第一文件成功后输出第一异常信息;所述第一异常信息,用于指示所述第一文件有缺失文件页。

22、在一些实施例中,所述方法还包括:

23、在所述调试工具加载所述第一文件失败时,输出第二异常信息;其中,所述第二异常信息指示所述第一文件修复失败。

24、在一些实施例中,所述方法还包括:

25、在所述第一文件丢失一个或多个程序头时,确定所述调试工具加载所述第一文件失败。

26、本公开实施例的第二方面,提供一种文件修复装置,包括:

27、第一确定模块,用于确定目标设备的第一文件是否有缺失文件页;所述第一文件包括程序头;其中,一个所述程序头对应于一个所述文件页;

28、第二确定模块,用于在所述第一文件有缺失一个或多个第一文件页时,根据所述程序头记录的第一虚拟地址,确定所述第一文件缺失的第一文件页存储在所述目标设备的内存中的第二虚拟地址;

29、读取模块,用于根据所述第二虚拟地址,从所述目标设备的内存中读取所述第一文件页;

30、第一得到模块,用于将读取的所述第一文件页插入所述第一文件中,得到第二文件;其中,所述第二文件,用于所述目标设备的异常分析。

31、在一些实施例中,所述装置还包括:

32、第二得到模块,用于在所述第一文件页不是所述第一文件中最后一个文件页时,根据所述第一文件的第一长度,更新第二文件页对应的一个或多个程序头,得到所述第二文件;其中,所述第二文件页为:在所述第一文件中位于所述第一文件页之后的一个或多个文件页。

33、在一些实施例中,所述程序头包括第一字段;其中,所述第一字段用于记录所述程序头对应的文件页在所述第一文件中的起始地址;

34、所述第二得到模块,用于:

35、根据所述第一文件页的第一长度,修改所述第二文件页对应的程序头中的所述第一字段。

36、在一些实施例中,所述确定目标设备的第一文件是否有缺失文件页,还包括以下至少之一:

37、当第n个程序头的第二字段记录的第二长度为0时,确定第n个所述程序头对应的文件页缺失;其中,所述n为大于或等于1的正整数;

38、当第n个程序头的第二字段记录的第二长度小于第三字段记录的第三长度时,确定第n个所述程序头对应的文件页缺失;

39、当所述第一文件的所有程序头的第二字段记录的第二长度之和小于所述所有程序头的第三字段记录的第三长度之和时,确定所述第一文件有缺失文件页;

40、其中,所述第二字段,用于记录对应文件页在所述第一文件中的实际长度;所述第三字段,用于记录对应文件页的期望长度。

41、在一些实施例中,所述第一得到模块,用于:

42、将第三虚拟地址和所述第一虚拟地址匹配;其中,所述第三虚拟地址为:从所述目标设备的内存中读取文件页的虚拟地址,所述第一虚拟地址为:所述第一文件页对应的程序头的第一字段记录的虚拟地址;

43、当所述第一虚拟地址和所述第三虚拟地址匹配成功时,将读取的所述文件页作为所述第一文件页,从所述第一文件页对应的所述程序头的第一字段记录的起始位置处插入所述第一文件。

44、本公开实施例的第三方面,提供一种电子设备,包括:

45、存储器,存储有计算机可读指令;

46、处理器,与所述存储器连接,用于通过运行所述计算机可读指令,能够实现上述实施例的第一方面所述方法的步骤。

47、本公开实施例的第四方面,提供一种计算机可读存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现上述实施例的第一方面所述方法的步骤。

48、本公开的实施例提供的技术方案可以包括以下有益效果:

49、本公开实施例提供的文件修复方法通过确定目标设备的第一文件是否有缺失文件页;所述第一文件包括程序头;其中,一个所述程序头对应于一个所述文件页;如此,可以通过确定文件是否有缺失文件页,从而确定文件是否需要进行修复。在所述第一文件有缺失一个或多个第一文件页时,根据所述程序头记录的第一虚拟地址,确定所述第一文件缺失的第一文件页存储在所述目标设备的内存中的第二虚拟地址;根据所述第二虚拟地址,从所述目标设备的内存中读取所述第一文件页;如此,能够根据程序头记录的第一虚拟地址,确定与程序头对应的文件页存储在内存中的第二虚拟地址,并从目标设备的内存中读取文件页。将读取的所述第一文件页插入所述第一文件中,得到第二文件;其中,所述第二文件,用于所述目标设备的异常分析。如此,通过将读取的文件页插入到有缺失文件页的第一文件中,得到完整的能够正常打开使用的第二文件,进而便于根据第二文件进行目标设备的异常分析。

50、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

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