一种数据处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:32215136 阅读:29 留言:0更新日期:2022-02-09 17:20
本发明专利技术提供了一种数据处理方法、装置、电子设备及存储介质。由于对主程序的镜像文件的内存地址区间修复,得到修复后的内存地址区间,因此,之后可以确定出崩溃相关的目标指令位于应用程序中的哪一个镜像文件中,例如,可以确定出崩溃相关的目标指令的内存地址位于主程序的镜像文件的修复后的内存地址区间中,之后根据崩溃相关的目标指令的内存地址、修复后的内存地址区间的起始内存地址以及第一对应关系就可以准确获取到目标指令的符号信息,也即,通过本申请,可以解析出具有可读性的准确的关于崩溃的相关信息,使得开发人员根据具有可读性的准确的关于崩溃的相关信息可以分析出应用程序崩溃的原因,进而使得开发人员可以优化应用程序。以优化应用程序。以优化应用程序。

【技术实现步骤摘要】
一种数据处理方法、装置、电子设备及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种数据处理方法、装置、电子设备及存储介质。

技术介绍

[0002]随着技术的飞速发展,可以在手机上安装供用户使用的应用程序越来越多。在用户需要在手机上安装应用程序的情况下,用户可以使用手机从网络上下载应用程序的安装包,并在手机上运行应用程序的安装包,从而实现在手机上安装应用程序。
[0003]应用程序在手机上运行的过程中有时候会崩溃(例如闪退等),为了避免之后再次出现崩溃,可以解析出崩溃的原因,并根据崩溃的原因对应用程序优化。
[0004]为了解析出崩溃的原因,可以获取应用程序崩溃时的日志,开发人员可以根据日志来分析崩溃的原因,但是日志中内容的可读性较差,不利于开发人员阅读,因此,可以将日志中的内容符号化为具有可读性的内容,即,符号化为开发人员可以读懂的内容等。例如可以使用symbolicatecrash以将日志中的内容符号化为具有可读性的内容,供开发人员查看,以分析出崩溃的原因,进而根据崩溃的原因优化应用程序。
[0005]其中,随着应用程序的功能越来越多,应用程序的安装包的下载大小越来越大。
[0006]如果应用程序的安装包的下载大小较大,则手机从网络上下载应用程序的安装包的过程中会耗费较多的网络资源,会浪费手机的流量,因此,为了节省网络资源,节省手机的流量,可以减小应用程序的安装包的下载大小。
[0007]其中,应用程序的安装包中包括数据段,在数据段中存储有二进制数据等。在生成应用程序的安装包的过程中,可以将一个数据段中的数据迁移至另一个数据段中,这样,系统往往会默认对另一个数据段中的数据压缩,如此起到了减小应用程序的安装包的下载大小的效果。如果分别对多个数据段中的数据迁移,减小应用程序的安装包的下载大小的效果更为明显。
[0008]用户在使用迁移后的应用程序的安装包在手机上安装迁移后的应用程序之后,如果手机在运行迁移后的应用程序的过程中崩溃(例如闪退等),为了避免之后再次出现崩溃,可以解析出崩溃的原因,并根据崩溃的原因对迁移后的应用程序修复。
[0009]为了解析出崩溃的原因,可以获取迁移后的应用程序崩溃时的日志,开发人员可以根据日志来分析迁移后的应用程序崩溃的原因,但是日志中内容的可读性较差,不利于开发人员阅读,需要将日志中的内容符号化为具有可读性的内容,但是,使用symbolicatecrash工具在符号化迁移后的应用程序的崩溃时的日志中的内容时,无法准确解析出具有可读性的关于崩溃的相关信息,导致开发人员无法分析出迁移后的应用程序崩溃的原因,不利于开发人员优化迁移后的应用程序。

技术实现思路

