CN115185722A - 异常规避方法和异常规避装置 - Google Patents

异常规避方法和异常规避装置 Download PDF

Info

Publication number
CN115185722A
CN115185722A CN202110363082.6A CN202110363082A CN115185722A CN 115185722 A CN115185722 A CN 115185722A CN 202110363082 A CN202110363082 A CN 202110363082A CN 115185722 A CN115185722 A CN 115185722A
Authority
CN
China
Prior art keywords
avoidance
abnormal
exception
abnormality
scheme
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
Application number
CN202110363082.6A
Other languages
English (en)
Inventor
何小弟
张木军
陈操
郭津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Guangzhou Mobile R&D Center
Samsung Electronics Co Ltd
Original Assignee
Samsung Guangzhou Mobile R&D Center
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Guangzhou Mobile R&D Center, Samsung Electronics Co Ltd filed Critical Samsung Guangzhou Mobile R&D Center
Priority to CN202110363082.6A priority Critical patent/CN115185722A/zh
Priority to PCT/KR2022/004494 priority patent/WO2022211483A1/en
Publication of CN115185722A publication Critical patent/CN115185722A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0742Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in a mobile device, e.g. mobile phones, handheld devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本公开提供了一种异常规避方法和异常规避装置。所述异常规避方法可包括以下步骤:当发生引起系统或应用程序重新启动的异常情况时,获取与所述异常情况相关联的信息;基于所述信息确定用于处理所述异常情况的规避方案;重新启动系统或应用程序,利用所述规避方案来规避所述异常情况。根据本公开,可自动修复电子设备出现的异常情况,避免设备无法正常启动甚至系统崩溃的问题,从而提高了用户的使用体验。

Description

