首页> 中国专利> 应用程序的崩溃统计方法、装置、计算机设备及存储介质

应用程序的崩溃统计方法、装置、计算机设备及存储介质

摘要

本发明实施例公开了一种应用程序的崩溃统计方法、装置、计算机设备及存储介质。该方法包括:获取客户端上报的应用程序的崩溃事件,并提取所述崩溃事件中包括的崩溃堆栈描述信息,崩溃堆栈描述信息中包括至少一个崩溃堆栈描述项;在所述崩溃堆栈描述信息中,提取与业务代码关联的至少一个目标崩溃堆栈描述项;根据各所述目标崩溃堆栈描述项,对所述应用程序进行崩溃统计。使用本发明的技术方案,可以实现基于堆栈信息对应用程序进行崩溃统计,从而更直观的反应崩溃的发生原因,提高了应用程序的修复效率。

著录项

  • 公开/公告号CN112306833A

    专利类型发明专利

  • 公开/公告日2021-02-02

    原文格式PDF

  • 申请/专利权人 广州虎牙科技有限公司;

    申请/专利号CN202011173313.9

  • 发明设计人 陈国豪;黎河军;

    申请日2020-10-28

  • 分类号G06F11/34(20060101);

  • 代理机构11332 北京品源专利代理有限公司;

  • 代理人孟金喆

  • 地址 511400 广东省广州市番禺区钟村街(汉溪商业中心)泽溪街13号1301

  • 入库时间 2023-06-19 09:58:59

说明书

技术领域

本发明实施例涉及计算机技术领域,尤其涉及一种应用程序的崩溃统计方法、装置、计算机设备及存储介质。

背景技术

随着移动互联网的不断发展,市面上涌现出各种移动终端应用程序,满足人们日常生活中的各种服务需求。应用程序在运行过程中可能会发生崩溃,发生崩溃后,终端通常会将崩溃信息上报至服务器,服务器对各终端上传的各崩溃信息进行统计归类,以便服务器侧的工作人员及时对应用程序进行修复。

现有技术中,对崩溃信息进行统计归类的方式主要是根据崩溃的底层原因进行归类,示例性的,崩溃的底层原因可能是数组越界或者杀进程信号等。现有技术中的这种根据底层原因对崩溃进行归类统计的方式,只能反映崩溃的属性,无法对出现异常的业务代码进行定位。

发明内容

本发明实施例提供了一种应用程序的崩溃统计方法、装置、设备及存储介质,以实现基于堆栈信息对应用程序进行崩溃统计,从而更直观的反应崩溃的发生原因,提高应用程序的修复效率。

第一方面,本发明实施例提供了一种应用程序的崩溃统计方法,包括:

获取客户端上报的应用程序的崩溃事件,并提取所述崩溃事件中包括的崩溃堆栈描述信息,崩溃堆栈描述信息中包括至少一个崩溃堆栈描述项;

在所述崩溃堆栈描述信息中,提取与业务代码关联的至少一个目标崩溃堆栈描述项;

根据各所述目标崩溃堆栈描述项,对所述应用程序进行崩溃统计。

第二方面,本发明实施例还提供了一种应用程序的崩溃统计装置,包括:

崩溃堆栈描述信息提取模块,用于获取客户端上报的应用程序的崩溃事件,并提取所述崩溃事件中包括的崩溃堆栈描述信息,崩溃堆栈描述信息中包括至少一个崩溃堆栈描述项;

目标崩溃堆栈描述项提取模块,用于在所述崩溃堆栈描述信息中,提取与业务代码关联的至少一个目标崩溃堆栈描述项;

崩溃统计模块,用于根据各所述目标崩溃堆栈描述项,对所述应用程序进行崩溃统计。

第三方面,本发明实施例还提供了一种电子设备,电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例提供的应用程序的崩溃统计方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的应用程序的崩溃统计方法。

