CN115934404A - 应用程序的异常处理方法及设备 - Google Patents
应用程序的异常处理方法及设备 Download PDFInfo
- Publication number
- CN115934404A CN115934404A CN202211733773.1A CN202211733773A CN115934404A CN 115934404 A CN115934404 A CN 115934404A CN 202211733773 A CN202211733773 A CN 202211733773A CN 115934404 A CN115934404 A CN 115934404A
- Authority
- CN
- China
- Prior art keywords
- application program
- information
- abnormal
- file
- log file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本公开提供一种应用程序的异常处理方法及设备,涉及计算机软件技术领域。该方法包括:在应用程序出现异常时,获取第三方工具生成的堆栈信息文件和应用程序本身的属性信息,堆栈信息文件中包括应用程序出现异常时的函数调用关系对应的堆栈信息;将堆栈信息和属性信息写入异常日志文件中;将异常日志文件发送给应用程序对应的服务端。在大量用户使用应用程序的过程中,如果出现异常,该用户的应用程序均可以生成异常日志文件,并发送给服务端,以使服务端可以收集到线上的大量应用程序的异常日志文件。这样,可以发现更多的异常,更好的保证应用程序的正常运行。
Description
技术领域
本公开涉及计算机软件技术领域,尤其涉及一种应用程序的异常处理方法及设备。
背景技术
在计算机软件领域中,应用程序是一种可以完成一项或多项特定任务的计算机程序。当应用程序在运行过程中出现异常时,需要定位导致该异常的异常原因,以根据该异常原因对应用程序进行异常处理,使应用程序恢复正常运行。
现有技术中,在应用程序出现异常时,软件工程师可以对应用程序进行代码跟踪,以确定应用程序出现异常时的状态,该状态可以包括但不限于:出现异常的函数、出现异常时的代码行以及出现异常时所使用的参数取值等。从而,可以根据该状态定位异常原因。例如,如果出现异常的函数中的一个参数的取值不符合预设规则,那么可以确定异常原因为参数不符合预设规则。
然而,上述方案不能较好的保证应用程序的正常运行。
发明内容
本公开提供一种应用程序的异常处理方法及设备,用以更好的保证应用程序的正常运行。
第一方面,本公开提供一种应用程序的异常处理方法,包括:
在所述应用程序出现异常时,获取第三方工具生成的堆栈信息文件和所述应用程序本身的属性信息,所述堆栈信息文件中包括所述应用程序出现异常时的函数调用关系对应的堆栈信息;
将所述堆栈信息和所述属性信息写入异常日志文件中;
将所述异常日志文件发送给所述应用程序对应的服务端。
可选地,所述属性信息包括以下至少一项:所述应用程序的类型、所述应用程序的版本、所述应用程序的标识、所述应用程序的运行时长、所述应用程序的进程信息、所述应用程序的启动参数信息、所述应用程序开启的附加功能信息、所述应用程序所在的处理器信息、所述应用程序的图形处理单元信息、可丢弃的内存。
可选地,所述图形处理单元信息包括以下至少一项:图形处理单元的供应方、所述图形处理单元的设备标识、所述图形处理单元的驱动信息、所述图形处理单元的顶点着色器版本、所述图形处理单元的像素着色器版本、所述图形处理单元的类型、所述图形处理单元的开源图形库供应方、所述图形处理单元的渲染器信息;
所述启动参数信息包括以下至少一项:启动参数数量、启动参数取值。
可选地,所述方法还包括:
在启动所述应用程序时,实例化所述第三方工具中的第一处理对象,所述第一处理对象用于在所述应用程序运行过程中生成所述堆栈信息文件;
注册所述第一处理对象对应的第二处理对象,所述第二处理对象用于在所述应用程序出现异常时生成和发送所述异常日志文件。
可选地,所述将所述异常日志文件发送给所述应用程序对应的服务端,包括:
在日志上传功能已开启的情况下,将所述异常日志文件发送给所述服务端。
可选地,所述将所述异常日志文件发送给所述应用程序对应的服务端,包括:
对所述异常日志文件进行压缩之后发送给所述服务端。
可选地,所述堆栈信息文件包括小存储器转储文件,用于记录与所述异常相关联的最少堆栈信息。
第二方面,本公开提供一种应用程序的异常处理方法,包括:
信息获取模块,用于在所述应用程序出现异常时,获取第三方工具生成的堆栈信息文件和所述应用程序本身的属性信息,所述堆栈信息文件中包括所述应用程序出现异常时的函数调用关系对应的堆栈信息;
日志文件生成模块,用于将所述堆栈信息和所述属性信息写入异常日志文件中;
日志文件发送模块,用于将所述异常日志文件发送给所述应用程序对应的服务端。
可选地,所述属性信息包括以下至少一项:所述应用程序的类型、所述应用程序的版本、所述应用程序的标识、所述应用程序的运行时长、所述应用程序的进程信息、所述应用程序的启动参数信息、所述应用程序开启的附加功能信息、所述应用程序所在的处理器信息、所述应用程序的图形处理单元信息、可丢弃的内存。
可选地,所述图形处理单元信息包括以下至少一项:图形处理单元的供应方、所述图形处理单元的设备标识、所述图形处理单元的驱动信息、所述图形处理单元的顶点着色器版本、所述图形处理单元的像素着色器版本、所述图形处理单元的类型、所述图形处理单元的开源图形库供应方、所述图形处理单元的渲染器信息;
所述启动参数信息包括以下至少一项:启动参数数量、启动参数取值。
可选地,所述装置还包括:
第一处理对象实例化模块,用于在启动所述应用程序时,实例化所述第三方工具中的第一处理对象,所述第一处理对象用于在所述应用程序运行过程中生成所述堆栈信息文件;
第二处理对象注册模块,用于注册所述第一处理对象对应的第二处理对象,所述第二处理对象用于在所述应用程序出现异常时生成和发送所述异常日志文件。
可选地,所述日志文件发送模块还用于:
在日志上传功能已开启的情况下,将所述异常日志文件发送给所述服务端。
可选地,所述日志文件发送模块还用于:
对所述异常日志文件进行压缩之后发送给所述服务端。
可选地,所述堆栈信息文件包括小存储器转储文件,用于记录与所述异常相关联的最少堆栈信息。
第三方面,本公开实施例还提供了一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现如第一方面所述的方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被电子设备执行时用于实现第一方面所述的方法。
第五方面,本公开实施例还提供了一种计算机程序,该计算机程序用于实现上述第一方面的方法。
本公开提供的应用程序的异常处理方法及设备,该方法包括:在应用程序出现异常时,获取第三方工具生成的堆栈信息文件和应用程序本身的属性信息,堆栈信息文件中包括应用程序出现异常时的函数调用关系对应的堆栈信息;将堆栈信息和属性信息写入异常日志文件中;将异常日志文件发送给应用程序对应的服务端。在大量用户使用应用程序的过程中,如果出现异常,该用户的应用程序均可以生成异常日志文件,并发送给服务端,以使服务端可以收集到线上的大量应用程序的异常日志文件。这样,可以发现更多的异常,更好的保证应用程序的正常运行。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开实施例适用的应用场景示意图;
图2是本公开实施例提供的一种应用程序的异常处理方法的步骤流程图;
图3是本公开实施例提供的一种应用程序的函数关系示意图;
图4是本公开实施例提供的一种堆栈信息文件更新过程示意图;
图5是本公开实施例提供的堆栈信息和属性信息在异常日志文件中的两种位置关系示意图;
图6是本公开实施例提供的一种应用程序的异常处理装置的结构框图;
图7是本公开实施例提供的电子设备的结构框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
本公开实施例用于对电子设备中的应用程序进行异常处理。图1是本公开实施例适用的应用场景示意图。参照图1所示,本公开实施例的应用场景涉及电子设备和服务端。电子设备中可以运行有应用程序,也可以称为客户端。该应用程序可以通过网络与服务端通信连接,应用程序可以接收用户的操作,以生成访问请求发送给服务端。服务端对该访问请求进行处理,并将处理得到的响应数据发送给应用程序。当访问请求用于请求数据时,应用程序可以将响应数据进行显示。
上述应用程序可以包括但不限于:浏览器、社交应用、多媒体播放应用等。本公开实施例对应用程序不加以限制。
本公开实施例可以在应用程序出现异常时,将第三方工具生成的堆栈信息文件和应用程序本身的属性信息合成一个异常日志文件,以发送给服务端。这样软件工程师可以根据异常日志文件分析得到异常原因。在大量用户使用应用程序的过程中,如果出现异常,该用户的应用程序均可以生成异常日志文件,并发送给服务端,以使服务端可以收集到线上的大量应用程序的异常日志文件。这样,可以发现更多的异常,更好的保证应用程序的正常运行。
此外,本公开实施例生成的异常日志文件中包括出现异常时的堆栈信息以及应用程序本身的属性信息。一方面,如果仅将原始的堆栈信息文件发送给服务端,那么会由于异常原因定位时使用的信息不全面而导致异常原因的定位成功率较低,准确度较低。而本公开实施例的异常日志文件中还包括应用程序本身的属性信息,有助于提高异常原因的定位成功率和准确度。另一方面,如果将第三方工具生成的堆栈信息文件和应用程序本身的属性信息添加到一个数据请求中发送给服务端,那么在网络异常时,数据请求发送失败。此时存储在磁盘中的堆栈信息文件不会丢失,存储在内存中的属性信息会丢失。而本公开实施例可以在网络异常时,通过存储在磁盘中的异常日志文件保证堆栈信息和属性信息不丢失。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
图2是本公开实施例提供的一种应用程序的异常处理方法的步骤流程图。参照图2所示,该方法包括以下步骤。
S201:在应用程序出现异常时,获取第三方工具生成的堆栈信息文件和应用程序本身的属性信息,堆栈信息文件中包括应用程序出现异常时的函数调用关系对应的堆栈信息。
其中,第三方工具可以是该应用程序之外的软件工具,可以用于生成堆栈信息文件。例如,BreakPad,堆栈信息文件可以为小存储器转储文件(minidump),用于记录与异常相关联的最少堆栈信息。这样,可以在记录必要的堆栈信息的基础上,减小堆栈信息文件的大小,有助于节约存储空间,提高对堆栈信息文件的处理效率,进而提高生成异常日志文件的处理效率,节约传输异常日志文件的资源和时间。
堆栈信息文件的生成过程是随着应用程序的运行过程进行的。在应用程序开始执行一个函数时,可以将该函数的信息添加到堆栈信息文件中,并在该函数执行结束时,将该函数的信息从堆栈信息文件中取出。图3是本公开实施例提供的一种应用程序的函数关系示意图。参照图3所示,应用程序的主函数为F1,F1中包括顺序执行的函数F2、F3和F4,也就是说F1顺序调用了F2、F3和F4。函数F2中包括顺序执行的函数F5和F6,也就是说,函数F2顺序调用了F5和F6。函数F3中包括函数F7。
图4是本公开实施例提供的一种堆栈信息文件更新过程示意图。参照图4所示,在执行图3所示的函数构成的应用程序时,函数的开始执行顺序为:函数F1、函数F2、函数F2中的函数F5、函数F2中的函数F6、函数F3、函数F3中的函数F7和函数F4,基于该函数的执行顺序,堆栈信息文件的更新过程包括:
在初始时,将堆栈信息文件初始化为空。
在开始执行主函数F1时,将函数F1的信息添加到堆栈信息文件中,堆栈信息文件中包括函数F1的信息。
在开始执行主函数F1中的函数F2时,将函数F2的信息添加到堆栈信息文件中,此时堆栈信息文件中包括函数F1的信息和函数F2的信息。
在开始执行函数F2中的函数F5时,将函数F5的信息添加到堆栈信息文件中,此时堆栈信息文件中包括函数F1的信息、函数F2的信息和函数F5的信息。
在执行完函数F5时,将函数F5的信息从堆栈信息文件中取出,此时堆栈信息文件中包括函数F2的信息和函数F1的信息。
在开始执行函数F2中的函数F6时,将函数F6的信息添加到堆栈信息文件中,此时堆栈信息文件中包括函数F1的信息、函数F2的信息和函数F6的信息。
在执行完函数F6时,将函数F6的信息从堆栈信息文件中取出,此时堆栈信息文件中包括函数F1的信息和函数F2的信息。
在执行完函数F2时,将函数F2从堆栈信息文件中取出,此时堆栈信息文件中包括函数F1的信息。
在开始执行函数F3时,将函数F3的信息添加到堆栈信息文件中,此时堆栈信息文件中包括函数F1的信息和F3的信息。
在开始执行函数F3中的函数F7时,将函数F7的信息添加到堆栈信息文件中,此时堆栈信息文件中包括函数F1的信息、F3的信息和F7的信息。
在执行完函数F7时,将函数F7的信息从堆栈信息文件中取出,此时堆栈信息文件可以包括函数F1的信息和F3的信息。
在执行完函数F3时,将函数F3的信息从堆栈信息文件中取出,此时堆栈信息文件中可以包括函数F1的信息。
在开始执行函数F4时,将函数F4的信息添加到堆栈信息文件中,此时堆栈信息文件中包括函数F1的信息和F4的信息。
在结束执行函数F4时,将函数F4的信息从堆栈信息文件中取出,此时堆栈信息文件包括F1的信息。
在结束执行主函数F1时,将函数F1的信息从堆栈信息文件中取出。此时堆栈信息文件为空。
从上述过程可以看出,堆栈信息文件随着应用程序的执行而实时更新,从而在应用程序异常时,堆栈信息文件中包括的当前函数体现了出现异常时的函数调用关系。例如,如果应用程序异常时堆栈信息文件中包括函数F1的信息、函数F2的信息和函数F6的信息,那么代表在函数F1调用函数F2,并且函数F2调用函数F6时出现异常,可能是函数F6的异常导致的应用程序异常。
在得到上述堆栈信息文件的情况下,还可以获取应用程序本身的属性信息。应用程序本身的属性信息可以表示应用程序的特征,可以辅助定位应用程序的异常原因。应用程序本身的属性信息可以包括但不限于以下至少一项:应用程序的类型、应用程序的版本、应用程序的标识、应用程序的运行时长(单位为毫秒)、应用程序的进程信息、应用程序的启动参数信息、应用程序开启的附加功能信息、应用程序所在的处理器信息、应用程序的图形处理单元信息、可丢弃的内存。
其中,应用程序的类型可以为:浏览器、社交应用、多媒体播放应用。本公开实施例可以将应用程序的类型添加到异常日志文件中,以帮助软件工程师根据应用程序的类型分析异常原因。每种类型的应用程序都具有一定的特征,这些特征也可以体现在异常原因上,从而软件工程师可以针对不同类型的应用程序针对性的进行不同的异常分析过程,从而个性化的分析异常原因,有助于提高异常分析效率和准确度。
应用程序是可以不断更新的,每次更新可以对应用程序中的部分或全部功能进行更新,应用程序的版本可以用于区分应用程序在更新过程中的状态。在应用程序的更新过程中,若目标版本的应用程序出现数据库连接异常,那么如果异常日志文件中指示的应用程序的版本是否为该目标版本,如果是,那么软件工程师可以重点分析该应用程序的数据库连接是否异常,可以有效提高异常分析效率和准确度。
应用程序的进程信息用于指示应用程序在运行时对应的一个或多个进程,包括主进程和一个或多个子进程等。
应用程序的启动参数信息用于表示应用程序在启动时所需要的参数,可以包括以下至少一项:启动参数数量、启动参数取值。
应用程序开启的附加功能信息可以包括附加功能数量、附加功能标识等。这些附加功能的开启也会影响应用程序的运行,如果应用程序未开启附加功能信息,那么不需要对附加功能对应的代码进行分析,应用程序的异常原因与附加功能无关。如果应用程序开启了部分附加功能,那么可以对开启的附加功能的代码进行分析,以确定异常原因,异常原因可能与该附加功能相关。本公开实施例可以将附加功能信息添加到异常日志文件中,可以帮助软件工程师更快速的定位异常原因。
应用程序所在的处理器信息可以包括处理器类型、处理器位数等。处理器信息可以帮助软件工程师确定异常原因是否与处理器相关。
应用程序的图形处理单元信息可以包括以下至少一项:图形处理单元(graphicsprocessing unit,GPU)的供应方、图形处理单元的设备标识、图形处理单元的驱动信息、图形处理单元的顶点着色器(vertex shader,VS)版本、图形处理单元的像素着色器(pixelshader,PS)版本、图形处理单元的类型、图形处理单元的开源图形库(open graphicslibrary,OPENGL)供应方、图形处理单元的渲染器信息。本公开实施例可以将图形处理单元信息添加到异常日志文件中,可以确定应用程序的异常原因是否为图形处理单元出现异常。
其中,图形处理单元的类型可以表示图形处理单元是否为指定类型的图形处理单元,例如,是否为intel(英特尔)图形处理单元。
上述可丢弃的内存用于表示浏览器缓存大小,浏览器缓存是可以清空的。
综上所述,本公开实施例的软件工程师可以根据异常日志文件确定出现异常的应用程序的属性信息,进而根据这些属性信息详细描述了出现异常的应用程序,可以辅助堆栈信息定位异常原因,上述属性信息越多,可以更好的帮助软件工程师更好的定位异常原因。
S202:将堆栈信息和属性信息写入异常日志文件中。
其中,堆栈信息和属性信息在异常日志文件中的顺序不限定。图5是本公开实施例提供的堆栈信息和属性信息在异常日志文件中的两种位置关系示意图。参照图5所示,可以将堆栈信息写在属性信息之前,也可以将属性信息卸载堆栈信息之前。
S203:将异常日志文件发送给应用程序对应的服务端。
在第一种示例中,可以将异常日志文件直接发送给对应的服务端。
在第二种示例中,可以在日志上传功能已开启的情况下,将异常日志文件发送给服务端。其中,日志上传功能是由用户在应用程序上设置的,用户可以开启或关闭日志上传功能。本公开实施例在日志上传功能关闭的情况下,不会将异常日志文件发送给对应的服务端,可以更好的体现用户意愿,有助于提高应用程序的友好性。
在第三种示例中,还可以对异常日志文件进行压缩之后发送给服务端。这里的压缩可以为任意方式的压缩,例如,gunzip、winrar等。如此,可以尽可能的减少异常日志文件在发送时所占用的资源,可以节约传输资源,并且提高发送效率。
在第四种示例中,在网络异常时,无法成功将异常日志文件发送给服务端,从而可以在网络恢复正常时,再次尝试将异常日志文件发送给服务端。这样可以进一步的提高日常日志文件的发送成功率。
在实际应用中,可以将上述第一种示例至第三种示例中的至少两种进行结合,以发送异常日志文件。
本公开实施例的上述应用程序的异常处理方法中的各个步骤可以由第二处理对象执行。第二处理对象可以预先进行注册。具体地,在启动应用程序时,实例化第三方工具中的第一处理对象,第一处理对象用于在应用程序运行过程中生成堆栈信息文件;然后,注册第一处理对象对应的第二处理对象,第二处理对象用于在应用程序出现异常时生成和发送异常日志文件。
其中,第三方工具中的第一处理对象是第三方工具用于生成堆栈信息文件的函数或接口,例如,当第三方工具为BreakPad时,第一处理对象可以为BreakPad的ExceptionHandler函数。
可以理解的是,在应用程序异常甚至崩溃时,应用程序无法正常运行,从而应用程序此时无法生成和发送异常日志文件。而本公开实施例可以通过预先注册的第二处理对象生成和发送异常日志文件,保证了异常日志文件的顺利生成和发送。
对应于上述应用程序的异常处理方法,本公开实施例还提供了一种应用程序的异常处理装置。图6是本公开实施例提供的一种应用程序的异常处理装置的结构框图。参照图6所示,应用程序的异常处理装置400可以包括以下模块。
信息获取模块401,用于在所述应用程序出现异常时,获取第三方工具生成的堆栈信息文件和所述应用程序本身的属性信息,所述堆栈信息文件中包括所述应用程序出现异常时的函数调用关系对应的堆栈信息。
日志文件生成模块402,用于将所述堆栈信息和所述属性信息写入异常日志文件中。
日志文件发送模块403,用于将所述异常日志文件发送给所述应用程序对应的服务端。
可选地,所述属性信息包括以下至少一项:所述应用程序的类型、所述应用程序的版本、所述应用程序的标识、所述应用程序的运行时长、所述应用程序的进程信息、所述应用程序的启动参数信息、所述应用程序开启的附加功能信息、所述应用程序所在的处理器信息、所述应用程序的图形处理单元信息、可丢弃的内存。
可选地,所述图形处理单元信息包括以下至少一项:图形处理单元的供应方、所述图形处理单元的设备标识、所述图形处理单元的驱动信息、所述图形处理单元的顶点着色器版本、所述图形处理单元的像素着色器版本、所述图形处理单元的类型、所述图形处理单元的开源图形库供应方、所述图形处理单元的渲染器信息。所述启动参数信息包括以下至少一项:启动参数数量、启动参数取值。
可选地,所述装置还包括:
第一处理对象实例化模块,用于在启动所述应用程序时,实例化所述第三方工具中的第一处理对象,所述第一处理对象用于在所述应用程序运行过程中生成所述堆栈信息文件。
第二处理对象注册模块,用于注册所述第一处理对象对应的第二处理对象,所述第二处理对象用于在所述应用程序出现异常时生成和发送所述异常日志文件。
可选地,所述日志文件发送模块403还用于:
在日志上传功能已开启的情况下,将所述异常日志文件发送给所述服务端。
可选地,所述日志文件发送模块403还用于:
对所述异常日志文件进行压缩之后发送给所述服务端。
可选地,所述堆栈信息文件包括小存储器转储文件,用于记录与所述异常相关联的最少堆栈信息。
本公开实施例提供的装置,可用于执行上述图2中所示的方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图7是本公开实施例示例性示出的一种电子设备600的结构框图。该电子设备600包括存储器602和至少一个处理器601。
其中,存储器602存储计算机执行指令。
至少一个处理器601执行存储器602存储的计算机执行指令,使得电子设备600实现前述图2中的方法。
此外,该电子设备600还可以包括接收器603和发送器604,接收器603用于接收从其余装置或设备的信息,并转发给处理器601,发送器604用于将信息发送到其余装置或设备。
上述电子设备600是图2所示的方法对应的装置实施例,具体可以参照图2所示的方法实施例的详细说明,在此不再赘述。
本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被电子设备600执行时用于实现如图2所示的方法。
本公开实施例还提供了一种计算机程序,计算机程序用于实现前述图2所示的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明(Unless otherwise indicated)。应该理解这样使用的用语在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
Claims (10)
1.一种应用程序的异常处理方法,其特征在于,所述方法包括:
在所述应用程序出现异常时,获取第三方工具生成的堆栈信息文件和所述应用程序本身的属性信息,所述堆栈信息文件中包括所述应用程序出现异常时的函数调用关系对应的堆栈信息;
将所述堆栈信息和所述属性信息写入异常日志文件中;
将所述异常日志文件发送给所述应用程序对应的服务端。
2.根据权利要求1所述的方法,其特征在于,所述属性信息包括以下至少一项:所述应用程序的类型、所述应用程序的版本、所述应用程序的标识、所述应用程序的运行时长、所述应用程序的进程信息、所述应用程序的启动参数信息、所述应用程序开启的附加功能信息、所述应用程序所在的处理器信息、所述应用程序的图形处理单元信息、可丢弃的内存。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在启动所述应用程序时,实例化所述第三方工具中的第一处理对象,所述第一处理对象用于在所述应用程序运行过程中生成所述堆栈信息文件;
注册所述第一处理对象对应的第二处理对象,所述第二处理对象用于在所述应用程序出现异常时生成和发送所述异常日志文件。
4.根据权利要求1或2所述的方法,其特征在于,所述将所述异常日志文件发送给所述应用程序对应的服务端,包括:
在日志上传功能已开启的情况下,将所述异常日志文件发送给所述服务端。
5.根据权利要求1或2所述的方法,其特征在于,所述将所述异常日志文件发送给所述应用程序对应的服务端,包括:
对所述异常日志文件进行压缩之后发送给所述服务端。
6.根据权利要求1或2所述的方法,其特征在于,所述堆栈信息文件包括小存储器转储文件,用于记录与所述异常相关联的最少堆栈信息。
7.一种应用程序的异常处理装置,其特征在于,所述装置包括:
信息获取模块,用于在所述应用程序出现异常时,获取第三方工具生成的堆栈信息文件和所述应用程序本身的属性信息,所述堆栈信息文件中包括所述应用程序出现异常时的函数调用关系对应的堆栈信息;
日志文件生成模块,用于将所述堆栈信息和所述属性信息写入异常日志文件中;
日志文件发送模块,用于将所述异常日志文件发送给所述应用程序对应的服务端。
8.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现如权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被电子设备执行时用于实现如权利要求1至6任一项所述的方法。
10.一种计算机程序,其特征在于,所述计算机程序用于实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211733773.1A CN115934404A (zh) | 2022-12-30 | 2022-12-30 | 应用程序的异常处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211733773.1A CN115934404A (zh) | 2022-12-30 | 2022-12-30 | 应用程序的异常处理方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934404A true CN115934404A (zh) | 2023-04-07 |
Family
ID=86552460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211733773.1A Pending CN115934404A (zh) | 2022-12-30 | 2022-12-30 | 应用程序的异常处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934404A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093630A (zh) * | 2023-10-17 | 2023-11-21 | 无锡车联天下信息技术有限公司 | 一种车载系统异常日志动态输出方法 |
CN117149667A (zh) * | 2023-10-31 | 2023-12-01 | 宁德时代新能源科技股份有限公司 | 异常数据获取方法、装置、设备和计算机可读存储介质 |
-
2022
- 2022-12-30 CN CN202211733773.1A patent/CN115934404A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093630A (zh) * | 2023-10-17 | 2023-11-21 | 无锡车联天下信息技术有限公司 | 一种车载系统异常日志动态输出方法 |
CN117093630B (zh) * | 2023-10-17 | 2024-01-26 | 无锡车联天下信息技术有限公司 | 一种车载系统异常日志动态输出方法 |
CN117149667A (zh) * | 2023-10-31 | 2023-12-01 | 宁德时代新能源科技股份有限公司 | 异常数据获取方法、装置、设备和计算机可读存储介质 |
CN117149667B (zh) * | 2023-10-31 | 2024-04-05 | 宁德时代新能源科技股份有限公司 | 异常数据获取方法、装置、设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115934404A (zh) | 应用程序的异常处理方法及设备 | |
US8205215B2 (en) | Automated event correlation | |
US10084637B2 (en) | Automatic task tracking | |
CN108287708B (zh) | 一种数据处理方法、装置、服务器及计算机可读存储介质 | |
CN111158741B (zh) | 监控业务模块对第三方类库依赖关系变化的方法及装置 | |
CN111290958B (zh) | 一种调试智能合约的方法及装置 | |
CN110858172A (zh) | 一种自动化测试代码生成方法和装置 | |
CN110321178A (zh) | 附属应用端的启动处理方法、装置、设备及存储介质 | |
CN110543756B (zh) | 设备识别方法、装置、存储介质及电子设备 | |
CN105138366A (zh) | 一种识别软件的静默安装的方法与装置 | |
CN110806913A (zh) | 网页截图方法、装置及设备 | |
CN113495723A (zh) | 一种调用功能组件的方法、装置及存储介质 | |
CN111506393B (zh) | 一种基于arm的虚拟化装置及其使用方法 | |
CN111338866B (zh) | 基于影子分身虚机的云主机压力测试方法及系统 | |
US20200210307A1 (en) | Method for automatically analyzing bottleneck in real time and an apparatus for performing the method | |
CN115185644A (zh) | 基于容器交互式应用的检测方法、系统、设备及存储介质 | |
CN111475226B (zh) | 电子装置、微服务调用方法和计算机可读存储介质 | |
CN114203304A (zh) | 基于智慧医疗大数据的信息推送方法及智慧医疗云服务器 | |
CN114510334A (zh) | 类实例的调用方法、装置、电子设备及自动驾驶车辆 | |
CN114610446A (zh) | 一种自动注入探针的方法、装置及系统 | |
CN111538651A (zh) | 接口测试方法、装置、服务器及存储介质 | |
US11940900B1 (en) | Determining and providing representations of program flow control | |
CN114327504B (zh) | 通信方法及系统 | |
US20240311375A1 (en) | Contextual searches in software development environments | |
CN110377326B (zh) | 安装包生成方法、装置、开发设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |