[发明专利]确定崩溃归属的方法、装置、电子设备及存储介质在审
申请号: | 202010218782.1 | 申请日: | 2020-03-25 |
公开(公告)号: | CN111090593A | 公开(公告)日: | 2020-05-01 |
发明(设计)人: | 程展斌 | 申请(专利权)人: | 同盾控股有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州创智卓英知识产权代理事务所(普通合伙) 33324 | 代理人: | 张迪 |
地址: | 311121 浙江省杭州市余*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 确定 崩溃 归属 方法 装置 电子设备 存储 介质 | ||
本发明公开了一种确定崩溃归属的方法,涉及计算机技术领域,包括以下步骤:获取崩溃信息;解析崩溃信息,得到调用地址;获取SDK编译文件,基于SDK编译文件,计算得到SDK运行地址区间;判断调用地址是否在SDK运行地址区间内,若是,则保存崩溃信息,并上传崩溃信息到远程服务器。该方法通过分析判断崩溃信息对应的调用地址是否落在SDK运行地址区间内,能够快速准确地确定崩溃所在的SDK,减少SDK崩溃的排查时间和工作量,提升分析SDK崩溃的效率,降低开发成本;及时上报SDK崩溃,有利于加快SDK开发者处理崩溃的速度,进而及时优化改进SDK,从而提高SDK的稳定性。本发明还公开了一种确定崩溃归属的装置、电子设备和计算机存储介质。
技术领域
本发明涉及计算机技术领域,尤其涉及一种确定崩溃归属的方法、装置、电子设备及存储介质。
背景技术
伴随移动平台SDK开发的热潮,及时发现应用程序中SDK引发的线上崩溃一直是一个热门的话题。iOS操作系统中,SDK分为静态库和动态库(Embedded Framework)两种。动态库与应用程序所属不同的二进制模块,因此在调用SDK中方法发生崩溃时,会在其崩溃栈的信息中显示出动态库SDK的名称,通过比较SDK名称,就可以确定是否是当前SDK引发的崩溃。
而静态库与应用程序所属同一个二进制模块,其代码会被加入到应用程序的代码段中。当应用发生崩溃,调用SDK中的方法发生崩溃时,崩溃栈中显示的名字将是应用程序的可执行文件名,这与应用程序中的代码引发的崩溃是相同的,导致SDK开发者无法区别,SDK开发者也就无法对SDK进行优化改进。
目前大多通过采用静态库崩溃全捕获,把应用程序引发的崩溃也收集上来,对相关信息进行筛选和分析,从而确定崩溃所在的SDK,这种方法大大增加了排查SDK崩溃的工作量和所需时间,无法快速对崩溃进行定位,SDK开发者无法及时优化改进SDK。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种确定崩溃归属的方法,其通过解析崩溃信息得到的调用地址,与SDK运行地址区间进行比对判断,迅速定位崩溃所在SDK,并及时上报崩溃信息,以便SDK开发者进行优化改进。
本发明的目的之一采用以下技术方案实现:
获取崩溃信息;
解析所述崩溃信息,得到调用地址;
获取SDK编译文件,基于所述SDK编译文件,计算得到SDK运行地址区间;
判断所述调用地址是否在所述SDK运行地址区间内,若是,则保存所述崩溃信息,并上传所述崩溃信息到远程服务器。
进一步地,获取崩溃信息,包括:通过注册崩溃捕获函数,捕获异常信息和设备信息,并记录崩溃调用栈。
进一步地,所述崩溃信息包括崩溃栈、崩溃发生时间、设备版本、设备型号、CPU架构、网络状态、崩溃类型、崩溃原因。
进一步地,基于所述SDK编译文件,计算得到SDK运行地址区间,包括:
解析所述SDK编译文件,得到SDK运行地址区间起始函数的地址偏移;
获取所述SDK运行地址区间的起始地址和结束地址;
根据所述起始地址、所述地址偏移和所述结束地址,得到所述SDK运行地址区间。
进一步地,解析所述SDK编译文件,包括:通过反汇编软件分析所述SDK编译文件,得到所述SDK运行地址区间起始函数在不同架构下的地址偏移。
进一步地,所述SDK编译文件包括第一个编译文件和最后一个编译文件,获取所述SDK运行地址区间的起始地址和结束地址,包括:
调用所述第一个编译文件中的获取地址函数,得到所述起始地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同盾控股有限公司,未经同盾控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010218782.1/2.html,转载请声明来源钻瓜专利网。