[发明专利]一种iOS崩溃数据分类与统计的方法和装置有效
申请号: | 201710232014.X | 申请日: | 2017-04-11 |
公开(公告)号: | CN108694108B | 公开(公告)日: | 2021-09-07 |
发明(设计)人: | 程剑锋;吴迪;朱孝瑾;王孝满 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F11/07 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;姜劲 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 ios 崩溃 数据 分类 统计 方法 装置 | ||
本发明实施例提供一种iOS崩溃数据分类与统计的方法和装置。该方法包括:对崩溃数据进行自动化分类,采用对调用栈逆向查找方式,提取整个调用栈中的属于应用程序的调用语句,并输出初步分类报表;通过编写的配置文件,不断地对未被分类的崩溃数据进行迭代分类,并在每一次迭代后输出递归分类报表;以及将所述初步分类报表和所述递归分类报表进行整合,并结合上一次崩溃分析的最终报告,输出本次崩溃分析的最终报告。
技术领域
本发明涉及计算机领域,尤其涉及一种iOS(iphone Operation System)崩溃数据分类与统计的方法和装置。
背景技术
目前运行在iOS系统上的app,在崩溃发生后(俗称“应用闪退”)通常会将崩溃发生时的堆栈信息、设备信息等上报到服务器,有些是通过apple的官方崩溃收集来完成,而更多的app是选择使用友盟、腾讯Bugly等第三方崩溃收集分析商来收集数据。
但是,当收到海量的崩溃数据后(假定一条崩溃数据单独的放置在一个文本文件中),如何对这些崩溃文件进行分类,如何有效地界定哪些崩溃文件是属于同一个bug(在系统或程序中,隐藏着的一些未被发现的缺陷或问题,是引发崩溃的原因)导致的,如何对这些崩溃文件进行统计分析,以此来更好地提升app的稳定性,这些一直是业界的难题,这也是本发明需要解决的主要问题。
在上传的崩溃信息中,第三方崩溃SDK、大公司自己开发的崩溃收集SDK以及苹果自带的崩溃收集采集的内容差异很大,但都具备以下数据:崩溃发生时间、app版本和build号、系统版本、设备类型、启动时间、错误类型、崩溃线程调用栈信息等。本发明为了追求通用性,也仅将原始数据限定为以上几项内容。
目前大多现有技术只是简单的根据崩溃线程调用栈顶层的语句匹配或者是崩溃栈完全匹配作为崩溃分类的依据。并没有一套系统化的完整方案来实现精确分类。具体地:
首先,获取大量崩溃日志,每次的崩溃日志都是一个文件。
然后,使用Symbolicatecrash对所有的崩溃日志进行调用栈符号化。
接下来,对这些崩溃文件进行分类操作。
最后,直接提取调用栈栈顶的调用语句做比较,如果栈顶函数调用语句一致的,那么就归类为同类崩溃。
由于栈顶调用语句,是程序最后执行的地方,也是崩溃发生的语句,所以,直接根据栈顶语句对崩溃进行了粗浅的分类。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
由于现有技术方案直接依据栈顶调用语句对崩溃做分类,这会导致有些情况下崩溃原因定位不准,因为崩溃不一定是由于调用栈顶层代码引起的,而是有由中间的某一句调用触发的,我们真正需要定位的是那一句引发崩溃的调用。比如说,程序中有一个abort()语句,表示在开发者要主动抛出异常,终止应用,这种语句在系统库中比较常用,在调用系统函数时,发现调用有误或者参数不对,那么系统就有可能会调用该语句,终止应用,此时,调用栈栈顶语句就是abort()。但是,这种崩溃,究其原因,是错误的调用了系统函数导致的,比如参数错误、环境配置有误等,那么应该把崩溃原因定位到调用系统函数的那一条语句上,而不是abort()这条语句,这样做的原因是,第一,系统函数是不可控的,如果发生异常,则只能通过修改自己的调用方式或者替换掉调用语句来修复崩溃;第二,很多系统函数最后都会调用abort()来终止应用,而触发它们的原因是由于调用方式有误/参数配置有误导致的,应该要找的是触发abort()的真实原因,而不是abort()这一条触发崩溃的语句。
现有方案的分类,会导致同一个崩溃下,隐藏有多个真实的崩溃原因,分类不够彻底。就如刚才所说,一个abort()终止语句,有很多种原因可以导致应用最后调用abort(),应该对导致调用abort()的原因进行分类,而不是针对这一条语句。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710232014.X/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置