本发明实施例的技术方案通过获取客户端上报的应用程序的崩溃事件,并提取崩溃事件中的崩溃堆栈描述信息,在崩溃堆栈描述信息的崩溃堆栈描述项中提取与业务代码关联的目标崩溃堆栈描述项,进行崩溃统计。解决了现有技术中根据底层原因对崩溃进行归类统计的方式,只能反映崩溃的属性,无法对出现异常的业务代码进行定位的问题,实现了基于堆栈信息对应用程序进行崩溃统计,能够更直观的反应崩溃的发生原因,从而提高了应用程序的修复效率。

附图说明

图1a是本发明实施例一中的一种应用程序的崩溃统计方法的流程图;

图1b是适用于本发明实施例中的一种崩溃堆栈描述信息和崩溃堆栈描述项的示意图;

图2a是本发明实施例二中的一种应用程序的崩溃统计方法的流程图;

图2b是适用于本发明实施例中的一种库名的示意图;

图2c是适用于本发明实施例中的一种崩溃统计结果的示意图;

图3是本发明实施例三中的一种应用程序的崩溃统计装置的结构示意图;

图4本发明实施例四中的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1a是本发明实施例一中的一种应用程序的崩溃统计方法的流程图,本实施例可适用于对客户端中的应用程序进行崩溃统计的情况,该方法可以由应用程序的崩溃统计装置来执行,该装置可以由软件,和/或硬件的方式来实现,并一般可以集成在终端设备或者服务器中。

如图1a所示,该方法包括:

S110、获取客户端上报的应用程序的崩溃事件,并提取所述崩溃事件中包括的崩溃堆栈描述信息,崩溃堆栈描述信息中包括至少一个崩溃堆栈描述项。

其中,崩溃是指应用程序的进程停止工作或消失,崩溃的发生原因有很多,可以是函数栈溢出、数组越界访问或者指针的目标对象不可用等等。崩溃堆栈描述信息是指客户端收集的应用程序在发生崩溃时的堆栈信息,也即应用程序在发生崩溃时的函数被调用情况相关的信息。图1b提供了一种崩溃堆栈描述信息和崩溃堆栈描述项的示意图,图1b方框内的信息即为崩溃堆栈描述信息。崩溃堆栈描述信息中包括多个崩溃堆栈描述项,图1b方框内0-4行,每行即对应一个崩溃堆栈描述项。

应用程序发生崩溃时,客户端收集崩溃堆栈描述信息,并根据崩溃堆栈描述信息生成崩溃事件,将崩溃事件上报至服务器。

可选的,崩溃堆栈描述项中可以包括:与崩溃代码对应的库名、类名以及方法名。

崩溃代码是指与应用进程发生崩溃相关的源代码,崩溃代码中包括业务代码和系统代码,业务代码是指由开发人员编写的、直接用于实现某项需求的代码,系统代码是指可以脱离业务而存在的代码。

库名是指函数库的名称,示例性的,图1b中的“libhymediatrans.so”即为一个库名。类名是指引用数据类型的名称,示例性的,图1b中的“timezone”即为一个类名。方法名是调用的方法的名称,示例性的,图1b中的“IoEngine”即为一个方法名。

S120、在所述崩溃堆栈描述信息中,提取与业务代码关联的至少一个目标崩溃堆栈描述项。

在崩溃堆栈描述信息中的各项崩溃堆栈描述项中,只提取与业务代码关联的崩溃堆栈描述项作为目标崩溃堆栈描述项。

在本发明实施例中,业务代码是由开发人员编写的代码,只提取与业务代码相关的崩溃堆栈描述项进行崩溃统计,有效排除了系统代码关联的崩溃堆栈描述项,可以实现基于业务代码对崩溃问题进行归类,可以使开发人员直接定位崩溃发生的具体原因,从而在一定层面上提高了应用程序崩溃的修复效率。

S130、根据各所述目标崩溃堆栈描述项,对所述应用程序进行崩溃统计。

