一种软件工具包地址定位方法及装置制造方法及图纸

技术编号:32970323 阅读:10 留言:0更新日期:2022-04-09 11:35
本公开提供了一种软件工具包地址定位方法,首先获取应用程序的链接映射文件,以及所述应用程序的至少一个软件开发工具包的名称信息;然后,基于每个所述软件开发工具包的名称信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息;最后,基于查找到的各个符号信息指示的起始地址及存储空间占用大小,确定所述软件开发工具包的地址信息。本公开实施例根据链接映射文件及软件开发工具包的名称信息,查找出软件开发工具包对应的可执行文件的符号信息,再根据符号信息的起始地址及存储空间占用大小,确定软件开发工具包的地址信息,不需要对每个SDK代码进行修改,方便快捷,无代码入侵性。无代码入侵性。无代码入侵性。

【技术实现步骤摘要】
一种软件工具包地址定位方法及装置


[0001]本公开涉及计算机
,具体而言,涉及一种软件工具包地址定位方法及装置。

技术介绍

[0002]在进行应用程序的崩溃监控时,通常对应用程序进行整体的监控,也即通常只判断发生崩溃的应用程序,而难以定位到发生崩溃的具体组件的地址,其原因是难以判断组件对应的地址范围,进而难以判断崩溃发生地址所属的组件。在应用程序中,组件通常以软件开发工具包(Software Development Kit,SDK,又称软件工具包)的形式存在,若想要确定SDK的地址信息,需要对每个SDK都追加新的源文件,该过程操作复杂,需要开发人员手动进行添加,效率较低,还容易导致代码在二进制重排后的结果不可靠。

技术实现思路

