[发明专利]一种处理崩溃文件中堆栈地址的方法、装置及系统有效
申请号: | 201710041483.3 | 申请日: | 2017-01-20 |
公开(公告)号: | CN108334515B | 公开(公告)日: | 2022-07-15 |
发明(设计)人: | 丘立斌;谢劲松;储龙江 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/16 | 分类号: | G06F16/16;G06F16/17 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 李辉 |
地址: | 英属开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 处理 崩溃 文件 堆栈 地址 方法 装置 系统 | ||
本申请提供一种处理崩溃文件中堆栈地址的方法、装置及系统。所述方法包括:解析崩溃文件,获取所述崩溃文件中的本地崩溃地址和本地崩溃基地址;根据所述本地崩溃地址和本地崩溃基地址计算出真实崩溃地址;在预先构建的地址符号映射表中查询所述真实崩溃地址对应的符号表数据;根据所述查询到的符号表数据计算偏移量;基于所述查询到的符号表数据和所述偏移量确定所述崩溃文件中堆栈地址的符号化结果。利用本申请各个实施例,可以准确对多个崩溃文件中的崩溃地址进行了转换,实现了批量化的处理崩溃文件,大大降低符号化处理对原应用操作系统系统的依赖,提高了处理崩溃文件的转换效率,提高崩溃文件的处理效率。
技术领域
本申请属于通信数据处理技术领域,尤其涉及一种处理崩溃文件中堆栈地址的方法、装置及系统。
背景技术
在智能终端的应用的实际开发过程,或者在用户在智能终端中使用应用程序的时候,经常会出现应用程序崩溃的情况,这会导致用户对应用程序的不满。为了对应用程序出现崩溃的地方进行修复,通常在基于iOS(ihpone operation system,ihpone操作系统)的应用程序发生崩溃时,会产生一个崩溃文件,该崩溃文件中记录了应用程序崩溃时调用的调用堆栈地址,通过对该崩溃文件进行符号化处理,包括将发生崩溃时的十六进制堆栈地址解析为可人为可识别的对应程序代码中指定类、函数和行号等信息。
目前,在开发iOS应用程序的过程中,开发人员在监控到对应的iOS应用程序发生崩溃时,通常将运行iOS应用程序的移动终端与具有iOS操作系统的终端(例如,电脑)相连,并将崩溃文件和移动终端中的系统库文件上传至终端中,终端查找系统中是存在符号化工具。如果存在符号化工具例如symbolicatecrash,则查询终端中系统库文件所在目录中是否存在与崩溃文件对应的系统库文件,如果存在,则进一步判断系统库文件是否存在与从崩溃文件中读取到的文件标识信息相同的系统库子文件。如果存在系统库子文件,则符号化工具根据系统库子文件对崩溃文件进行符号化处理,以将崩溃文件中的崩溃地址信息转换为函数信息,方便开发人员对对崩溃的地方进行修复,其中,系统库子文件中包含符号化崩溃文件中的崩溃地址信息的符号表信息。图1是一个利用苹果公司提供的系统库符号化工具进行符号化处理的流程示意图,图1中atos、lipo等为系统提供的符号化工具,uuid是用来唯一标识一个系统库文件的,查找到崩溃文件对应的系统库后,根据崩溃文件中某个系统库的uuid查询本地电脑系统库是否存在uuid一致的系统库。
然而,目前iOS系统的应用在产生崩溃文件后,对该崩溃文件中系统库的崩溃地址进行符号化处理时需要借助苹果电脑自带的符号化工具进行符号化,如symbolicatecrash符号化工具,且需要保证产生崩溃文件的iOS系统库存在当前的电脑中,因此无法满足批量符号化多个系统库版本下的多个崩溃文件中的系统库调用的需求,严重影响iOS开发人员定位程序的缺陷及解决问题的效率。现有的这种符号化方式对终端的操作系统的依赖性强,例如在切换处理终端的过程中,用户需要将分析崩溃文件对应的系统库子文件手动移动至正确的位置,以使Xcode能找到它们,如果用户未移动对应的系统库子文件,则无法准确对崩溃文件进行符号化,符号化成功率较低。并且系统库调用的符号化过程是一个比较复杂的过程,如果用户需要批量的符号化崩溃文件,在符号化崩溃文件的过程中,用户需要多次使用符号化工具,并且由于终端中所保存的不同版本的系统库文件有限,终端无法准确批量化的符号化多个崩溃文件。一个崩溃文件中包含有几百个系统库的崩溃地址,如果成千上万个崩溃文件同时输入的话,该方案符号化就会变得很耗内存,不能满足快速解析的处理需求。
当然,除iOS应用操作系统外,其他的应用操作系统(一些非开放但提供API接口的终端操作系统)同样面临类似上述iOS系统的情况。因此,现有中应用的运行操作系统下产生的崩溃文件进行符号化处理的方式,处理效率低下,无法满足批量符号化多个系统库版本下的多个崩溃文件中的系统库调用的需求,严重影响系统开发人员定位程序的缺陷及解决问题的效率。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710041483.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:微型高速无内圈滚珠轴承及其装配装置
- 下一篇:一种烟草生产线入料端落料气锁