根据与业务代码关联的各项崩溃堆栈描述项,对应用程序进行崩溃统计,将目标崩溃堆栈描述项相同的应用程序的崩溃事件归为一类,可以实现根据错误的业务代码对崩溃事件进行归类,也即根据崩溃发生的具体原因对崩溃事件进行归类统计。这样设置可以使开发人员在以崩溃统计结果作为数据依据进行故障分析时,可以着眼于实际错误的业务代码进行故障排查,从而提高了应用程序崩溃的修复效率。

本发明实施例的技术方案,通过获取客户端上报的应用程序的崩溃事件,并提取崩溃事件中的崩溃堆栈描述信息,在崩溃堆栈描述信息的崩溃堆栈描述项中提取与业务代码关联的目标崩溃堆栈描述项,进行崩溃统计。解决了现有技术中根据底层原因对崩溃进行归类统计的方式,只能反映崩溃的属性,无法对出现异常的业务代码进行定位的问题,实现了基于堆栈信息对应用程序进行崩溃统计,能够更直观的反应崩溃的发生原因,从而提高了应用程序的修复效率。

可选的,应用程序的崩溃统计方法还可以包括:响应于对所述应用程序的崩溃查询请求,获取与所述崩溃查询请求匹配的至少一个查询崩溃分类;将各所述查询崩溃分类,以及与各所述查询崩溃分类分别对应的崩溃统计值作为所述崩溃查询请求的反馈结果。

崩溃查询请求是对崩溃分类进行查询的请求,崩溃分类与目标崩溃堆栈描述项相对应,不同的崩溃分类之间,目标崩溃堆栈描述项不同。在以目标崩溃堆栈描述项为依据进行崩溃分类,对应用程序的各崩溃事件进行崩溃统计,获得崩溃统计结果之后,本发明实施例还提供基于崩溃统计结果的崩溃查询功能,可以直观地展示不同的崩溃分类,以及各崩溃分类对应的崩溃统计值。

查询崩溃分类是用户想要查询的崩溃分类,崩溃查询请求可以对应一个或多个查询崩溃分类。根据崩溃查询请求,可以在崩溃统计结果的崩溃分类中,获取查询崩溃分类,以及查询崩溃分类对应的崩溃统计值,并将查询崩溃分类及其对应的崩溃统计值反馈给用户。

实施例二

图2a是本发明实施例二中的一种应用程序的崩溃统计方法的流程图,本实施例在上述实施例的基础上,对提取目标崩溃堆栈描述项的过程以及根据目标崩溃堆栈描述项进行崩溃统计的过程进行了进一步细化,并加入了进行崩溃分类查询的步骤。

相应的,本实施例的方法可以包括:

S210、获取客户端上报的应用程序的崩溃事件,并提取所述崩溃事件中包括的崩溃堆栈描述信息,崩溃堆栈描述信息中包括至少一个崩溃堆栈描述项。

S220、在所述崩溃堆栈描述信息中,获取各所述崩溃堆栈描述项分别对应的库名。

在本发明实施例中,提取崩溃堆栈描述信息中的各崩溃堆栈描述项,获取各崩溃堆栈描述项对应的库名。示例性的,图2b提供了一种库名的示意图,图2b中0-4行对应的“libc.so”以及“libhymediatrans.so”即为各崩溃堆栈描述项的库名。

S230、将提取的各所述库名与标准业务代码库名集合进行匹配,获取匹配成功的至少一个目标库名。

服务器中保存有标准业务代码库名集合,用于记录与开发人员编写的业务代码关联的库名。在各库名中,获取标准业务代码库名集合中存在的库名作为目标库名,目标库名对应的崩溃堆栈描述信息即为错误的业务代码对应的堆栈信息。

示例性的,如图2b所示,标准业务代码库名集合中存在“libhymediatrans.so”,因此3-4行的“libhymediatrans.so”即为目标库名。

S240、将与所述目标库名对应的崩溃堆栈描述项,确定为与业务代码关联的目标崩溃堆栈描述项。

目标库名对应的崩溃堆栈描述项即为与错误的业务代码关联的目标崩溃堆栈描述项,因此,目标崩溃堆栈描述项可以用于表征崩溃的具体发生原因,可以基于目标崩溃堆栈描述项对崩溃进行分类统计。

