一种符号翻译方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:27060543 阅读:14 留言:0更新日期:2021-01-15 14:40
本申请涉及人工智能领域,提供了一种符号翻译方法、装置、设备和计算机可读存储介质。所述方法包括:当应用程序通过预设入口函数调用第一对象方法时,拦截所述预设入口函数;将预设入口函数替换为新建函数;在新建函数中调用原系统函数之前,通过向第一预定义函数传入第二对象的指针、第二对象对应的第二对象方法名以及当前链接寄存器,调用第一预定义函数;通过调用原系统函数和第二对象对应的第二对象方法,并根据返回的链接寄存器的值,获取第一对象方法对应的函数符号。相比于现有技术,本申请提供的技术方案结合了人工智能技术,使得在应用程序崩溃时,亦能够实现符号翻译。

【技术实现步骤摘要】
一种符号翻译方法、装置、设备和计算机可读存储介质
本申请涉及计算机软件领域,特别涉及一种符号翻译方法、装置、设备和计算机可读存储介质。
技术介绍
应用,例如移动终端的App的崩溃(crash),通常是指因为执行了某些不被允许的操作,这个操作触发系统抛出异常而该异常又没有被及时处理,导致该应用被杀掉的现象。为了定位崩溃这一异常,需要获取到栈帧(frame)的返回地址,而栈帧的返回地址是十六进制的内存数据,需要将其转化为可读的符号即符号翻译。现有的符号翻译方法是确认堆栈地址所属镜像文件,然后,通过该镜像文件的符号表,查询到函数调用地址对应的符号名即完成符号翻译。然而,在真机调试或应用使用Release模式时,为了优化方案,是将某些符号表存储到磁盘上的dSYM文件中,无法在运行时解析,因而无法执行上述现有的符号翻译方法。
技术实现思路
本申请实施例提供了一种符号翻译方法、装置、设备和计算机可读存储介质,以在真机调试或应用使用Release模式时亦能够实现符号翻译。该技术方案如下:一方面,提供了一种符号翻译方法,该方法包括:当应用程序通过预设入口函数调用第一对象方法时,拦截所述预设入口函数;将所述预设入口函数替换为新建函数;在所述新建函数中调用原系统函数之前,通过向第一预定义函数传入第二对象的指针、所述第二对象对应的第二对象方法名以及当前链接寄存器,调用所述第一预定义函数;通过调用原系统函数和所述第二对象对应的第二对象方法,并根据返回的所述链接寄存器的值,获取所述第一对象方法对应的函数符号。一方面,提供了一种符号翻译装置,该装置包括:拦截模块,用于当应用程序通过预设入口函数调用第一对象方法时,拦截所述预设入口函数;替换模块,用于将所述预设入口函数替换为新建函数;第一调用模块,用于在所述新建函数中调用原系统函数之前,通过向第一预定义函数传入第二对象的指针、所述第二对象对应的第二对象方法名以及当前链接寄存器,调用所述第一预定义函数;函数符号获取模块,用于通过调用原系统函数和所述第二对象对应的第二对象方法,并根据返回的所述链接寄存器的值,获取所述第一对象方法对应的函数符号。一方面,提供了一种计算机设备,该计算设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,该计算机程序代码由该一个或多个处理器加载并执行以实现该符号翻译方法所执行的操作。一方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序由处理器加载并执行以实现该符号翻译方法所执行的操作。从上述本申请提供的技术方案可知,由于可通过拦截预设入口函数将链接寄存器的值映射得到函数符号,而链接寄存器属于内存的某个存储单元,其属于动态保存的值,因此,与现有技术在真机调试或应用使用Release模式时,将某些符号表存储到磁盘上的dSYM文件而无法实现符号翻译相比,本申请提供的技术方案使得在应用程序崩溃时,亦能够实现符号翻译。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的符号翻译方法的流程图;图2是本申请实施例提供的符号翻译的装置的应用场景示意图;图3是本申请实施例提供的基于链接寄存器的方法栈回溯示意;图4是本申请实施例提供的符号翻译装置的结构示意图;图5是本申请实施例提供的计算机设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。本申请实施例基于计算机设备作为执行主体来进行介绍。此处的计算机设备可以是服务器,也可以是终端,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,而终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。上述终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。本申请实施例实施的载体即云服务器,其具体是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术的服务器,其中,云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云技术需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,每个物品都存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾,通过云计算来实现。如前所述,云技术需要大量的数据资源以及基于大量数据资源的计算能力,这必然涉及大数据和人工智能云服务等作为支撑基础,其中的大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产,而随着云技术时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据,适用于大数据的技术包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。另一方面,人工智能(ArtificialIntelligence,AI)与上述的大数据和/或云技术相结合,产生了人工智能云服务即AIaaS(AIasaService)。AIaaS是目前主流的一种人工智能平台的服务方式,具体而言,AIaaS平台将几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。AI是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换言之,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器;另外,AI也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能,涉及领域广泛,既有硬件层面的技术也有软件层面的技术,其中,软件层面的技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。AIaaS类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。请参阅图1,图1为本申本文档来自技高网...

【技术保护点】
1.一种符号翻译方法,其特征在于,所述方法包括:/n当应用程序通过预设入口函数调用第一对象方法时,拦截所述预设入口函数;/n将所述预设入口函数替换为新建函数;/n在所述新建函数中调用原系统函数之前,通过向第一预定义函数传入第二对象的指针、所述第二对象对应的第二对象方法名以及当前链接寄存器,调用所述第一预定义函数;/n通过调用原系统函数和所述第二对象对应的第二对象方法,并根据返回的所述链接寄存器的值,获取所述第一对象方法对应的函数符号。/n

【技术特征摘要】
1.一种符号翻译方法,其特征在于,所述方法包括:
当应用程序通过预设入口函数调用第一对象方法时,拦截所述预设入口函数;
将所述预设入口函数替换为新建函数;
在所述新建函数中调用原系统函数之前,通过向第一预定义函数传入第二对象的指针、所述第二对象对应的第二对象方法名以及当前链接寄存器,调用所述第一预定义函数;
通过调用原系统函数和所述第二对象对应的第二对象方法,并根据返回的所述链接寄存器的值,获取所述第一对象方法对应的函数符号。


2.如权利要求1所述符号翻译方法,其特征在于,所述通过调用原系统函数和所述第二对象对应的第二对象方法,并根据返回的所述链接寄存器的值,获取所述第一对象方法对应的函数符号,包括:
通过调用所述第二对象方法,得到返回的所述链接寄存器的值,所述返回的链接寄存器的值为调用所述第二对象方法完成之后将要执行的下一条指令的地址;
将所述返回的寄存器的值映射为所述第一方法对象对应的函数符号。


3.如权利要求2所述符号翻译方法,其特征在于,所述通过调用所述第二对象方法,得到返回的所述链接寄存器的值,包括:
调用所述原系统函数;
在所述原系统函数中调用所述第二对象方法;
返回所述链接寄存器的值。


4.如权利要求1至3任意一项所述符号翻译方法,其特征在于,所述调用所述第一预定义函数之后,还包括:
在所述第一预定义函数中,将所述第二对象的标识和所述第二对象方法名组成第二函数符号;
保存所述链接寄存器的值与所述第二函数符号的对应关系。


5.如权利要求1至3任意一项所述符号翻译方法,其特征在于,所述方法...

【专利技术属性】
技术研发人员:李峰张晓生王俊俊
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1