[0010]本申请示出了一种数据处理方法、装置、电子设备及存储介质。
[0011]第一方面,本申请示出了一种数据处理方法,所述方法包括:
[0012]在应用程序运行的过程中崩溃的情况下,获取应用程序中的各个镜像文件的内存地址区间;获取应用程序的指令在镜像文件中的偏移地址区间与应用程序的指令的符号信息之间的第一对应关系;以及获取应用程序中的崩溃相关的指令所在的镜像文件的文件名称与崩溃相关的指令的内存地址之间的第二对应关系;其中,符号信息至少包括指令所在的函数的函数名、函数所在的文件的文件名以及指令在文件中的位置;所述应用程序对应的安装包中的主程序的至少一个数据段被拆分为至少两个数据段;
[0013]对应用程序中的各个镜像文件的内存地址区间中的主程序的镜像文件的内存地址区间修复,得到主程序的镜像文件的修复后的内存地址区间,修复后的内存地址区间包括至少两个数据段中的各个数据段的内存地址区间;以及,在第二对应关系中查找预设标识符的文件名称对应的目标指令的内存地址;
[0014]在各个镜像文件的内存地址区间以及修复后的内存地址区间中,确定所述目标指令的内存地址所在的目标镜像文件的目标内存地址区间;
[0015]根据所述目标指令的内存地址、所述目标内存地址区间的起始内存地址以及所述第一对应关系获取所述目标指令的符号信息;
[0016]输出目标指令的符号信息,目标指令的符号信息至少包括目标指令所在的目标函数的函数名,目标函数所在的目标文件的文件名以及目标指令在目标文件中的位置。
[0017]在一个可选的实现方式中,所述对应用程序中的各个镜像文件的内存地址区间中的主程序的镜像文件的内存地址区间修复,得到修复后的主程序的镜像文件的修复后的内存地址区间,包括:
[0018]在各个镜像文件的内存地址区间中确定主程序的镜像文件的内存地址区间以及位于所述主程序的镜像文件的内存地址区间之后的、且与所述主程序的镜像文件的内存地址区间距离最近的下一镜像文件的内存地址区间;
[0019]使用下一镜像文件的内存地址区间的起始内存地址替换所述主程序的内存地址区间的结束内存地址,得到主程序的镜像文件的修复后的内存地址区间。
[0020]在一个可选的实现方式中,所述根据所述目标指令的内存地址、所述目标内存地址区间的起始内存地址以及所述第一对应关系获取所述目标指令的符号信息,包括:
[0021]根据所述目标指令的内存地址以及所述目标内存地址区间的起始内存地址获取所述目标指令在目标镜像文件中的偏移地址;
[0022]根据所述偏移地址以及所述第一对应关系获取目标指令的符号信息。
[0023]在一个可选的实现方式中,所述根据所述目标指令的内存地址以及所述目标内存地址区间的起始内存地址获取所述目标指令在目标镜像文件中的偏移地址,包括:
[0024]计算所述目标指令的内存地址与所述目标内存地址区间的起始内存地址之间的差值;
[0025]根据所述差值获取所述目标指令在目标镜像文件中的偏移地址。
[0026]在一个可选的实现方式中,所述根据所述偏移地址以及所述第一对应关系获取目标指令的符号信息,包括:
[0027]在所述第一对应关系中查找所述偏移地址所在的偏移地址区间,然后在所述第一对应关系中查找所述偏移地址区间相对应的符号信息。
[0028]在一个可选的实现方式中,所述获取应用程序的指令在镜像文件中的偏移地址区间与应用程序的指令的符号信息之间的第一对应关系,包括:
[0029]获取应用程序的标识信息;
[0030]向云端发送携带所述标识信息的获取请求;所述获取请求用于获取应用程序的指令在镜像文件中的偏移地址区间与应用程序的指令的符号信息之间的第一对应关系;
[0031]接收云端根据所述标识信息返回的所述第一对应关系。
[0032]第二方面,本申请示出了一种数据处理装置,所述装置包括:
[0033]第一获取模块,用于在应用程序运行的过程中崩溃的情况下,获取应用程序中的各个镜像文件的内存地址区间;第二获取模块,用于获取应用程序的指令在镜像文件中的偏移地址区间与应用程序的指令的符号信息之间的第一对应关系;第三获取模块,用于获取应用程序中的崩溃相关的指令所在的镜像文件的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:在应用程序运行的过程中崩溃的情况下,获取应用程序中的各个镜像文件的内存地址区间;获取应用程序的指令在镜像文件中的偏移地址区间与应用程序的指令的符号信息之间的第一对应关系;以及获取应用程序中的崩溃相关的指令所在的镜像文件的文件名称与崩溃相关的指令的内存地址之间的第二对应关系;其中,符号信息至少包括指令所在的函数的函数名、函数所在的文件的文件名以及指令在文件中的位置;所述应用程序对应的安装包中的主程序的至少一个数据段被拆分为至少两个数据段;对应用程序中的各个镜像文件的内存地址区间中的主程序的镜像文件的内存地址区间修复,得到主程序的镜像文件的修复后的内存地址区间,修复后的内存地址区间包括至少两个数据段中的各个数据段的内存地址区间;以及,在第二对应关系中查找预设标识符的文件名称对应的目标指令的内存地址;在各个镜像文件的内存地址区间以及修复后的内存地址区间中,确定所述目标指令的内存地址所在的目标镜像文件的目标内存地址区间;根据所述目标指令的内存地址、所述目标内存地址区间的起始内存地址以及所述第一对应关系获取所述目标指令的符号信息;输出目标指令的符号信息,目标指令的符号信息至少包括目标指令所在的目标函数的函数名,目标函数所在的目标文件的文件名以及目标指令在目标文件中的位置。2.根据权利要求1所述的方法,其特征在于,所述对应用程序中的各个镜像文件的内存地址区间中的主程序的镜像文件的内存地址区间修复,得到修复后的主程序的镜像文件的修复后的内存地址区间,包括:在各个镜像文件的内存地址区间中确定主程序的镜像文件的内存地址区间以及位于所述主程序的镜像文件的内存地址区间之后的、且与所述主程序的镜像文件的内存地址区间距离最近的下一镜像文件的内存地址区间;使用下一镜像文件的内存地址区间的起始内存地址替换所述主程序的内存地址区间的结束内存地址,得到主程序的镜像文件的修复后的内存地址区间。3.根据权利要求1所述的方法,其特征在于,所述根据所述目标指令的内存地址、所述目标内存地址区间的起始内存地址以及所述第一对应关系获取所述目标指令的符号信息,包括:根据所述目标指令的内存地址以及所述目标内存地址区间的起始内存地址获取所述目标指令在目标镜像文件中的偏移地址;根据所述偏移地址以及所述第一对应关系获取目标指令的符号信息。4.根据权利要求3所述的方法,其特征在于,所述根据所述目标指令的内存地址以及所述目标内存地址区间的起始内存地址获取所述目标指令在目标镜像文件中的偏移地址,包括:计算所述目标指令的内存地址与所述目标内存地址区间的起始内存地址之间的差值;根据所述差值获取所述目标指令在目标镜像文件中的偏移地址。5.根据权利要求3所述的方法,其特征在于,所述根据所述偏移地址以及所述第一对应关系获取目标指令的符号信息,包括:在所述第一对应关系中查找所述偏移地址所在的偏移地址区间,然后在所述第一对应
关系中查找所述偏移地址区间相对应的符号信息。6.根据权利要求1所述的方法,其特征在于,所述获取应用程序的指令在镜像文件中的偏移地址区间与应用程序的指令的符号信息之间的第一对应关系,包括:获取应用程序的标识信息;向云端发送携带所述标识信息的获取请求;所述获取请求用于获取应用程序的指令在镜像文件中的偏移地址区间与应用程序的指令的符号信息之间的第一对应关系;接收云端根据所述标识信息返回的所述第一对应关系。7.一种数据处理装置,其特征在于,所述装置包括:第一获取模块,用于在应用程序运行的过程中崩溃的情况下,获取应用程序中的...

【专利技术属性】
技术研发人员:邓竹立彭飞
申请(专利权)人:北京五八信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1