示例性的,当图2b中的“libhymediatrans.so”为目标库名时,目标崩溃堆栈描述项为图1b中3-4行的内容。

S250、根据各所述目标崩溃堆栈描述项以及预设的签名算法,计算与所述崩溃事件对应的目标签名值。

在本发明实施例中,可以根据目标崩溃堆栈描述项对崩溃事件进行签名,计算崩溃事件的目标签名值,目标签名值与各目标崩溃堆栈描述项一一对应。目标签名值作为崩溃发生具体原因的标识,是对崩溃事件进行分类的依据。

可选的,可以采用哈希算法作为签名算法,通过哈希算法计算目标崩溃堆栈描述项对应的sha1(Secure Hash Algorithm 1,安全散列算法1)值,将shal值作为目标签名值,还可以通过哈希算法计算MD5(Message Digest Algorithm,消息摘要算法第五版)值作为目标签名值,本实施例对此不进行限制。

S260、判断当前是否存储有与所述目标签名值对应的目标崩溃分类,如果是,则执行S290,否则执行S270。

在本发明实施例中,如果当前已存储有目标签名值对应的目标崩溃分类,说明目标签名值对应的目标崩溃分类为现有的崩溃分类,直接对目标崩溃分类进行统计即可。如果当前没有目标签名值对应的目标崩溃分类,说明目标崩溃分类是一个全新的崩溃分类,可以将各个目标崩溃堆栈描述项作为目标崩溃分类进行保存,并进行统计。

S270、将全部目标崩溃堆栈描述项作为所述应用程序崩溃事件的目标崩溃分类。

在本发明实施例中,基于目标崩溃堆栈描述项对崩溃进行分类统计,因此,当当前没有目标崩溃分类时,保存各个目标崩溃堆栈描述项作为目标崩溃分类。

S280、建立所述目标崩溃分类与所述目标签名值之间的映射关系。执行S290。

在本发明实施例中,将目标崩溃分类与目标签名值建立映射关系之后,再出现新的崩溃事件时,即可计算新的崩溃事件对应的目标签名值,从而根据签名值对崩溃事件进行分类。

S290、更新与所述目标崩溃分类对应的崩溃统计值。

确定了崩溃事件的目标崩溃分类之后,即可更新目标崩溃分类的崩溃统计值。

相应的,S290又可以包括以下步骤:

S291、获取与所述崩溃事件匹配的目标设备标识。

目标设备标识是上报崩溃事件的客户端对应的唯一标识,在本发明实施例中,在确定崩溃事件对应的崩溃分类之后,进行崩溃信息统计时,对崩溃事件对应的设备标识进行统计。这样设置可以使服务器侧的开发人员根据崩溃统计结果可以获知各个崩溃分类分别对应的设备,从而使开发人员可以对发生崩溃事件的设备进行故障定位,在另一个维度上提高了应用程序崩溃的修复效率。

S292、判断与所述目标崩溃分类对应的设备标识集合中是否包括所述目标设备标识,如果是,则执行S293,否则执行S294。

设备标识集合中保存有应用程序发生过目标崩溃分类这一类型的崩溃事件的所有设备对应的设备标识。

S293、仅更新与所述目标崩溃分类对应的崩溃次数。

崩溃次数是指发生目标崩溃分类对应的崩溃事件的次数,如果设备标识集合中包括目标设备标识,说明当前设备的应用程序之前就已经发生过目标崩溃分类类型的崩溃事件,仅需更新目标崩溃分类的崩溃次数。

S294、将所述目标设备标识加入至所述设备标识集合中,并同时更新与所述目标崩溃分类对应的设备数以及崩溃次数。

设备数是指发生过目标崩溃分类对应的崩溃事件的设备的数量,如果设备标识集合中不包括目标设备标识,说明当前设备的应用程序之前尚未发生过目标崩溃分类类型的崩溃事件,需要对设备数和崩溃次数同时进行更新。

