CN110058999A - 电子装置、应用程序异常定位方法及存储介质 - Google Patents
电子装置、应用程序异常定位方法及存储介质 Download PDFInfo
- Publication number
- CN110058999A CN110058999A CN201910190457.6A CN201910190457A CN110058999A CN 110058999 A CN110058999 A CN 110058999A CN 201910190457 A CN201910190457 A CN 201910190457A CN 110058999 A CN110058999 A CN 110058999A
- Authority
- CN
- China
- Prior art keywords
- pitching pile
- operation object
- code
- information
- misoperation
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出了一种应用程序异常定位方法,包括:在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。在无需加入大量埋点的情况下,能够快速进行应用程序异常定位,提高异常解决效率。此外,本发明还提出一种电子装置及存储介质。
Description
技术领域
本发明涉及应用程序异常定位领域,尤其涉及一种电子装置、应用程序异常定位方法及存储介质。
背景技术
目前,移动终端上安装有大量应用程序,以满足用户的各种需求。而应用程序在版本升级过程中,如果出现严重缺陷则会导致运行异常需要及时进行异常定位以方便修复,以避免影响用户的体验效果。
而常用的异常定位方法是通过人工进行手动埋点,由于无法预测问题出现的具体位置,因此选择在一些关键的地方进行埋点处理,不仅工作量大,且存在异常定位不准确,效率低下的问题。
发明内容
有鉴于此,本发明提出一种电子装置、应用程序异常定位方法及存储介质,在无需加入大量埋点的情况下,能够快速进行应用程序异常定位,提高异常解决效率。
首先,为实现上述目的,本发明提出一种电子装置,所述电子装置包括存储器、及与所述存储器连接的处理器,所述处理器用于执行所述存储器上存储的应用程序异常定位程序,所述应用程序异常定位程序被所述处理器执行时实现如下步骤:
A1、在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;
A2、运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;
A3、执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;
A4、根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。
优选地,在所述步骤A1中,所述插桩代码为用于检测并执行包含有方法名和类名的脚本文件的代码,所述运行对象为所述应用程序中的方法。
优选地,所述插桩点包括插桩代码信息的筛选标记,所述步骤A2包括:
获取与所述筛选标记匹配的待筛选运行对象;
判断所述待筛选运行对象与预设的黑名单标记信息是否匹配;
当待筛选运行对象与预设的黑名单标记信息匹配时,则确定所述待筛选运行对象为所述异常运行对象。
优选地,所述插桩代码的筛选标记为预定义位数的二进制数据,和/或预定义长度的字符串。
优选地,在所述步骤A3中,所述桩点数据包括时间戳、事件标签和堆栈信息;所述时间戳用来标记程序运行至插桩点时的时间戳;所述事件标签用于对插桩点所属的事件进行标记;所述堆栈信息用于在接收到客户端发送的应用程序运行异常后,获取所述应用程序运行的业务场景信息。
此外,为了实现上述目的,本发明还提出一种应用程序异常定位方法,所述方法包括如下步骤:
S1、在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;
S2、运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;
S3、执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;
S4、根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。
优选地,在所述步骤S1中,所述插桩代码为用于检测并执行包含有方法名和类名的脚本文件的代码,所述运行对象为所述应用程序中的方法。
优选地,所述插桩点包括插桩代码信息的筛选标记,所述步骤S2包括:
获取与所述筛选标记匹配的待筛选运行对象;
判断所述待筛选运行对象与预设的黑名单标记信息是否匹配;
当待筛选运行对象与预设的黑名单标记信息匹配时,则确定所述待筛选运行对象为所述异常运行对象。
优选地,所述插桩代码的筛选标记为预定义位数的二进制数据,和/或预定义长度的字符串。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有应用程序异常定位程序,所述应用程序异常定位程序可被至少一个处理器执行,以使所述至少一个处理器执行如上所述的应用程序异常定位方法的步骤。
本发明所提出的电子装置、应用程序异常定位方法及存储介质,通过在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。在无需加入大量埋点的情况下,能够快速进行应用程序异常定位,提高异常解决效率。
附图说明
图1是本发明提出的电子装置一可选的硬件架构的示意图;
图2是本发明电子装置一实施例中应用程序异常定位程序的程序模块示意图;
图3是本发明应用程序异常定位方法较佳实施例的实施流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图1所示,是本发明提出的电子装置一可选的硬件架构示意图。本实施例中,电子装置10可包括,但不仅限于,可通过通信总线14相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图1仅示出了具有组件11-14的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
其中,存储器11至少包括一种类型的计算机可读存储介质,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器11可以是电子装置10的内部存储单元,例如电子装置10的硬盘或内存。在另一些实施例中,存储器11也可以是电子装置10的外包存储设备,例如电子装置10上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。当然,存储器11还可以既包括电子装置10的内部存储单元也包括其外包存储设备。本实施例中,存储器11通常用于存储安装于电子装置10的操作系统和各类应用软件,例如应用程序异常定位程序等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。处理器12通常用于控制电子装置10的总体操作。本实施例中,处理器12用于运行存储器11中存储的程序代码或者处理数据,例如运行的应用程序异常定位程序等。
网络接口13可包括无线网络接口或有线网络接口,网络接口13通常用于在电子装置10与其他电子设备之间建立通信连接。
通信总线14用于实现组件11-13之间的通信连接。
图1仅示出了具有组件11-14以及应用程序异常定位程序的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,电子装置10还可以包括用户接口(图1中未示出),用户接口可以包括显示器、输入单元比如键盘,其中,用户接口还可以包括标准的有线接口、无线接口等。
可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED触摸器等。进一步地,显示器也可称为显示屏或显示单元,用于显示在电子装置10中处理信息以及用于显示可视化的用户界面。
可选地,在一些实施例中,电子装置10还可以包括音频单元(音频单元图1中未示出),音频单元可以在电子装置10处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将接收的或者存储的音频数据转换为音频信号;进一步地,电子装置10还可以包括音频输出单元,音频输出单元将音频单元转换的音频信号输出,而且音频输出单元还可以提供与电子装置10执行的特定功能相关的音频输出(例如呼叫信号接收声音、消息接收声音等等),音频输出单元可以包括扬声器、蜂鸣器等等。
可选地,在一些实施例中,电子装置10还可以包括警报单元(图中未示出),警报单元可以提供输出已将事件的发生通知给电子装置10。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或者视频输出之外,警报单元可以以不同的方式提供输出以通知事件的发生。例如,警报单元可以以震动的形式提供输出,当接收到呼叫、消息或一些其他可以使电子装置10进入通信模式时,警报单元可以提供触觉输出(即,振动)以将其通知给用户。
在一实施例中,存储器11中存储的应用程序异常定位程序被处理器12执行时,实现如下操作:
A1,在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;
需要说明的是,在本发明的实施例中,插桩代码是用于检测并执行包含有方法名和类名的脚本文件的代码。插桩代码的原理是在不破坏运行对象原有逻辑完整性的前提下,在程序的相应位置上插入一些探针。这些探针本质上就是进行信息采集并执行脚本文件的代码段,可以是赋值语句或采集覆盖信息的函数调用。通过探针的执行并输出程序的运行特征数据。
具体地,在本实施例中,运行对象可以是指应用程序中的方法,在应用程序中的每个方法前插入预定义的插桩代码,插桩代码在执行过程中,会去读取和解析脚本文件中的方法名和类文件,然后执行该脚本文件。进一步地,对运行对象进行插桩的过程可以直接在运行对象程序中加载插桩代码和宏命令;也可以获取配置文件,所述配置文件中包含插桩点和对应的插桩代码,根据所述配置文件,在运行对象的插桩点处插入对应的所述插桩代码,生成插桩后的运行对象。具体地,通过采用宏命令插桩,能够提高方法的简洁性和程序的可读性。在本实施例中,应用程序的每个运行对象的预定义插桩点位置相同,均为每个运行对象的起始位置,可以理解的是,每个运行对象的预定义插桩点位置也可以不同,在此不做具体限定。
A2,运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;
所述插桩点包括插桩代码信息的筛选标记,所述步骤A2包括:
获取与所述筛选标记匹配的待筛选运行对象;
具体地,所述插桩代码的筛选标记可以为预定义位数的二进制数据,也可以是预定义长度的字符串,本发明对插桩代码信息的筛选标记的字符长度和字符类型不作限定。
判断所述待筛选运行对象与预设的黑名单标记信息是否匹配;
具体地,预设的黑名单标记信息可以对异常运行对象作进一步筛选,黑名单标记信息可以根据待筛选运行对象的标识信息进行筛选。
当待筛选运行对象与预设的黑名单标记信息匹配时,则确定所述待筛选运行对象为所述异常运行对象。
在实际应用中,黑名单标记信息可以为在预定义的时间段内根据客户端反馈的运行对象的运行状态进行动态调整,将一定时间内运行中出现错误的的运行对象的标记信息添加至黑名单标记信息中,并进行存储。
在一优选实施例中,黑名单标记信息可以包括黑名单方法名信息和/或黑名单代码类信息。可以获取待筛选运行对象的方法名信息,将待筛选运行对象的方法名信息与黑名单方法名信息进行匹配,从而判断待筛选运行对象是否为异常运行对象,和/或获取待筛选运行对象的代码类信息,将待筛选运行对象的代码类信息与黑名单代码类信息进行匹配,从而判断待筛选运行对象是否为异常运行对象。从而实现针对待筛选运行对象的方法名信息,和/或代码类信息进行筛选,更加准确的获取异常运行对象。
A3,执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;所述桩点数据包括时间戳、事件标签和堆栈信息;
具体地,在本实施例中,所述时间戳用来标记程序运行至插桩点时的时间戳;所述事件标签用于对插桩点所属的事件进行标记;所述堆栈信息用于在接收到客户端发送的应用程序运行异常后,获取所述应用程序运行的业务场景信息;
A4,根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。
由上述事实施例可知,本发明提出的电子装置,通过在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。在无需加入大量埋点的情况下,能够快速进行应用程序异常定位,提高异常解决效率。
此外,本发明的应用程序异常定位程序依据其各部分所实现的功能不同,可用具有相同功能的程序模块进行描述。请参阅图2所示,是本发明电子装置一实施例中应用程序异常定位程序的程序模块示意图。本实施例中,应用程序异常定位程序依据其各部分所实现的功能的不同,可以被分割成插入模块201、确定模块202、获取模块203以及定位模块204等具有特定功能的一系列计算机程序指令段,比程序更适合于描述应用程序异常定位程序在电子装置10中的执行过程。所述模块201-204所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如其中:
插入模块201用于在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;
确定模块202用于运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;
获取模块203用于执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;
定位模块204用于根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。
此外,本发明还提出一种应用程序异常定位方法,请参阅图3所示,所述应用程序异常定位方法包括如下步骤:
S301,在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;
需要说明的是,在本发明的实施例中,插桩代码是用于检测并执行包含有方法名和类名的脚本文件的代码。插桩代码的原理是在不破坏运行对象原有逻辑完整性的前提下,在程序的相应位置上插入一些探针。这些探针本质上就是进行信息采集并执行脚本文件的代码段,可以是赋值语句或采集覆盖信息的函数调用。通过探针的执行并输出程序的运行特征数据。
具体地,在本实施例中,运行对象可以是指应用程序中的方法,在应用程序中的每个方法前插入预定义的插桩代码,插桩代码在执行过程中,会去读取和解析脚本文件中的方法名和类文件,然后执行该脚本文件。进一步地,对运行对象进行插桩的过程可以直接在运行对象程序中加载插桩代码和宏命令;也可以获取配置文件,所述配置文件中包含插桩点和对应的插桩代码,根据所述配置文件,在运行对象的插桩点处插入对应的所述插桩代码,生成插桩后的运行对象。具体地,通过采用宏命令插桩,能够提高方法的简洁性和程序的可读性。在本实施例中,应用程序的每个运行对象的预定义插桩点位置相同,均为每个运行对象的起始位置,可以理解的是,每个运行对象的预定义插桩点位置也可以不同,在此不做具体限定。
S302,运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;
所述插桩点包括插桩代码信息的筛选标记,所述步骤A2包括:
获取与所述筛选标记匹配的待筛选运行对象;
具体地,所述插桩代码的筛选标记可以为预定义位数的二进制数据,也可以是预定义长度的字符串,本发明对插桩代码信息的筛选标记的字符长度和字符类型不作限定。
判断所述待筛选运行对象与预设的黑名单标记信息是否匹配;
具体地,预设的黑名单标记信息可以对异常运行对象作进一步筛选,黑名单标记信息可以根据待筛选运行对象的标识信息进行筛选。
当待筛选运行对象与预设的黑名单标记信息匹配时,则确定所述待筛选运行对象为所述异常运行对象。
在实际应用中,黑名单标记信息可以为在预定义的时间段内根据客户端反馈的运行对象的运行状态进行动态调整,将一定时间内运行中出现错误的的运行对象的标记信息添加至黑名单标记信息中,并进行存储。
在一优选实施例中,黑名单标记信息可以包括黑名单方法名信息和/或黑名单代码类信息。可以获取待筛选运行对象的方法名信息,将待筛选运行对象的方法名信息与黑名单方法名信息进行匹配,从而判断待筛选运行对象是否为异常运行对象,和/或获取待筛选运行对象的代码类信息,将待筛选运行对象的代码类信息与黑名单代码类信息进行匹配,从而判断待筛选运行对象是否为异常运行对象。从而实现针对待筛选运行对象的方法名信息,和/或代码类信息进行筛选,更加准确的获取异常运行对象。
S303,执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;所述桩点数据包括时间戳、事件标签和堆栈信息;
具体地,在本实施例中,所述时间戳用来标记程序运行至插桩点时的时间戳;所述事件标签用于对插桩点所属的事件进行标记;所述堆栈信息用于在接收到客户端发送的应用程序运行异常后,获取所述应用程序运行的业务场景信息;
S304,根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。
由上述事实施例可知,本发明提出的应用程序异常定位方法,通过在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。在无需加入大量埋点的情况下,能够快速进行应用程序异常定位,提高异常解决效率。
此外,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有应用程序异常定位程序,所述应用程序异常定位程序被处理器执行时实现如下操作:
在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;
运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;
执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;
根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。
需要说明的是,在本发明的实施例中,插桩代码是用于检测并执行包含有方法名和类名的脚本文件的代码。插桩代码的原理是在不破坏运行对象原有逻辑完整性的前提下,在程序的相应位置上插入一些探针。这些探针本质上就是进行信息采集并执行脚本文件的代码段,可以是赋值语句或采集覆盖信息的函数调用。通过探针的执行并输出程序的运行特征数据。
具体地,在本实施例中,运行对象可以是指应用程序中的方法,在应用程序中的每个方法前插入预定义的插桩代码,插桩代码在执行过程中,会去读取和解析脚本文件中的方法名和类文件,然后执行该脚本文件。进一步地,对运行对象进行插桩的过程可以直接在运行对象程序中加载插桩代码和宏命令;也可以获取配置文件,所述配置文件中包含插桩点和对应的插桩代码,根据所述配置文件,在运行对象的插桩点处插入对应的所述插桩代码,生成插桩后的运行对象。具体地,通过采用宏命令插桩,能够提高方法的简洁性和程序的可读性。在本实施例中,应用程序的每个运行对象的预定义插桩点位置相同,均为每个运行对象的起始位置,可以理解的是,每个运行对象的预定义插桩点位置也可以不同,在此不做具体限定。
优选地,所述插桩点包括插桩代码信息的筛选标记,所述运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象的步骤包括:
获取与所述筛选标记匹配的待筛选运行对象;
具体地,所述插桩代码的筛选标记可以为预定义位数的二进制数据,也可以是预定义长度的字符串,本发明对插桩代码信息的筛选标记的字符长度和字符类型不作限定。
判断所述待筛选运行对象与预设的黑名单标记信息是否匹配;
具体地,预设的黑名单标记信息可以对异常运行对象作进一步筛选,黑名单标记信息可以根据待筛选运行对象的标识信息进行筛选。
当待筛选运行对象与预设的黑名单标记信息匹配时,则确定所述待筛选运行对象为所述异常运行对象。
在实际应用中,黑名单标记信息可以为在预定义的时间段内根据客户端反馈的运行对象的运行状态进行动态调整,将一定时间内运行中出现错误的的运行对象的标记信息添加至黑名单标记信息中,并进行存储。
在一优选实施例中,黑名单标记信息可以包括黑名单方法名信息和/或黑名单代码类信息。可以获取待筛选运行对象的方法名信息,将待筛选运行对象的方法名信息与黑名单方法名信息进行匹配,从而判断待筛选运行对象是否为异常运行对象,和/或获取待筛选运行对象的代码类信息,将待筛选运行对象的代码类信息与黑名单代码类信息进行匹配,从而判断待筛选运行对象是否为异常运行对象。从而实现针对待筛选运行对象的方法名信息,和/或代码类信息进行筛选,更加准确的获取异常运行对象。
通过上述分析可知,本发明提出的计算机可读存储介质,
通过在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。在无需加入大量埋点的情况下,能够快速进行应用程序异常定位,提高异常解决效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种电子装置,其特征在于,所述电子装置包括存储器、及与所述存储器连接的处理器,所述处理器用于执行所述存储器上存储的应用程序异常定位程序,所述应用程序异常定位程序被所述处理器执行时实现如下步骤:
A1、在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;
A2、运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;
A3、执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;
A4、根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。
2.如权利要求1所述的电子装置,其特征在于,在所述步骤A1中,所述插桩代码为用于检测并执行包含有方法名和类名的脚本文件的代码,所述运行对象为所述应用程序中的方法。
3.如权利要求1所述的电子装置,其特征在于,所述插桩点包括插桩代码信息的筛选标记,所述步骤A2包括:
获取与所述筛选标记匹配的待筛选运行对象;
判断所述待筛选运行对象与预设的黑名单标记信息是否匹配;
当待筛选运行对象与预设的黑名单标记信息匹配时,则确定所述待筛选运行对象为所述异常运行对象。
4.如权利要求3所述的电子装置,其特征在于,所述插桩代码的筛选标记为预定义位数的二进制数据,和/或预定义长度的字符串。
5.如权利要求1所述的电子装置,其特征在于,在所述步骤A3中,所述桩点数据包括时间戳、事件标签和堆栈信息;所述时间戳用来标记程序运行至插桩点时的时间戳;所述事件标签用于对插桩点所属的事件进行标记;所述堆栈信息用于在接收到客户端发送的应用程序运行异常后,获取所述应用程序运行的业务场景信息。
6.一种应用程序异常定位方法,其特征在于,所述方法包括如下步骤:
S1、在应用程序的每个运行对象的预定义插桩点位置,插入插桩代码,生成插桩后的各运行对象;
S2、运行插桩后的各运行对象,若有插桩后的运行对象的插桩点被触发,则确定该插桩点对应的运行对象为异常运行对象;
S3、执行与触发该异常运行对象对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;
S4、根据所述桩点数据,生成所述异常运行对象的执行日志信息,根据所述日志信息进行异常定位。
7.如权利要求6所述的应用程序异常定位方法,其特征在于,在所述步骤S1中,所述插桩代码为用于检测并执行包含有方法名和类名的脚本文件的代码,所述运行对象为所述应用程序中的方法。
8.如权利要求6所述的应用程序异常定位方法,其特征在于,所述插桩点包括插桩代码信息的筛选标记,所述步骤S2包括:
获取与所述筛选标记匹配的待筛选运行对象;
判断所述待筛选运行对象与预设的黑名单标记信息是否匹配;
当待筛选运行对象与预设的黑名单标记信息匹配时,则确定所述待筛选运行对象为所述异常运行对象。
9.如权利要求8所述的应用程序异常定位方法,其特征在于,所述插桩代码的筛选标记为预定义位数的二进制数据,和/或预定义长度的字符串。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有应用程序异常定位程序,所述应用程序异常定位程序可被至少一个处理器执行,以使所述至少一个处理器执行如权利要求6-9中任一项所述的应用程序异常定位方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910190457.6A CN110058999A (zh) | 2019-03-13 | 2019-03-13 | 电子装置、应用程序异常定位方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910190457.6A CN110058999A (zh) | 2019-03-13 | 2019-03-13 | 电子装置、应用程序异常定位方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110058999A true CN110058999A (zh) | 2019-07-26 |
Family
ID=67316873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910190457.6A Pending CN110058999A (zh) | 2019-03-13 | 2019-03-13 | 电子装置、应用程序异常定位方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110058999A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258886A (zh) * | 2020-01-08 | 2020-06-09 | 北京奇艺世纪科技有限公司 | 一种应用程序的异常定位方法及装置 |
CN111897726A (zh) * | 2020-07-27 | 2020-11-06 | Tcl通讯(宁波)有限公司 | 异常定位方法、装置、存储介质及移动终端 |
CN111913878A (zh) * | 2020-07-13 | 2020-11-10 | 苏州洞察云信息技术有限公司 | 基于程序分析结果的字节码插桩方法、装置及存储介质 |
CN112685316A (zh) * | 2021-01-04 | 2021-04-20 | 广州品唯软件有限公司 | 代码执行路径的获取方法、装置、计算机设备及存储介质 |
CN112860543A (zh) * | 2021-01-20 | 2021-05-28 | 维沃移动通信(深圳)有限公司 | 检测页面运行的方法和电子设备 |
CN113010387A (zh) * | 2021-03-23 | 2021-06-22 | 联想(北京)有限公司 | 一种监控方法及装置 |
CN116126732A (zh) * | 2023-03-08 | 2023-05-16 | 哈尔滨工业大学(深圳) | 一种计算机故障定位方法和计算机 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201892A (zh) * | 2016-07-20 | 2016-12-07 | 中国航空工业集团公司航空动力控制系统研究所 | 用于嵌入式软件的异常中断源定位检测方法 |
CN106649063A (zh) * | 2016-11-22 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 用于监测程序运行时耗时数据的方法及系统 |
CN106681913A (zh) * | 2016-12-08 | 2017-05-17 | 武汉斗鱼网络科技有限公司 | 一种应用卡顿定位系统及方法 |
CN107844486A (zh) * | 2016-09-18 | 2018-03-27 | 腾讯科技(深圳)有限公司 | 一种用于客户端的分析网页问题的方法和系统 |
CN108595313A (zh) * | 2018-03-08 | 2018-09-28 | 北京三快在线科技有限公司 | 应用程序的日志生成方法、装置、电子设备及存储介质 |
CN109062784A (zh) * | 2018-07-06 | 2018-12-21 | 北京大学 | 接口参数约束代码入口定位方法与系统 |
-
2019
- 2019-03-13 CN CN201910190457.6A patent/CN110058999A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201892A (zh) * | 2016-07-20 | 2016-12-07 | 中国航空工业集团公司航空动力控制系统研究所 | 用于嵌入式软件的异常中断源定位检测方法 |
CN107844486A (zh) * | 2016-09-18 | 2018-03-27 | 腾讯科技(深圳)有限公司 | 一种用于客户端的分析网页问题的方法和系统 |
CN106649063A (zh) * | 2016-11-22 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 用于监测程序运行时耗时数据的方法及系统 |
CN106681913A (zh) * | 2016-12-08 | 2017-05-17 | 武汉斗鱼网络科技有限公司 | 一种应用卡顿定位系统及方法 |
CN108595313A (zh) * | 2018-03-08 | 2018-09-28 | 北京三快在线科技有限公司 | 应用程序的日志生成方法、装置、电子设备及存储介质 |
CN109062784A (zh) * | 2018-07-06 | 2018-12-21 | 北京大学 | 接口参数约束代码入口定位方法与系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258886A (zh) * | 2020-01-08 | 2020-06-09 | 北京奇艺世纪科技有限公司 | 一种应用程序的异常定位方法及装置 |
CN111258886B (zh) * | 2020-01-08 | 2024-04-26 | 北京奇艺世纪科技有限公司 | 一种应用程序的异常定位方法及装置 |
CN111913878A (zh) * | 2020-07-13 | 2020-11-10 | 苏州洞察云信息技术有限公司 | 基于程序分析结果的字节码插桩方法、装置及存储介质 |
CN111913878B (zh) * | 2020-07-13 | 2023-09-15 | 苏州洞察云信息技术有限公司 | 基于程序分析结果的字节码插桩方法、装置及存储介质 |
CN111897726A (zh) * | 2020-07-27 | 2020-11-06 | Tcl通讯(宁波)有限公司 | 异常定位方法、装置、存储介质及移动终端 |
CN111897726B (zh) * | 2020-07-27 | 2024-01-19 | Tcl通讯(宁波)有限公司 | 异常定位方法、装置、存储介质及移动终端 |
CN112685316A (zh) * | 2021-01-04 | 2021-04-20 | 广州品唯软件有限公司 | 代码执行路径的获取方法、装置、计算机设备及存储介质 |
CN112860543A (zh) * | 2021-01-20 | 2021-05-28 | 维沃移动通信(深圳)有限公司 | 检测页面运行的方法和电子设备 |
CN113010387A (zh) * | 2021-03-23 | 2021-06-22 | 联想(北京)有限公司 | 一种监控方法及装置 |
CN116126732A (zh) * | 2023-03-08 | 2023-05-16 | 哈尔滨工业大学(深圳) | 一种计算机故障定位方法和计算机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110058999A (zh) | 电子装置、应用程序异常定位方法及存储介质 | |
CN109558290A (zh) | 服务器、接口自动化测试方法及存储介质 | |
CN109634841A (zh) | 电子装置、接口自动化测试方法及存储介质 | |
CN107797923B (zh) | 代码覆盖率分析方法及应用服务器 | |
CN110955899B (zh) | 安全测试方法、装置、测试设备以及介质 | |
CN105303112B (zh) | 组件调用漏洞的检测方法及装置 | |
CN106502646A (zh) | 应用的页面信息处理方法及装置 | |
CN106649063A (zh) | 用于监测程序运行时耗时数据的方法及系统 | |
CN110069177A (zh) | 电子装置、应用程序操作引导方法及存储介质 | |
CN106326120B (zh) | 一种应用软件的回归测试方法及装置、电子设备 | |
CN113672441B (zh) | 对智能设备的测试方法及装置 | |
CN108519934A (zh) | 板卡测试方法、装置、可读存储介质及计算机设备 | |
CN109726067A (zh) | 一种进程监控方法以及客户端设备 | |
CN110163481A (zh) | 电子装置、用户风控审核系统测试方法及存储介质 | |
CN107818023A (zh) | 基于线程的消息处理方法、智能设备及存储介质 | |
CN109635633A (zh) | 电子装置、票据识别方法及存储介质 | |
CN108399327A (zh) | 电子装置、基于动态图片的用户验证方法及存储介质 | |
CN109684195A (zh) | 电子装置、脚本转换方法及存储介质 | |
CN112948224B (zh) | 一种数据处理方法、装置、终端及存储介质 | |
CN104123496A (zh) | 一种流氓软件的拦截方法及装置、终端 | |
CN106027631A (zh) | 一种数据传输方法及装置 | |
CN109683856A (zh) | 电子装置、Faas平台函数创建方法及存储介质 | |
CN110191013A (zh) | 电子装置、多资方接口的Mock测试方法及存储介质 | |
CN110175114A (zh) | 测试终端、app与摄像头兼容性测试方法及存储介质 | |
CN110858132B (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 |