[0003]本公开实施例至少提供一种软件工具包地址定位方法及装置。
[0004]第一方面,本公开实施例提供了一种软件工具包地址定位方法,包括:
[0005]获取应用程序的链接映射文件,以及所述应用程序的至少一个软件开发工具包的名称信息;
[0006]基于每个所述软件开发工具包的名称信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息;
[0007]基于查找到的各个符号信息指示的起始地址及存储空间占用大小,确定所述软件开发工具包的地址信息。
[0008]一种可选的实施方式中,所述方法还包括:
[0009]在检测到应用程序发生崩溃的情况下,获取发生崩溃的目标地址;
[0010]基于发生崩溃时所述应用程序的地址空间偏移量,以及所述至少一个软件开发工具包的地址信息,分别确定每个所述软件开发工具包经过地址空间偏移后的绝对地址;
[0011]基于所述目标地址及所述绝对地址,确定所述应用程序中发生崩溃的目标软件开发工具包。
[0012]一种可选的实施方式中,基于每个所述软件开发工具包的名称信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息,包括:
[0013]基于所述软件开发工具包的名称信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件,并确定所述各个可执行文件被分配的标识信息;
[0014]基于所述标识信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息。
[0015]一种可选的实施方式中,所述基于所述标识信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息,包括:
[0016]根据所述链接映射文件的符号信息列表中各个符号的类型信息,从所述符号信息
列表中的符号信息中筛选出多个候选符号信息;
[0017]从所述候选符号信息中,查找与所述软件开发工具包对应的各个可执行文件的标识信息匹配的符号信息,作为所述各个可执行文件的符号信息。
[0018]一种可选的实施方式中,所述基于查找到的各个符号信息指示的起始地址及存储空间占用大小,确定所述软件开发工具包的地址信息,包括:
[0019]基于所述各个符号信息中的起始地址及存储空间占用信息,确定各个符号对应的地址范围;
[0020]对所述各个符号的地址范围进行整合,得到至少一个目标地址范围;每个目标地址范围由至少一个符号的地址范围构成;
[0021]基于所述至少一个目标地址范围对应的符号所属的软件开发工具包,确定所述应用程序的至少一个软件开发工具包的地址信息。
[0022]一种可选的实施方式中,所述对所述各个符号的地址范围进行整合,得到至少一个目标地址范围,包括:
[0023]基于所述各个符号的地址范围指示的起始地址与终止地址,若任一符号的终止地址与其它符号的起始地址相邻,则将所述任一符号和所述其它符号的地址范围进行整合,得到至少一个目标地址范围;或者,
[0024]基于所述各个符号信息在所述链接映射文件中所在的行数,将对应的行数相邻的符号的地址范围进行整合,得到至少一个目标地址范围。
[0025]第二方面,本公开实施例还提供一种软件工具包地址定位装置,包括:
[0026]获取模块,用于获取应用程序的链接映射文件,以及所述应用程序的至少一个软件开发工具包的名称信息;
[0027]查找模块,用于基于每个所述软件开发工具包的名称信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息;
[0028]定位模块,用于基于查找到的各个符号信息指示的起始地址及存储空间占用大小,确定所述软件开发工具包的地址信息。
[0029]一种可选的实施方式中,所述定位模块还用于:
[0030]在检测到应用程序发生崩溃的情况下,获取发生崩溃的目标地址;
[0031]基于发生崩溃时所述应用程序的地址空间偏移量,以及所述至少一个软件开发工具包的地址信息,分别确定每个所述软件开发工具包经过地址空间偏移后的绝对地址;
[0032]基于所述目标地址及所述绝对地址,确定所述应用程序中发生崩溃的目标软件开发工具包。
[0033]一种可选的实施方式中,所述查找模块具体用于:
[0034]基于所述软件开发工具包的名称信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件,并确定所述各个可执行文件被分配的标识信息;
[0035]基于所述标识信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息。
[0036]一种可选的实施方式中,所述查找模块在基于所述标识信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息时,用于:
[0037]根据所述链接映射文件的符号信息列表中各个符号的类型信息,从所述符号信息
列表中的符号信息中筛选出多个候选符号信息;
[0038]从所述候选符号信息中,查找与所述软件开发工具包对应的各个可执行文件的标识信息匹配的符号信息,作为所述各个可执行文件的符号信息。
[0039]一种可选的实施方式中,所述定位模块在基于查找到的各个符号信息指示的起始地址及存储空间占用大小,确定所述软件开发工具包的地址信息时,用于:
[0040]基于所述各个符号信息中的起始地址及存储空间占用信息,确定各个符号对应的地址范围;
[0041]对所述各个符号的地址范围进行整合,得到至少一个目标地址范围;每个目标地址范围由至少一个符号的地址范围构成;
[0042]基于所述至少一个目标地址范围对应的符号所属的软件开发工具包,确定所述应用程序的至少一个软件开发工具包的地址信息。
[0043]一种可选的实施方式中,所述定位模块在对所述各个符号的地址范围进行整合,得到至少一个目标地址范围时,用于:
[0044]基于所述各个符号的地址范围指示的起始地址与终止地址,若任一符号的终止地址与其它符号的起始地址相邻,则将所述任一符号和所述其它符号的地址范围进行整合,得到至少一个目标地址范围;或者,
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件工具包地址定位方法,其特征在于,包括:获取应用程序的链接映射文件,以及所述应用程序的至少一个软件开发工具包的名称信息;基于每个所述软件开发工具包的名称信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息;基于查找到的各个符号信息指示的起始地址及存储空间占用大小,确定所述软件开发工具包的地址信息。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在检测到应用程序发生崩溃的情况下,获取发生崩溃的目标地址;基于发生崩溃时所述应用程序的地址空间偏移量,以及所述至少一个软件开发工具包的地址信息,分别确定每个所述软件开发工具包经过地址空间偏移后的绝对地址;基于所述目标地址及所述绝对地址,确定所述应用程序中发生崩溃的目标软件开发工具包。3.根据权利要求1所述的方法,其特征在于,所述基于每个所述软件开发工具包的名称信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息,包括:基于所述软件开发工具包的名称信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件,并确定所述各个可执行文件被分配的标识信息;基于所述标识信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息。4.根据权利要求3所述的方法,其特征在于,所述基于所述标识信息,从所述链接映射文件中查找所述软件开发工具包对应的各个可执行文件的符号信息,包括:根据所述链接映射文件的符号信息列表中各个符号的类型信息,从所述符号信息列表中的符号信息中筛选出多个候选符号信息;从所述候选符号信息中,查找与所述软件开发工具包对应的各个可执行文件的标识信息匹配的符号信息,作为所述各个可执行文件的符号信息。5.根据权利要求1所述的方法,其特征在于,所述基于查找到的各个符号信息指示的起始地址及存储空间占用大小,确定所述软件开发工具包的地址信息,包括:基于所述各个符号信息中的起始地址及存储空间占用信息,确定各个符号对应的地址范围;对所述各个符号的地址范围进行整合,得到至少一个目标地址范围;每个目...

【专利技术属性】
技术研发人员:许茗豪丰亚东
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:

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

1