示例性的,图2c提供了一种崩溃统计结果的示意图,如图2c所示,目标崩溃堆栈描述项用于表示目标崩溃分类,目标崩溃分类的崩溃统计值包括崩溃次数和设备数,崩溃次数的数值一般大于等于设备数。

在本实施例中,在更新崩溃统计值时,进一步统计了某一个目标崩溃分类对应的设备标识集合,进而可以更新与该目标崩溃分类对应的设备数。相应的,故障排查人员(一般是该目标崩溃分类对应的业务代码的编程人员)在后续进行故障定位时,可以根据与该目标崩溃分类设备数,或者设备数与崩溃次数之间的数值关系,确定该目标崩溃分类是一个与设备无关的第一类错误(例如,设备数超过预设的设备数量阈值),还是一个特定设备关联的第二类错误(例如,崩溃次数远远大于设备数)。

进而,如果确定该目标崩溃分类属于第二类错误时,可以根据与该目标崩溃分类对应的设备标识集合,识别出上述设备标识集合中各设备的共性特征,以帮助故障排查人员快速定位故障原因,提高代码修复的效率。

S2100、判断是否接收到对所述应用程序的崩溃查询请求,如果是,则执行S2110,否则返回执行S2100。

本发明实施例还提供崩溃分类查询的功能,当用户需要对崩溃分类进行查询时,向服务器发起崩溃查询请求。

S2110、获取与所述崩溃查询请求匹配的至少一个查询崩溃分类。

查询崩溃分类是用户想要进行查询的崩溃分类,查询崩溃分类可以为一个或多个。

S2120、将各所述查询崩溃分类,以及与各所述查询崩溃分类分别对应的崩溃统计值作为所述崩溃查询请求的反馈结果。

在崩溃统计结果的各崩溃分类中,获取查询崩溃分类,将各查询崩溃分类及其对应的设备数和崩溃次数反馈给用户。

本发明实施例的技术方案,通过获取客户端上报的应用程序的崩溃事件,并提取崩溃事件中的崩溃堆栈描述信息,在崩溃堆栈描述信息的崩溃堆栈描述项中提取与业务代码关联的目标崩溃堆栈描述项,根据各目标崩溃堆栈描述项计算目标签名值,根据目标签名值确定目标崩溃分类,进而更新目标崩溃分类的崩溃统计值。解决了现有技术中根据底层原因对崩溃进行归类统计的方式,只能反映崩溃的属性,无法对出现异常的业务代码进行定位的问题,实现了基于堆栈信息对应用程序进行崩溃统计,能够更直观的反应崩溃的发生原因,定位崩溃事件相关的业务代码,并且可以定位发生崩溃事件的设备,从而提高了应用程序的修复效率。

实施例三

图3是本发明实施例三中的一种应用程序的崩溃统计装置的结构示意图。如图3所示,该应用程序的崩溃统计装置包括:崩溃堆栈描述信息提取模块310、目标崩溃堆栈描述项提取模块320以及崩溃统计模块330,其中:

崩溃堆栈描述信息提取模块310,用于获取客户端上报的应用程序的崩溃事件,并提取所述崩溃事件中包括的崩溃堆栈描述信息,崩溃堆栈描述信息中包括至少一个崩溃堆栈描述项;

目标崩溃堆栈描述项提取模块320,用于在所述崩溃堆栈描述信息中,提取与业务代码关联的至少一个目标崩溃堆栈描述项;

崩溃统计模块330,用于根据各所述目标崩溃堆栈描述项,对所述应用程序进行崩溃统计。

本发明实施例的技术方案,通过获取客户端上报的应用程序的崩溃事件,并提取崩溃事件中的崩溃堆栈描述信息,在崩溃堆栈描述信息的崩溃堆栈描述项中提取与业务代码关联的目标崩溃堆栈描述项,进行崩溃统计。解决了现有技术中根据底层原因对崩溃进行归类统计的方式,只能反映崩溃的属性,无法对出现异常的业务代码进行定位的问题,实现了基于堆栈信息对应用程序进行崩溃统计,能够更直观的反应崩溃的发生原因,从而提高了应用程序的修复效率。