异常规避方法和异常规避装置
技术领域
本公开涉及电子技术领域。更具体地,本公开涉及一种用于规避系统异常的异常规避方法和异常规避装置。
背景技术
随着电子技术的发展,系统平台(诸如Android平台)有大量的APP/服务(Service),这些APP/Service在电子设备的系统上运行时可能会发生异常情况或导致系统崩溃,使得电子设备反应变慢,甚至会导致电子设备无法正常启动。电子设备频繁地发生系统崩溃最终进入故障模式。
当电子设备的系统发生故障时,大部分厂商都采用恢复出厂设置为主的方法来修复系统故障,但采用这种修复方法可能会耽误用户使用时间、损失客户数据等。
发明内容
根据本公开的示例性实施例提供了一种用于处理系统异常的异常规避方法和异常规避装置,以至少解决上述提及的问题。
根据本公开的示例性实施例,提供一种电子设备的异常规避方法,所述异常规避方法可包括:当发生引起系统或应用程序重新启动的异常情况时,获取与所述异常情况相关联的信息;基于所述信息确定用于处理所述异常情况的规避方案;重新启动系统或应用程序,利用所述规避方案来规避所述异常情况。
可选地,基于所述信息确定用于处理所述异常情况的规避方案的步骤可包括:从所述信息提取异常特征;通过将所述异常特征与预设的关键特征进行比较来确定所述规避方案。
可选地,所述信息可包括堆栈数据,所述异常特征可包括堆栈数据中包含的函数名称。
可选地,通过将所述异常特征与预设的关键特征进行比较来确定所述规避方案的步骤包括:当所述异常特征包含预定组合的关键特征时,将所述预定组合的关键特征相应的预定规避方案确定为所述规避方案。
可选地,基于所述信息确定用于处理所述异常情况的规避方案的步骤可包括:基于所述信息确定用于处理所述异常情况的规避方案以及标识信息,其中,所述标识信息用于指示所述规避方案,其中,重新启动系统或应用程序,利用所述规避方案来规避所述异常情况的步骤可包括:重新启动系统或应用程序,当再次发生所述异常情况时,基于所述标识信息确定规避方案来规避所述异常情况。
可选地,基于所述标识信息确定规避方案来规避所述异常情况的步骤可包括:根据所述标识信息确定是否进入异常处理函数,如果是,在所述异常处理函数中根据所述标识信息确定规避方案来规避所述异常情况。
可选地,基于所述信息确定用于处理所述异常情况的规避方案的步骤可包括:从所述信息提取异常特征;基于所述异常特征利用异常处理模型来获得所述规避方案。
可选地,所述异常处理模型可基于以下方式被获得:获取训练数据,其中,所述训练数据包括与多个异常情况相关联的堆栈和相应的规避方案;从所述堆栈中提取函数;通过将提取的函数与预设的关键函数变量进行比较来对所述关键函数变量进行赋值;利用赋值的关键函数变量和对应的规避方案来训练所述异常处理模型。
可选地,所述训练样本可包括与所述异常情况关联的关键特征变量值与相应的规避方案,其中,根据所述异常特征与预设的关键特征的比较结果,确定所述与所述异常情况关联的关键特征变量值。
可选地,所述异常处理模型可以是决策树模型。
可选地,所述规避方案可包括跳过异常处理和禁止异常启动中的至少一个。
可选地,所述异常规避方法还可包括:在成功规避所述异常情况后,提示用户所述异常情况已规避并且需要进一步的修复处理。
根据本公开的另一示例性实施例,提供一种异常规避装置,可包括:获取模块,被配置为当发生引起系统或应用程序重新启动的异常情况时,获取与所述异常情况相关联的信息;确定模块,被配置为基于所述信息确定用于处理所述异常情况的规避方案;以及处理模块,被配置为重新启动系统或应用程序,利用所述规避方案来规避所述异常情况。
可选地,确定模块可被配置为:从所述信息提取异常特征;通过将所述异常特征与预设的关键特征进行比较来确定所述规避方案。
可选地,所述信息可包括堆栈数据,所述异常特征可包括堆栈数据中包含的函数名称。
可选地,确定模块可被配置为:当所述异常特征包含预定组合的关键特征时,将所述预定组合的关键特征相应的预定规避方案确定为所述规避方案。
可选地,确定模块可被配置为基于所述信息确定用于处理所述异常情况的规避方案以及标识信息,其中,所述标识信息用于指示所述规避方案,其中,处理模块可被配置为重新启动系统或应用程序,当再次发生所述异常情况时,基于所述标识信息确定规避方案来规避所述异常情况。
可选地,处理模块可被配置为:根据所述标识信息确定是否进入异常处理函数,如果是,在所述异常处理函数中根据所述标识信息确定规避方案来规避所述异常情况。
可选地,确定模块可被配置为:从所述信息提取异常特征;基于所述异常特征利用异常处理模型来获得所述规避方案。
可选地,所述异常处理模型可基于以下方式被获得:获取训练数据,其中,所述训练数据包括与多个异常情况相关联的堆栈和相应的规避方案;从所述堆栈中提取函数;通过将提取的函数与预设的关键函数变量进行比较来对所述关键函数变量进行赋值;利用赋值的关键函数变量和对应的规避方案来训练所述异常处理模型。
可选地,所述异常处理模型可以是决策树模型。
可选地,所述规避方案可包括跳过异常处理、禁止异常启动中的至少一个。
可选地,所述异常规避装置还可包括提示模块,被配置为:在成功规避所述异常情况后,提示用户所述异常情况已规避并且需要进一步的修复处理。
根据本公开的示例性实施例,提供一种计算机可读存储介质,其上存储有指令,当所述指令被处理器执行时,实现根据本公开的示例性实施例的异常规避方法。
根据本公开的示例性实施例,提供一种计算装置,包括:处理器;存储器,存储有指令,当所述指令被处理器执行时,实现根据本公开的示例性实施例的异常规避方法。
根据本公开的示例性实施例,提供一种计算机程序产品,所述计算机程序产品中的指令被电子装置中的至少一个处理器运行以执行如上所述的异常规避方法。
本公开通过在电子设备出现系统故障时自动地修复系统,使得电子设备能够正常启动,从而提升了用户体验。
将在接下来的描述中部分阐述本公开总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本公开总体构思的实施而得知。
附图说明
通过结合附图,从实施例的下面描述中,本公开这些和/或其它方面及优点将会变得清楚,并且更易于理解,其中:
图1示出根据本公开示例性实施例的异常规避方法的流程图;
图2示出根据本公开示例性实施例的训练异常处理模型的流程图;
图3示出根据本公开示例性实施例的异常处理模型的示意图;
图4示出根据本公开示例性实施例的异常规避装置的框图;
图5示出根据本公开示例性实施例的异常处理设备的结构示意图;
图6示出根据本公开示例性实施例的计算装置的示意图。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定的顺序发生的操作之外,可如在理解本申请的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,本领域已知的特征的描述可被省略。
在此描述的特征可以以不同的形式来实现,而不应被解释为限于在此描述的示例。相反,已提供在此描述的示例,以仅示出实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式,所述许多可行方式在理解本申请的公开之后将是清楚的。
在此使用的术语仅用于描述各种示例,并不将用于限制公开。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。术语“包含”、“包括”和“具有”说明存在叙述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与由本公开所属领域的普通技术人员在理解本公开之后通常理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文和本公开中的含义一致的含义,并且不应被理想化或过于形式化地解释。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
此外,在示例的描述中,当认为公知的相关结构或功能的详细描述将引起对本公开的模糊解释时,将省略这样的详细描述。
在下文中,将参照附图详细描述实施方式。然而,实施方式可以以各种形式实现,并且不限于在此描述的示例。
图1示出根据本公开示例性实施例的异常规避方法的流程图。其中,图1示出的异常规避方法可在任意电子设备中执行。
在本公开的示例性实施例中,电子设备可包括例如但不限于便携式通信装置(例如,智能电话)、计算机装置、便携式多媒体装置、便携式医疗装置、相机、可穿戴装置等。
参照图1,在步骤S101,当发生引起系统或应用程序重新启动的异常情况时,获取与所述异常情况相关联的信息。根据本公开的实施例,异常情况可由安装在电子设备中的应用引起,或者可以是由电子设备的系统故障等。例如,当电子设备的系统出现农历闰月计算逻辑错误时,电子设备会出现黑屏或者频繁重启情况,最终进入故障模式,用户无法正常启动电子设备。在这种情况下,电子设备可利用异常捕获函数来获取与发生的异常情况相关联的信息。
在本公开中,获取的信息可以是异常堆栈数据。例如,当电子设备的系统出现农历闰月计算逻辑错误时,异常捕获函数可获取如下形式的相关堆栈数据。
Figure BDA0003006352000000061
然而,上述示例仅是示例性的,本公开不限于此。
在步骤S102,基于获取的信息确定用于处理异常情况的规避方案。具体地,从获取的信息提取异常特征,然后通过将提取的异常特征与预设的关键特征进行比较来确定所述规避方案。这里,关键特征的不同组合对应于不同的规避方案,因此,当提取的异常特征包含预定组合的关键特征时,可将该预定组合的关键特征相应的预定规避方案确定为本次规避方案。例如,可通过在将提取的异常特征与预设的关键特征进行比较之后获得相应特征组合以识别相应的规避方案。
作为示例,首先从获取的信息提取异常特征,通过将提取的异常特征与预设的关键特征变量进行比较来确定关键特征变量的特征值,然后在预设规避方案中搜索与确定的特征值相匹配的规避方案作为针对本次处理的规避方案。这里,异常特征可以是堆栈数据中包括的函数名称。
作为示例,在电子设备出现系统故障时获取异常堆栈数据,可从该堆栈中提取该堆栈中包括的函数(即函数名称)。例如,以权限异常导致开机失败的异常情况为例,异常捕获函数可获取到如下异常堆栈数据。
E AndroidRuntime:!@***FATAL EXCEPTION IN SYSTEM PROCESS:main
E:java.lang.SecurityException:UID 1010308 does not have permission tocontent://media/external/audio/media/390[user 0]
E:at com.android.server.uri.UriGrantsManagerService.checkGrantUriPermission(UriGrantsManagerService.java:1202)
E:at com.android.server.uri.UriGrantsManagerService.grantUriPermission(UriGrantsManagerService.java:771)
E:at com.android.server.uri.UriGrantsManagerService.grantUriPermissionFromOwner(UriGrantsManagerService.java:212)
E:at com.android.server.notification.NotificationManagerService.grantUriPermission(NotificationManagerService.java:7675)
E:at com.android.server.notification.NotificationManagerService.updateUriPermissions(NotificationManagerService.java:7647)
E:at com.android.server.notification.NotificationManagerService$NotificationListeners.notifyPostedLocked(NotificationManagerService.java:9055)
E:at com.android.server.notification.NotificationManagerService$NotificationListeners.notifyPostedLocked(NotificationManagerService.java:9001)
E:atcom.android.server.notification.NotificationManagerService$PostNotificationRunnable.run(NotificationManagerService.java:6123)
E:at android.os.Handler.handleCallback(Handler.java:883)
E:at android.os.Handler.dispatchMessage(Handler.java:100)
E:at android.os.Looper.loop(Looper.java:237)
E:at com.android.server.SystemServer.run(SystemServer.java:932)
E:at com.android.server.SystemSerer.main(SystemServer.java:726)
E:at java.lang.reflect.Method.invoke(Native Method)|
通过对该异常堆栈数据进行分析可提取出以下函数:SystemServer.main、SystemServer.run、Looper.loop、Handler.dispatchMe、Handler.handleCallback、PostNotificationRunnable.run、notifyPostedLocked、updateUriPermissions、grantUriPermission、checkGrantUriPermission。
此外,可在获取到异常堆栈数据后,可首先去除堆栈数据中重复的函数,然后再从堆栈数据中提取堆栈数据中包括的函数。
可根据在先前测试中发现的问题和市场反馈的问题的数据中选择有效数据(诸如线程名称、关键函数、网络服务等)以及与这些问题对应的处理对策。然后可根据这些有效数据和相应的处理对策在预定组合的关键函数与规避方案之间建立对应关系。例如,关键函数可包括main函数、loop函数、doFrame函数、socket函数、grantUriPermission函数等,然而不限于此。
例如,在提取完异常堆栈数据中的函数后,可将提取的函数与预先设置的关键特征变量(这里,可以是关键函数)进行比较,当提取的函数包含预定组合的关键特征,可将与该预定组合的关键特征相应的预定规避方案确定为本次规避方案。
作为另一示例,可基于提取的特征利用异常处理模型来获得相应的规避方案。异常处理模型可以是例如决策树模型。稍后将参照图2和图3详细描述异常处理模型。
根据本公开的实施例,获得的规避方案可包括确定是否对异常情况进行规避以及如何规避异常情况。例如,在规避方案指示不对异常情况进行处理的情况下,可无需提供具体的规避方案(也可称为系统异常规避对策),也就是说,电子设备可不自动对出现的异常情况进行规避。当规避方案指示要对异常情况进行规避时,可提供具体的规避方案。
根据本公开的实施例,可对由于系统重启引起的异常情况进行规避或者可对由于应用程序引起的异常情况进行规避。根据本公开的规避方案可包括跳过异常处理和禁止异常启动中的至少一个。跳过异常处理可包括跳过异常视图绘制、跳过异常消息处理等。禁止异常启动可包括禁止网络服务启动、禁止应用特定子页面(Activity)启动等。上述示例仅是示例性的,本公开不限于此。
针对由于系统重启引起的异常情况,规避方案可包括例如跳过视图绘制操作并重新激活(SkipDraw)、跳过消息处理函数并重新激活(SkipMessage)、禁止网络服务启动(DisableNetwork)、使用系统原生模式进行处理(Fallback)等,然而上述示例仅是示例性的,本公开不限于此。针对由于应用重启引起的异常情况,规避方案可包括跳过异常视图、跳过消息处理和禁止异常子页面(Activity)启动等,然而,上述示例仅是示例性的,本公开不限于此。
此外,在基于获取的信息确定用于处理异常情况的规避方案的过程中,可基于获取的信息确定用于处理异常情况的规避方案以及标识信息,其中,标识信息用于指示确定的规避方案。这里,标识信息可包括一个标志位或者两个标志位,用于后续处理,将在后面进行描述。
作为示例,在确定出的规避方案指示要对异常情况进行处理时,可自动设置一个特殊标志位(即标识信息),设置特殊标志位的目的在于在确定对发生的异常情况进行处理的情况下,当重启系统或应用程序时加入钩子(Hook)函数。钩子函数可实现在一个有序的步骤中的特殊位置(即挂载点)插入自定义的内容。当一个事件触发时,在系统级捕获到了该事件,钩子函数会相应地进行一些操作。
在步骤S103,重新启动系统或应用程序,利用确定的规避方案对异常情况进行处理。具体地,电子设备由于异常情况重启系统或应用程序,当再次捕获该异常情况时,可基于标识信息确定规避方案来规避该异常情况。
作为示例,标识信息可包括一个标志位,该标志位同时表示是否进入钩子函数以及使用哪种规避方案。例如,当标志位为0时,可表示不进入钩子函数,当标志位不为0(例如大于0)时,可表示进入钩子函数,当标志位为1时表示使用规避方案1来规避异常情况,当标志位为2时表示使用规避方案2来规避异常情况,以此类推。然而,上述示例仅是示例性的,本公开不限于此。
在这种情况下,可根据标识信息确定是否进入异常处理函数,如果是,在该异常处理函数中根据标识信息确定规避方案来规避异常情况。这里,异常处理函数可由钩子函数实现。当系统或应用程序重启时,电子设备的系统层可利用标识信息在相应程序中引入包括确定的规避方案的钩子函数。因此,当再次捕获到异常情况时,程序进入钩子函数,在钩子函数中使用在步骤S102中确定的规避方案对发生的异常情况进行规避。
例如,当电子设备的应用SystemUI发生异常后,根据步骤S102可获得规避方案,同时可设置特殊标志位ISRB_enable=2。这表明在应用SystemUI重启时加入钩子函数。当再次捕获到相应的异常情况时,可在钩子函数中使用先前获得的规避方案(即与特殊标志位相应的规避方案2)对该异常情况进行规避。
接下来,电子设备的操作系统自动重启应用SystemUI,在应用SystemUI的重启初期时,根据ISRB_enable用系统的钩子函数接口来设置特殊的钩子函数。当再次捕获异常情况时,可利用特殊的钩子函数来规避该异常情况。
例如,在截获到异常情况之后,根据在步骤S102中确定的规避方案SkipDraw,系统在UI绘制过程中将应用SystemUI的日历相关视图跳过,然后重新激活程序中的Looper。
根据本公开的实施例,当异常发生时,异常数据将由插入的钩子函数截获,这时系统可根据先前确定的规避方案,在钩子函数中采用相应的规避方案,重新激活异常程序中的Looper,而不是直接退出,使得规避了死机的情况。
作为另一实施例,标识信息可包括两个标识位,其中,第一标识位可表示是否进入钩子函数,第二标识位可表示使用的规避方案。可利用在步骤S102确定的规避方案来不同地设置标识信息中的标志位,然而,本公开不限于此。
当应用程序或系统由于异常情况重启时,电子设备再次捕获该异常情况时,可根据标志信息来确定是否进入设置的钩子函数,在该钩子函数中根据标识信息来确定规避方案来规避该异常情况。也就是说,当重新启动并再次捕获到异常情况下,可利用设置的钩子函数来代替系统自带的处理函数,使得在设置的钩子函数中对异常情况进行处理。
在成功规避异常情况后,提示用户异常情况已规避并且需要进一步的修复处理。例如,当电子设备在上述处理后能够正常开机时,操作系统可发送异常情况已被处理的广播,如果接收到该广播后,则认为是成功处理了该异常情况(即正常开机),否则认为未成功处理该异常情况。电子设备可将处理结果上传云端,以用于异常处理模型的更新训练。例如,电子设备的系统可将成功的/未成功的处理结果以及相应的特征值和堆栈数据上传到云端,以供云端训练新的异常处理模型。此外,当其他电子设备在联网并遇到上述类似异常情况时,可直接调用相应的规避方案。
根据本公开的实施例,当电子设备的系统发生异常情况后,系统可自动捕获异常数据并从异常数据中提取函数名称,利用异常处理模型来得到系统异常规避方案,使得电子设备智能地修改系统并且正常启动。
图2示出根据本公开示例性实施例的训练异常处理模型的流程图。异常处理模型的训练可在电子设备本地进行,或者可由外服服务器进行,然后外部服务器将训练好的异常处理模型传送给电子设备。
在步骤S201,获取训练样本。可将测试发现的问题(即异常事件/异常情况)和市场反馈的问题的堆栈数据以及对应的规避方案作为基础数据。每个问题会有相应的堆栈数据。针对每个问题的堆栈数据,可从各个堆栈数据中提取每个堆栈数据中包括的函数。
此外,可从基础数据中选择有效数据,诸如线程名称、关键函数、网络服务、成功处理异常情况的规避方案等。例如,根据专家经验从基础数据中选择上述有效数据。例如,可从上述堆栈数据中选取若干关键函数作为预定关键特征变量,诸如main函数、loop函数、doFrame函数、socket函数、grantUriPermission函数,但不限于此。
然后,通过确定从各个堆栈中提取的函数中是否包含预定的关键函数来对预定的关键特征变量进行赋值。例如,当提取的函数中包括某个关键函数时,可将与该关键函数相应的特征变量赋值为第一值(诸如Y值),当不包括某个关键函数时,可将与该关键函数相应的特征变量赋值为第二值(诸如N值)。
例如,提取堆栈的函数名称,选择关键函数名称作为预定义的关键特征变量,判断提取的函数名称中是否存在预定的关键函数名称,根据判断结果对预定的关键特征变量进行赋值,将已赋值的关键特征变量与对应的规避方案生成训练样本。例如,将main函数、loop函数、doFrame函数、socket函数和grantUriPermission函数等作为关键特征变量。针对一个异常堆栈stack,确定stack是否包括main函数,是否包括loop函数,是否包括doFrame函数,是否包括socket函数,是否包括grantUriPermission函数等。假设权限异常导致开机失败,可根据上述方式来获得样本特征值[main=Y,loop=Y,doFrame=N,socket=N,grantUriPermission=Y,…],并且针对该异常情况的解决对策是SkipMessage。然而,上述示例仅是示例性的,本公开不限于此。
在获得训练样本的过程中,可对大量的问题案例进行标记处理,从而获得诸如以下形式的样本集:
Figure BDA0003006352000000111
然而,上述示例仅是示例性,本公开不限于此。
可根据专家经验选择训练样本中的一部分用于获得异常处理模型,并且选择训练样本中的另一部分作为验证样本来检验异常处理模型的泛化能力和准确率以得到理想的异常处理模型。
可选地,可将从各个堆栈中提取的函数名称和相应的规避方案作为训练样本。
在步骤S202,使用训练样本来训练异常处理模型。以决策树作为异常处理模型为例进行说明。可利用ID3(信息熵增益)或者CART(基尼系数)来构建一个基于堆栈信息特征的决策树。然后利用验证样本检验决策树的泛化能力和准确率,例如,构造P-R曲线。重复以上过程直到获得理想的决策树。
以基于ID3算法生成决策树为例来描述异常处理模型的训练过程。ID3算法的核心思想是以信息增益来度量属性的选择,选择分裂后信息增益最大的属性进行分裂。该算法采用自顶向下的贪婪搜索遍历可能的决策空间。
样本集S信息熵Es=-∑pi·log2pi,其中,pi表示样本对策(即规避方案)为i的概率。假设样本集S按关键特征变量X的值(诸如Y/N)可被划分为S1和S2,可根据上述等式分别得到信息熵ES1和ES2,划分后的信息熵为ES/X=ES1+ES2,可得到信息熵增益dES/X=ES/X-ES
假设样本集S有100个样本,其中,对策为SkipDraw的样本有30个,该类样本概率为0.3;对策为SkipMessage的样本有30个,该类样本概率为0.3;对策为DisableNetwork的样本有20个,该类样本概率为0.2;对策为Fallback的样本有20个,该类样本概率为0.2。此时,信息熵ES=-0.3log2(0.3)-0.3log2(0.3)-0.2log2(0.2)-0.2log2(0.2)。
另假设根据main函数值Y或者N可将样本S分成子样本集S/main-Y和S/main-N,S/main-Y有50个,其中,对策为SkipDraw的样本有20个,该类样本概率为0.4,对策为SkipMessage的样本有10个,该类样本概率为0.2,对策为DisableNetwork的样本有12个,该类样本概率为0.24;对策为Fallback的样本有5个,该类样本概率为0.1;S/main-N也有50个,其中,对策为SkipDraw的样本有10个,该类样本概率为0.2,对策为SkipMessage的样本有20个,该类样本概率为0.4;对策为DisableNetwork的样本有8个,该类样本概率为0.16;对策为Fallback的样本有15个,该类样本概率为0.3。
划分后的子样本集S/main-Y和S/main-N的信息熵分别为:
ES/main-Y=-0.4log2(0.4)-0.2log2(0.2)-0.24log2(0.24)-0.1log2(0.1);
ES/main-N=-0.2log2(0.2)-0.4log2(0.4)-0.16log2(0.16)-0.3log2(0.3)。
划分后的总信息熵为ES/main=ES/main-Y+ES/main-N,可得到如果按照main函数进行划分的信息熵增益dES/main=ES/main-ES
按如上规则依次计算每个关键特征变量作为样本划分条件所产生的熵增益dES/loop、dES/doFrame、…,选择其中熵增益最大的关键特征作为第一层决策节点。以dES/main最大为例,可选择main函数作为第一层决策节点。
可分别对每个划分后的子样本集(这里是S/main-Y和S/main-N)重复上述过程,即计算子样本集的信息熵(诸如ES/main-Y),根据每个关键特征变量X(诸如loop函数、doFrame函数等,其中main函数已经被使用过,所以排除)划分子样本集S/main-Y为S/X-Y和S/X-N并计算对应的信息熵ES/X。计算信息熵增益dES/X=ES/X-ES,并选取其中最大的作为新一层的决策节点,并链接到上层决策节点。
重复以上过程直到关键特征变量用完(已经作为决策树的决策节点)或者子样本集的信息熵为0(子样本集为空或者所有子样本集的对策相同),生成决策树。训练完的决策树可如图3所示,其中,<<R>>表示相应的规避方案符号。上述示例仅是示性,本公开不限于此。可选地,可使用其他的神经网络算法来实现异常处理模型。
在训练好的决策树后,通过提取发生异常时的堆栈中的函数名称等信息,获得相应的关键特征变量值的集合并将其输入至决策树,经过决策树判断来获得输出对应的规避方案。
作为示例,根据图3所示的决策树,判断异常APP是否在主线程(main),当确定在主线程后,判断是否在UI绘制过程中(doFrame),当确定在UI绘制过程中后,可得到相应的对策,即在UI绘制过程中将引起异常的示图跳过(SkipDraw)。例如,以系统出现农历闰月计算逻辑错误为例,在异常堆栈中获取去重后的函数名称:main、doFrame,然后将其与预先确定的关键特征变量进行比较,对所有预先确定的关键特征变量进行赋值,得到特征值为[main=Y,loop=N,doFrame=Y,socket=N,grantUriPermission=N,…],将该特征值输入到训练好的决策树中,可得到相应的对策SkipDraw,即UI绘制过程中将引起异常的视图View跳过,从而使系统恢复正常。
作为另一示例,根据图3所示的决策树,判断异常APP是否在主线程(main),当确定在主线程后,判断是否在UI绘制过程中(doFrame),当确定不在UI绘制过程中后,确定是否权限异常(grantUriPermission),当确定权限异常后,可得到相应的对策,即直接跳过当前消息处理(SkipMessage)。
作为又一示例,根据图3所示的决策树,判断异常APP是否在主线程(main),当确定不在主线程后,确定当前是否在网络线程(socket),当确定当前处于网络线程后,可得到相应的对策,即规避网络相关服务达到开机的目的(DisableNetwork)。
根据上述实施例,可将已经赋值的关键特征变量输入至异常处理模型中,以获得相应的规避方案,或者可将从异常堆栈数据中提取的函数输入至异常处理模型中,在异常处理模型中根据输入的函数对关键特征变量进行赋值,然后得到相应的规避方案。
根据本公开的实施例,可以以每个异常堆栈中的函数名作为异常处理模型的输入,并且以规避方案作为异常处理模型的输出。然后将预测出的规避方案与相应的真实规避方案进行比较来训练异常处理模型。
图4示出根据本公开示例性实施例的异常规避装置的框图。图4所示的异常规避装置可以是上述电子设备,或者是上述电子设备的部分。
参照图4,异常规避装置400可包括获取模块401、确定模块402和处理模块403。异常规避装置400中的每个模块可由一个或多个模块来实现,并且对应模块的名称可根据模块的类型而变化。在各种实施例中,可省略异常规避装置400中的一些模块,或者还可包括另外的模块。此外,根据本公开的各种实施例的模块/元件可以被组合以形成单个实体,并且因此可等效地执行相应模块/元件在组合之前的功能。
当电子设备的系统发生异常情况时,获取模块401可获取与该异常情况相关联的信息。这里,获取的信息可包括异常堆栈数据。例如,当发生引起系统或应用程序重新启动的异常情况时,获取与该异常情况相关联的信息。
确定模块402可基于获取的信息确定用于处理异常情况的规避方案。
确定模块402可从获取的信息提取异常特征。这里,异常特征可包括异常堆栈数据中包含的函数名称。
确定模块402可通过将提取的异常特征与预设的关键特征进行比较来确定所述规避方案。具体地,当提取的异常特征包含预定组合的关键特征时,确定模块402可将该预定组合的关键特征对应的预定规避方案确定为本次规避方案。例如,确定模块402可通过将提取的异常特征与预设的关键特征变量进行比较来确定关键特征变量的特征值,然后在预设规避方案中搜索与特征值相匹配的规避方案作为处理异常情况的规避方案。在本公开中,关键特征的不同组合可分别对应于不同的规避方案。因此,可在比较提取的特征与关键特征变量之后获得相应特征组合以识别出相应的规避方案。
在异常特征是异常堆栈数据中包括的函数名称的情况下,预设的关键特征变量可以是根据专家经验预先选择的若干函数名称作为关键特征变量。
确定模块402可判断提取的异常特征中是否存在相应的关键特征,如果异常特征中存在相应的关键特征,则将与该关键特征相应的关键特征变量赋值为第一值,否则将与该关键特征相应的关键特征变量赋值为第二值。然后,确定模块402可根据已赋值的关键特征变量来识别相应的规避方案。
处理模块403可重新启动系统或应用程序,利用确定的规避方案对异常情况进行处理。具体地,处理模块403由于异常情况重启系统或应用程序,再次捕获异常情况时,可根据规避方案来规避异常情况。
作为另一示例,确定模块402可从提取的异常信息提取异常特征,基于异常特征利用异常处理模型来获得规避方案。异常处理模型可从与电子设备通信连接的外部设备获得,或者可由电子设备在本地通过训练而获得。
异常处理模型可基于以下方式训练被获得:获取训练数据,其中,训练数据包括与多个异常情况相关联的堆栈和规避方案,从堆栈中提取函数;通过将提取的函数与预设的关键函数变量进行比较来对关键函数变量进行赋值,利用赋值的关键函数变量和对应的规避方案来训练异常处理模型。例如,基于提取的函数利用异常处理模型来获得预测规避方案,通过对预测规避方案与训练数据中的真实规避方案进行比较来训练异常处理模型。例如,异常处理模型可以是决策树模型,诸如图3示出的决策树模型。
作为示例,当设备系统遇到闰四月逻辑错误后出现系统崩溃情况,此时,设备系统可自动捕获异常堆栈,从异常堆栈获取函数名称,将函数名称输入到决策树以得到系统异常规避对策,即将相应APP缺失的字符串资源的视图View跳过,使得设备可正常启动。
此外,确定模块402可根据提取的信息和对异常情况的处理结果来更新异常处理模型。
此外,异常规避装置400还可包括提醒模块(未示出)。在成功规避异常情况后,提醒模块可提示用户异常情况已规避并且需要进一步的修复处理。
图5示出根据本公开示例性实施例的异常处理设备的结构示意图。图5的设备能够自动地修改系统故障,从而避免死机或进入故障模型的情况。
如图5所示,异常处理设备500可包括:处理组件501、通信总线502、网络接口503、输入输出接口504、存储器505以及电源组件506。其中,通信总线502用于实现这些组件之间的连接通信。输入输出接口504可以包括视频显示器(诸如,液晶显示器)、麦克风和扬声器以及用户交互接口(诸如,键盘、鼠标、触摸输入装置等),可选地,输入输出接口504还可包括标准的有线接口、无线接口。网络接口503可选的可包括标准的有线接口、无线接口(如无线保真接口)。存储器505可以是高速的随机存取存储器,也可以是稳定的非易失性存储器。存储器505可选的还可以是独立于前述处理组件501的存储装置。
本领域技术人员可以理解,图5中示出的结构并不构成对异常处理设备500的限定,可包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图5所示,作为一种存储介质的存储器505中可包括操作系统(诸如MAC操作系统)、数据存储模块、网络通信模块、用户接口模块、异常处理程序、应用程序以及数据库。
在图5所示的异常处理设备500中,网络接口503主要用于与外部设备/终端进行数据通信;输入输出接口504主要用于与用户进行数据交互;异常处理设备500中的处理组件501、存储器505可被设置在异常处理设备500中,异常处理设备500通过处理组件501调用存储器505中存储的异常处理程序以及由操作系统提供的各种API,执行本公开实施例提供的异常规避方法。
处理组件501可以包括至少一个处理器,存储器505中存储有计算机可以执行指令集合,当计算机可以执行指令集合被至少一个处理器执行时,执行根据本公开实施例的异常规避方法。然而,上述示例仅是示例性的,本公开不限于此。
当电子设备的系统发生异常情况时,处理组件501可获取与该异常情况相关联的信息。这里,获取的信息可包括异常堆栈数据。例如,当发生引起系统或应用程序重新启动的异常情况时,获取与异常情况相关联的信息。
处理组件501可基于获取的信息确定用于处理异常情况的规避方案。
处理组件501可从获取的信息提取异常特征。这里,异常特征可包括异常堆栈数据中包含的函数名称。
处理组件501可通过将提取的异常特征与预设的关键特征进行比较来确定所述规避方案。当提取的异常特征包含预定组合的关键特征时,处理组件501可将该预定组合的关键特征对应的预定规避方案确定为本次规避方案。例如,处理组件501可通过将提取的异常特征与预设的关键特征变量进行比较来确定关键特征变量的特征值,然后在预设规避方案中搜索与特征值相匹配的规避方案作为处理异常情况的规避方案。在异常特征是异常堆栈数据中包括的函数名称的情况下,预设的关键特征变量可以是根据专家经验预先选择的若干函数名称作为关键特征变量。
处理组件501可判断提取的异常特征中是否存在相应的关键特征,如果异常特征中存在相应的关键特征,则将与该关键特征相应的关键特征变量赋值为第一值,否则将与该关键特征相应的关键特征变量赋值为第二值。
在由于异常情况重启系统或应用程序时,处理组件501可利用确定的规避方案对异常情况进行处理。具体地,处理组件501可重启系统或应用程序,再次捕获异常情况并根据规避方案中的系统异常规避对策来处理异常情况。
此外,在基于提取的信息确定规避方案时,处理组件501还确定相应的标识信息,以用于后续的处理。
作为另一示例,处理组件501可从提取的异常信息提取异常特征,基于异常特征利用异常处理模型来获得规避方案。异常处理模型可从与异常处理设备通信连接的外部设备获得,或者可由异常处理设备在本地通过训练而获得。异常处理模型可基于以下方式训练被获得:获取训练数据,其中,训练数据包括与多个异常情况相关联的堆栈和规避方案;从堆栈中提取函数;通过将提取的函数与预设的关键函数变量进行比较来对所述关键函数变量进行赋值,利用赋值的关键函数变量和对应的规避方案来训练所述异常处理模型。此外,基于提取的函数利用异常处理模型来获得预测规避方案,通过对预测规避方案与训练数据中的真实规避方案进行比较来训练异常处理模型。例如,异常处理模型可以是决策树模型,诸如图3示出的决策树模型。
处理组件501由于异常情况重新启动系统或应用程序,当再次发生该异常情况时,基于标识信息确定规避方案来规避异常情况。例如,处理组件501可根据标识信息确定是否进入异常处理函数,如果是,在异常处理函数中根据标识信息确定规避方案来规避异常情况。
此外,处理组件501可根据提取的信息和对异常情况的处理结果来更新异常处理模型。或者,处理组件501可将针对本次处理的异常情况的信息(诸如堆栈数据)和处理结果经由输入输出接口504发送到具有异常处理模型的外部设备,由外部设备对异常处理模型进行更新训练。
作为示例,异常处理设备500可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,异常处理设备500并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。异常处理设备500还可以是集成控制系统或系统管理器的一部分,或者可以被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在异常处理设备500中,处理组件501可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理组件501还可以包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理组件501可运行存储在存储器中的指令或代码,其中,存储器505还可以存储数据。指令和数据还可以经由网络接口503而通过网络被发送和接收,其中,网络接口503可以采用任何已知的传输协议。
存储器505可以与处理组件501集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器505可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可以使用的其他存储装置。存储器和处理组件501可以在操作上进行耦合,或者可以例如通过I/O端口、网络连接等互相通信,使得处理组件501能够读取存储在存储器505中的数据。
图6示出根据本公开示例性实施例的计算装置的示意图。
参照图6,根据本公开示例性实施例的计算装置600,包括存储器601和处理器602,存储器601上存储有计算机程序,当所述计算机程序被处理器602执行时,实现根据本公开的示例性实施例的异常规避方法。
作为示例,当所述计算机程序被处理器602执行时,可实现以下步骤:当发生引起系统或应用程序重新启动的异常情况时,获取与所述异常情况相关联的信息;基于所述信息确定用于处理所述异常情况的规避方案;重新启动系统或应用程序,利用所述规避方案来规避所述异常情况。
当电子设备的系统发生异常时,系统可捕获异常信息,对异常信息进行分析,然后根据分析结果利用决策树来得到规避方案,当规避方案指示将对该异常进行处理时,系统可设置一个特殊标志位,由于异常情况重启系统或APP,系统可根据该特殊标志位设置自定义的异常处理函数(加入钩子函数),当再次捕获到该异常情况时,程序进入钩子函数,在钩子函数中使用规避方案中的相应对策,对捕获的异常情况进行处理/规避。电子设备可确定按照上述处理系统或APP是否正常启动,然后记录成功或未成功的处理方案上传至云端。当其他设备遇到类似的问题后,可直接调用相应的处理方案。
本公开实施例中的计算装置可以包括但不限于诸如移动电话、笔记本电脑、PDA(个人数字助理)、PAD(平板电脑)、台式计算机等的装置。图6示出的计算装置仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如这里所使用的,术语“模块”可包括以硬件、软件或固件实现的单元,并可与其他术语(例如,“逻辑”、“逻辑块”、“部分”或“电路”)可互换地使用。模块可以是被适配为执行一个或更多个功能的单个集成部件或者是该单个集成部件的最小单元或部分。例如,根据实施例,可以以专用集成电路(ASIC)的形式来实现模块。
可将在此阐述的各种实施例实现为包括存储在存储介质中的可由机器(例如,移动装置)读取的一个或更多个指令的软件。例如,在处理器的控制下,所述机器的处理器可在使用或无需使用一个或更多个其它部件的情况下调用存储在存储介质中的所述一个或更多个指令中的至少一个指令并运行所述至少一个指令。这使得所述机器能够操作用于根据所调用的至少一个指令执行至少一个功能。所述一个或更多个指令可包括由编译器产生的代码或能够由解释器运行的代码。可以以非暂时性存储介质的形式来提供机器可读存储介质。其中,术语“非暂时性”仅意味着所述存储介质是有形装置,并且不包括信号(例如,电磁波),但是该术语并不在数据被半永久性地存储在存储介质中与数据被临时存储在存储介质中之间进行区分。
根据实施例,可在计算机程序产品中包括和提供根据本公开的各种实施例的方法。计算机程序产品可作为产品在销售者和购买者之间进行交易。可以以机器可读存储介质(例如,紧凑盘只读存储器(CD-ROM))的形式来发布计算机程序产品,或者可经由应用商店(例如,Play StoreTM)在线发布(例如,下载或上传)计算机程序产品,或者可直接在两个用户装置(例如,智能电话)之间分发(例如,下载或上传)计算机程序产品。如果是在线发布的,则计算机程序产品中的至少部分可以是临时产生的,或者可将计算机程序产品中的至少部分至少临时存储在机器可读存储介质(诸如制造商的服务器、应用商店的服务器或转发服务器的存储器)中。
根据各种实施例,上述部件中的每个部件(例如,模块或程序)可包括单个实体或多个实体(例如,在图6中,存储器601可包括一个或多个存储器,处理器602可包括一个或多个处理器)。根据各种实施例,可省略上述部件中的一个或更多个部件,或者可添加一个或更多个其它部件。可选择地或者另外地,可将多个部件(例如,模块或程序)集成为单个部件。在这种情况下,根据各种实施例,该集成部件可仍旧按照与所述多个部件中的相应一个部件在集成之前执行一个或更多个功能相同或相似的方式,执行所述多个部件中的每一个部件的所述一个或更多个功能。根据各种实施例,由模块、程序或另一部件所执行的操作可顺序地、并行地、重复地或以启发式方式来执行,或者所述操作中的一个或更多个操作可按照不同的顺序来运行或被省略,或者可添加一个或更多个其它操作。
多个模块中的至少一个可以通过AI模型实现。与AI相关联的功能可以通过非易失性存储器、易失性存储器和处理器来执行。
处理器可以包括一个或多个处理器。此时,一个或多个处理器可以是通用处理器,例如中央处理器(CPU)、应用处理器(AP)等,仅用于图形的处理器(例如图形处理器(GPU)、视觉处理器(VPU)和/或AI专用处理器(例如神经处理单元(NPU))。
一个或多个处理器根据存储在非易失性存储器和易失性存储器中的预定义操作规则或人工智能(AI)模型来控制输入数据的处理。预定义的操作规则或人工智能模型可通过训练或学习提供。这里,通过学习提供意味着,通过将学习算法应用于多个学习数据,形成具有期望特性的预定义操作规则或AI模型。学习可以在根据实施例的执行AI的设备本身中执行,和/或可以通过单独的服务器/设备/系统来实现。
作为示例,人工智能模型可以由多个神经网络层组成。每一层具有多个权重值,并且通过前一层的计算和多个权重值的操作来执行层操作。神经网络的例子包括但不限于卷积神经网络(CNN)、深度神经网络(DNN)、递归神经网络(RNN)、受限玻尔兹曼机(RBM)、深度置信网络(DBN)、双向递归深度神经网络(BRDNN)、生成式对抗网络(GAN)和深度Q网络。
学习算法是使用多个学习数据来训练预定目标设备(例如,机器人)以使得、允许或控制目标设备做出确定或预测的方法。学习算法的例子包括但不限于有监督学习、无监督学习、半监督学习或强化学习。
本公开能够快速精确地为用户选择与相应时间或地点匹配的图像,节省了用户的操作时间,从而提升用户体验。
尽管已经参照其示例性实施例具体显示和描述了本公开,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本公开的精神和范围的情况下,可以对其进行形式和细节上的各种改变。

Claims (25)

1.一种电子设备的异常规避方法,所述异常规避方法包括:
当发生引起系统或应用程序重新启动的异常情况时,获取与所述异常情况相关联的信息;
基于所述信息确定用于处理所述异常情况的规避方案;
重新启动系统或应用程序,利用所述规避方案来规避所述异常情况。
2.如权利要求1所述的异常规避方法,其特征在于,基于所述信息确定用于处理所述异常情况的规避方案的步骤包括:
从所述信息提取异常特征;
通过将所述异常特征与预设的关键特征进行比较来确定所述规避方案。
3.如权利要求2所述的异常规避方法,其特征在于,所述信息包括堆栈数据,所述异常特征包括堆栈数据中包含的函数名称。
4.如权利要求2所述的异常规避方法,其特征在于,通过将所述异常特征与预设的关键特征进行比较来确定所述规避方案的步骤包括:
当所述异常特征包含预定组合的关键特征时,将所述预定组合的关键特征相应的预定规避方案确定为所述规避方案。
5.如权利要求1所述的异常规避方法,其特征在于,基于所述信息确定用于处理所述异常情况的规避方案的步骤包括:
基于所述信息确定用于处理所述异常情况的规避方案以及标识信息,
其中,所述标识信息用于指示所述规避方案,
其中,重新启动系统或应用程序,利用所述规避方案来规避所述异常情况的步骤包括:
重新启动系统或应用程序,当再次发生所述异常情况时,基于所述标识信息确定规避方案来规避所述异常情况。
6.如权利要求5所述的异常规避方法,其特征在于,基于所述标识信息确定规避方案来规避所述异常情况的步骤包括:
根据所述标识信息确定是否进入异常处理函数,如果是,在所述异常处理函数中根据所述标识信息确定规避方案来规避所述异常情况。
7.如权利要求1所述的异常规避方法,其特征在于,基于所述信息确定用于处理所述异常情况的规避方案的步骤包括:
从所述信息提取异常特征;
基于所述异常特征利用异常处理模型来获得所述规避方案。
8.如权利要求7所述的异常规避方法,其特征在于,所述异常处理模型基于以下方式被获得:
获取训练数据,其中,所述训练数据包括多组训练样本;
利用所述训练数据训练所述异常处理模型。
9.如权利要求8所述的异常规避方法,其特征在于,所述训练样本包括与所述异常情况关联的关键特征变量值与相应的规避方案,
其中,根据所述异常特征与预设的关键特征的比较结果,确定所述与所述异常情况关联的关键特征变量值。
10.如权利要求7所述的异常规避方法,其特征在于,所述异常处理模型是决策树模型。
11.如权利要求1所述的异常规避方法,其特征在于,所述规避方案包括跳过异常处理、禁止异常启动中的至少一个。
12.如权利要求1所述的异常规避方法,其特征在于,所述异常规避方法还包括:
在成功规避所述异常情况后,提示用户所述异常情况已规避并且需要进一步的修复处理。
13.一种异常规避装置,包括:
获取模块,被配置为当发生引起系统或应用程序重新启动的异常情况时,获取与所述异常情况相关联的信息;
确定模块,被配置为基于所述信息确定用于处理所述异常情况的规避方案;
处理模块,被配置为重新启动系统或应用程序,利用所述规避方案来规避所述异常情况。
14.如权利要求13所述的异常规避装置,其特征在于,确定模块被配置为:
从所述信息提取异常特征;
通过将所述异常特征与预设的关键特征进行比较来确定所述规避方案。
15.如权利要求14所述的异常规避装置,其特征在于,所述信息包括堆栈数据,所述异常特征包括堆栈数据中包含的函数名称。
16.如权利要求14所述的异常规避装置,其特征在于,确定模块被配置为:当所述异常特征包含预定组合的关键特征时,将所述预定组合的关键特征相应的预定规避方案确定为所述规避方案。
17.如权利要求13所述的异常规避装置,其特征在于,确定模块被配置为基于所述信息确定用于处理所述异常情况的规避方案以及标识信息,其中,所述标识信息用于指示所述规避方案,
其中,处理模块被配置为重新启动系统或应用程序,当再次发生所述异常情况时,基于所述标识信息确定规避方案来规避所述异常情况。
18.如权利要求17所述的异常规避装置,其特征在于,处理模块被配置为:
根据所述标识信息确定是否进入异常处理函数,如果是,在所述异常处理函数中根据所述标识信息确定规避方案来规避所述异常情况。
19.如权利要求13所述的异常规避装置,其特征在于,确定模块被配置为:
从所述信息提取异常特征;
基于所述异常特征利用异常处理模型来获得所述规避方案。
20.如权利要求19所述的异常规避装置,其特征在于,所述异常处理模型基于以下方式被获得:
获取训练数据,其中,所述训练数据包括与多个异常情况相关联的堆栈和相应的规避方案;
从所述堆栈中提取函数;
通过将提取的函数与预设的关键函数变量进行比较来对所述关键函数变量进行赋值;
利用赋值的关键函数变量和对应的规避方案来训练所述异常处理模型。
21.如权利要求19所述的异常规避装置,其特征在于,所述异常处理模型是决策树模型。
22.如权利要求13所述的异常规避装置,其特征在于,所述规避方案包括跳过异常处理和禁止异常启动中的至少一个。
23.如权利要求13所述的异常规避装置,其特征在于,所述异常规避装置还包括提示模块,被配置为:在成功规避所述异常情况后,提示用户所述异常情况已规避并且需要进一步的修复处理。
24.一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时,实现权利要求1至12中任一项所述的异常规避方法。
25.一种计算装置,包括:
处理器;
存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现权利要求1至12中任一项所述的异常规避方法。
CN202110363082.6A 2021-04-02 2021-04-02 异常规避方法和异常规避装置 Pending CN115185722A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110363082.6A CN115185722A (zh) 2021-04-02 2021-04-02 异常规避方法和异常规避装置
PCT/KR2022/004494 WO2022211483A1 (en) 2021-04-02 2022-03-30 Method and apparatus for avoiding exception

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110363082.6A CN115185722A (zh) 2021-04-02 2021-04-02 异常规避方法和异常规避装置

Publications (1)

Publication Number Publication Date
CN115185722A true CN115185722A (zh) 2022-10-14

Family

ID=83459407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110363082.6A Pending CN115185722A (zh) 2021-04-02 2021-04-02 异常规避方法和异常规避装置

Country Status (2)

Country Link
CN (1) CN115185722A (zh)
WO (1) WO2022211483A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112012005589T5 (de) * 2012-01-05 2014-10-16 Mitsubishi Electric Corporation Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Computerprogramm
JP2015138512A (ja) * 2014-01-24 2015-07-30 富士通株式会社 状態監視装置、状態監視方法、及び状態監視プログラム
JP6627353B2 (ja) * 2015-09-16 2020-01-08 富士ゼロックス株式会社 制御装置及びロボット
CN106648730A (zh) * 2016-09-26 2017-05-10 北京小米移动软件有限公司 异常应用的处理方法和装置
CN111796960A (zh) * 2020-07-01 2020-10-20 中国建设银行股份有限公司 一种机器人设备异常自动化恢复的方法及系统

Also Published As

Publication number Publication date
WO2022211483A1 (en) 2022-10-06

Similar Documents

Publication Publication Date Title
US11868242B1 (en) Method, apparatus, and computer program product for predictive API test suite selection
US10884901B2 (en) System and method for configurable and proactive application diagnostics and recovery
CN105144074B (zh) 使用混合存储器设备的块存储
CN109325349A (zh) 一种安全管理方法、终端设备及计算机可读存储介质
US11567756B2 (en) Causality determination of upgrade regressions via comparisons of telemetry data
JP5198154B2 (ja) 障害監視システム及びデバイスと監視装置並びに障害監視方法
CN112882734B (zh) 升级方法及装置、计算机设备和介质
WO2021243342A1 (en) Action recommendation for application failure
US8719622B2 (en) Recording and preventing crash in an appliance
US11119894B2 (en) System and method for configurable and proactive application diagnostics and recovery
CN115185722A (zh) 异常规避方法和异常规避装置
CN116610336A (zh) 一种固件升级方法、系统、装置及可读存储介质
CN114816806A (zh) 容器可用性验证方法、装置、计算机设备和存储介质
CN113672514A (zh) 测试方法、装置、服务器及存储介质
CN111475400A (zh) 一种业务平台的验证方法及相关设备
CN116701895A (zh) 信息比对方法、装置和计算机设备
CN117331812A (zh) 业务代码验证方法、装置、计算机设备、存储介质和产品
CN116737568A (zh) 远程调试方法、装置、计算机设备和存储介质
CN117827661A (zh) 代码语法检查方法、系统、计算机设备及存储介质
CN117132283A (zh) 识别方法、装置、计算机设备、存储介质和程序产品
CN116107627A (zh) 一种代码调整方法、装置、计算机设备及存储介质
CN112947948A (zh) 应用服务的部署方法及装置
CN114238055A (zh) 任务数据处理方法、装置、电子设备及存储介质
CN115827434A (zh) 软件系统的版本检测方法、装置、存储介质及计算机设备
CN114896590A (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