在上述实施例的基础上,所述崩溃堆栈描述项中包括:与崩溃代码对应的库名、类名以及方法名。

在上述实施例的基础上,所述目标崩溃堆栈描述项提取模块320,包括:

库名获取单元,用于在所述崩溃堆栈描述信息中,获取各所述崩溃堆栈描述项分别对应的库名;

目标库名获取单元,用于将提取的各所述库名与标准业务代码库名集合进行匹配,获取匹配成功的至少一个目标库名;

目标崩溃堆栈描述项确定单元,用于将与所述目标库名对应的崩溃堆栈描述项,确定为与业务代码关联的目标崩溃堆栈描述项。

在上述实施例的基础上,所述崩溃统计模块330,包括:

目标签名值计算单元,用于根据各所述目标崩溃堆栈描述项以及预设的签名算法,计算与所述崩溃事件对应的目标签名值;

崩溃统计值更新单元,用于如果当前存储有与所述目标签名值对应的目标崩溃分类,则更新与所述目标崩溃分类对应的崩溃统计值,崩溃分类中包括至少一个崩溃堆栈描述项。

在上述实施例的基础上,所述装置,还包括:

目标崩溃分类确定模块,用于如果当前未存储与所述目标签名值对应的目标崩溃分类,则将全部目标崩溃堆栈描述项作为所述应用程序崩溃事件的目标崩溃分类;

崩溃统计值更新模块,用于建立所述目标崩溃分类与所述目标签名值之间的映射关系,并更新与所述目标崩溃分类对应的崩溃统计值。

在上述实施例的基础上,所述崩溃统计值更新单元,以及所述崩溃统计值更新模块,具体用于:

获取与所述崩溃事件匹配的目标设备标识;

如果与所述目标崩溃分类对应的设备标识集合中包括所述目标设备标识,则仅更新与所述目标崩溃分类对应的崩溃次数;

如果所述目标崩溃分类对应的设备标识集合中不包括所述目标设备标识,则将所述目标设备标识加入至所述设备标识集合中,并同时更新与所述目标崩溃分类对应的设备数以及崩溃次数。

在上述实施例的基础上,所述装置,还包括:

查询崩溃分类获取模块,用于响应于对所述应用程序的崩溃查询请求,获取与所述崩溃查询请求匹配的至少一个查询崩溃分类;

反馈结果获取模块,用于将各所述查询崩溃分类,以及与各所述查询崩溃分类分别对应的崩溃统计值作为所述崩溃查询请求的反馈结果。

本发明实施例所提供的应用程序的崩溃统计装置可执行本发明任意实施例所提供的应用程序的崩溃统计方法,具备执行方法相应的功能模块和有益效果。

实施例四

图4是本发明实施例四公开的一种电子设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性设备12的框图。图4显示的设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,设备12以通用计算设备的形式表现。设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的应用程序的崩溃统计方法。也即:实现一种应用程序的崩溃统计方法,包括:

获取客户端上报的应用程序的崩溃事件,并提取所述崩溃事件中包括的崩溃堆栈描述信息,崩溃堆栈描述信息中包括至少一个崩溃堆栈描述项;

在所述崩溃堆栈描述信息中,提取与业务代码关联的至少一个目标崩溃堆栈描述项;

根据各所述目标崩溃堆栈描述项,对所述应用程序进行崩溃统计。

实施例五

本发明实施例五还公开了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种应用程序的崩溃统计方法,包括:

获取客户端上报的应用程序的崩溃事件,并提取所述崩溃事件中包括的崩溃堆栈描述信息,崩溃堆栈描述信息中包括至少一个崩溃堆栈描述项;

在所述崩溃堆栈描述信息中,提取与业务代码关联的至少一个目标崩溃堆栈描述项;

根据各所述目标崩溃堆栈描述项,对所述应用程序进行崩溃统计。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是、但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号