CN107391360A - 应用程序异常信息处理方法、装置、服务器及用户终端 - Google Patents

应用程序异常信息处理方法、装置、服务器及用户终端 Download PDF

Info

Publication number
CN107391360A
CN107391360A CN201611009716.3A CN201611009716A CN107391360A CN 107391360 A CN107391360 A CN 107391360A CN 201611009716 A CN201611009716 A CN 201611009716A CN 107391360 A CN107391360 A CN 107391360A
Authority
CN
China
Prior art keywords
information
clue
user
operation information
time
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
CN201611009716.3A
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.)
Alibaba China Co Ltd
Original Assignee
Guangzhou I9Game Information Technology 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 Guangzhou I9Game Information Technology Co Ltd filed Critical Guangzhou I9Game Information Technology Co Ltd
Priority to CN201611009716.3A priority Critical patent/CN107391360A/zh
Publication of CN107391360A publication Critical patent/CN107391360A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明实施例提供一种应用程序异常信息处理方法、装置、服务器及用户终端,属于计算机技术领域。该应用程序异常信息处理方法包括:获取应用程序的用户操作信息、错误堆栈信息和设备上下文信息;将所述用户操作信息以线索的形式进行存储,形成线索集;当发生异常时,将线索集、设备上下文信息、错误堆栈信息和发生异常的时间发送至服务器进行处理。通过该方法服务器能够将基于用户终端上的应用程序的用户操作进行还原,进而获得在出现异常前用户的操作信息和当时的环境信息,方便研发人员快速定位异常和错误。

Description

应用程序异常信息处理方法、装置、服务器及用户终端
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种应用程序异常信息处理方法、装置、服务器及用户终端。
背景技术
随着科技的不断进步,各种各样的应用程序产品随之而来。为了确保应用程序的在用户终端运行的情况,监控应用程序的系统也就随之而来。然而传统的监控模块上依赖应用程序打点、记录并上传到监控平台服务器,再由服务端进行相关监控数据的展示。
虽然依靠传统的方法也可以捕捉到异常发生时的一些信息,但是由于捕捉到的信息的量非常少,使得研发人员定位异常和错误时的效率较低而且准确率也不高。因此,如何解决上述问题是目前面临的一大难题。
发明内容
有鉴于此,本发明提供一种应用程序异常信息处理方法、装置、服务器及用户终端,旨在改善上述问题。
第一方面,本发明提供的一种应用程序异常信息处理方法,应用于用户终端,所述方法包括:获取用户操作信息、错误堆栈信息和设备上下文信息。将所述用户操作信息以线索的形式进行存储,形成线索集。当发生异常时,将所述线索集、所述设备上下文信息、所述错误堆栈信息和发生异常的时间发送至服务器进行处理。
第二方面,本发明提供的一种应用程序异常信息处理方法,应用于服务器,所述方法包括:接收用户终端发送的异常信息,其中所述异常信息包括包含用户操作信息的线索集、错误堆栈信息、设备上下文信息和发生异常的时间,所述用户操作信息以线索的形式存储在所述线索集的线索中。读取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息中的数据,并按照预定格式输出。
第三方面,本发明提供的一种应用程序异常信息处理装置,应用于用户终端,所述装置包括:数据获取单元,用于获取用户操作信息、错误堆栈信息和设备上下文信息。数据处理单元,用于将所述用户操作信息以线索的形式进行存储,形成线索集。数据发送单元,用于当发生异常时,将所述线索集、所述设备上下文信息、所述错误堆栈信息和发生异常的时间发送至服务器进行处理。
第四方面,本发明提供的一种应用程序异常信息处理装置,应用于服务器,所述装置包括:数据接收单元,用于接收用户终端发送的异常信息,其中所述异常信息包括包含用户操作信息的线索集、错误堆栈信息、设备上下文信息和发生异常的时间,所述用户操作信息以线索的形式存储在所述线索集的线索中。数据读取单元,用于读取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息中的数据,并按照预定格式输出。
第五方面,本发明提供的一种用户终端,所述用户终端包括处理器以及存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述用户终端执行以下操作:获取用户操作信息、错误堆栈信息和设备上下文信息。将所述用户操作信息以线索的形式进行存储,形成线索集。当发生异常时,将所述线索集、所述设备上下文信息、所述错误堆栈信息和发生异常的时间发送至服务器进行处理。
第六方面,本发明提供的一种服务器,所述服务器包括处理器以及存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述服务器执行以下操作:接收用户终端发送的异常信息,其中所述异常信息包括包含用户操作信息的线索集、错误堆栈信息、设备上下文信息和发生异常的时间,所述用户操作信息以线索的形式存储在所述线索集的线索中。读取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息中的数据,并按照预定格式输出。
上述本发明提供的一种应用程序异常信息处理方法、装置、服务器及用户终端,通过该方法服务器能够将用户终端的用户操作进行还原,进而获得在出现异常前用户的操作信息和当时的环境信息,方便研发人员快速定位异常和错误。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的用户终端与服务器进行交互的示意图;
图2为本发明实施例提供的一种电子设备的结构框图;
图3为本发明第一实施例提供的一种应用程序异常信息处理方法的流程图;
图4为本发明第二实施例提供的一种应用程序异常信息处理方法的流程图;
图5为本发明第三实施例提供的一种应用程序异常信息处理方法的流程图;
图6为本发明第三实施例提供的一种应用程序异常信息处理方法种的崩溃轨迹示意图;
图7为本发明第四实施例提供的一种应用程序异常信息处理装置的结构框图;
图8为本发明第五实施例提供的一种应用程序异常信息处理装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,是本发明较佳实施例提供的服务器100与用户终端200进行交互的示意图。所述服务器100通过网络与一个或多个用户终端200进行通信连接,以进行数据通信或交互。所述服务器100可以是网络服务器、数据库服务器等。所述用户终端200可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digitalassistant,PDA)、可穿戴设备等终端。在本实施例中,用户终端200中可以设置应用程序,即用户使用的应用程序,可以向服务器100发送还原用户操作所需的异常信息或指令,以使服务器100对获取到的异常信息进行处理和还原操作。
如图2所示,为本发明实施例提供的一种电子设备的结构框图。其中,所述电子设备800可以作为用户终端200,也可以作为服务器100。如图2所示,所述电子设备800包括应用程序异常信息处理装置、存储器802、存储控制器803、处理器804和外设接口805。
所述存储器802、存储控制器803、处理器804和外设接口805各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述应用程序异常信息处理装置包括至少一个可以以软件或固件(firmware)的形式存储于所述存储器802中或固化在所述电子设备800的操作系统(operating system,OS)中的软件功能模块。所述处理器804用于执行存储器802中存储的可执行模块,例如所述应用程序异常信息处理装置包括的软件功能模块或计算机程序。
其中,存储器802可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器804可以是一种集成电路芯片,具有信号的处理能力。上述的处理器804可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述外设接口805将各种输入/输入装置耦合至处理器804以及存储器802。在一些实施例中,外设接口805、处理器804以及存储控制器803可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
请参阅图3,是本发明第一实施例提供的一种应用程序异常信息处理方法的流程图。下面将对图3所示的具体流程进行详细阐述。
步骤S301,获取用户操作信息、错误堆栈信息和设备上下文信息。
其中,所述用户操作信息、所述错误堆栈信息和所述设备上下文信息皆是基于用户终端上的应用程序获取,即从用户终端中的应用程序获取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息。
所述用户操作信息是指用户基于用户终端上的应用程序操作时的信息,例如,所述用户操作信息可以包括操作类型信息、调用信息、操作时间或附加信息。所述操作类型信息是指用户在应用程序上操作时,应用程序为了响应用户的操作,从而使得线程会调用相应的对象来实现用户的操作,所述操作类型信息是指线程调用对象的类名。所述调用信息是指在响应用户操作时调用的特定的类中的方法,即通过调用该特定的类中的方法来实现用户的操作。其中,特定的类是指响应用户的操作所必须的操作类。所述操作时间是指应用程序在响应用户的操作时调用内部程序的时间,也可以表示为用户操作发生的时间。所述附加信息用于存放数据信息,例如,所述附加信息包括加载情况、授权情况、用户操作值或环境(内存不足)警告信息等。即通过附加信息使得研发人员能够更好地了解到需要的信息。
例如,可以设置一个程序接口,通过该接口获取用户操作信息,该程序接口为:
其中,"clz"表示用户在操作时的线程调用对象的类名,即为所述用户操作信息中的操作类型信息。"func"表示用户操作时的调用信息,即用户在应用程序上进行操作时调用的方法。"time"表示用户操作发生的时刻,即操作时间,例如,"time":"2016-05-1217:08:08.504"表示用户操作发生的时刻为2016年5月12日下午5点零8分零8秒第504毫秒。"remark"表示其他信息,即附加信息,例如应用程序的加载情况信息或者是该应用程序的授权信息等。
所述错误堆栈信息用于存储当应用程序出现异常时的错误信息或异常信息。例如,当出现OutOfMemoryException(内存溢出)这样的异常时,应用程序会自动捕捉该异常并将该异常保存到所述错误堆栈信息中。
所述设备上下文信息包括机器信息、系统信息、网络信息或应用程序版本信息。所述机器信息是指用户终端的设备信息或者是配置信息,其中,所述设备信息包括该用户终端搭载的系统信息即操作系统信息、CPU型号、运营商信息、CPU指令集或屏幕分辨率等等。具体地,例如,用户终端为安卓手机时,该手机内设有能够运行的应用程序,该手机的机器信息为安卓6、运营商信息是中国联通、CPU指令集是AMD64或屏幕分辨率1024*1024。其中,所述系统信息是指SDK(Software Development Kit,软件开发工具包)信息,具体地,例如,SDK信息中可以包括的SDK壳版本信息、最后更新时间或编译时间等。其中,网络信息是指用户终端在运行该应用程序时的网络信息,即加载应用程序时的运营商的信息。例如,用户可以选择在WiFi下运行应用程序,则网络信息可以为中国电信。当用户在采用中国移动的移动数据上网时,网络信息为中国移动。其中,所述应用程序版本信息是指当前应用程序的版本号等信息,例如,当前应用程序的版本为6.6.6,则该版本号6.6.6便为应用程序版本信息。例如,可以设置一个程序接口,通过该接口获取设备上下文信息,该程序接口为:
其中,"config"表示机器配置信息即机器信息,例如,当用户终端为手机时,则"config"表示手机配置信息,具体地,手机配置信息包括显示的语种、国际代码以及时区等信息。"app"表示应用信息即应用程序版本信息。"isp"表示运营商信息即网络信息,具体地,运营商信息包括手机号码、IMSI码、ICCID码、运营商名称或运营商注册的国家代码等。"phone"表示设备信息,通过设备信息来详细表示机器信息,例如,OS(Operating System,操作系统)类型、OS(Operating System,操作系统)版本、手机型号或设备内存等信息。"sdk"表示SDK信息,通过"sdk":{}来获取SDK信息。
步骤S302,将所述用户操作信息以线索的形式进行存储,形成线索集。
其中,所述线索包括一个或多个用户操作信息。所述线索集包括一条或多条线索,即所述线索集以集合或是堆栈的方式将至少一条线索存储在线索集内,其中集合是一组可变数量的数据项(也可能是0个)的组合。线索是一系列用户操作信息组成的,每一条线索均设有最大容纳长度,所述最大容纳长度指能够容纳最多用户操作信息的预设存储空间。所述线索以集合或是堆栈或数组的方式来存储多个用户操作信息。一般地,依据工作线程来产生一条线索。并且当线程结束时,依据该线程产生的线索也会随之结束并且被删除。
每条所述线索还包括用于标识所述线索的第一标识信息、用于标识所述线索所在线程的第二标识信息、用于标识所述线索创建时间的线索时间信息、或用于标识所述线索所在线程的线程名称。其中,当所述线索中所包括的所述用户操作信息超过预设存储空间时,淘汰操作时间最早的所述用户操作信息,即当出现线索中容纳用户操作信息的数量达到预定峰值时,即线索中存储的用户操作信息超过预设存储空间时,将最开始存储到线索内的用户操作信息淘汰,所述淘汰即删除最开始的用户操作信息,以保证能够继续容纳新的用户操作信息。其中,所述最开始存储到线索内的用户操作信息是指在时间上,即相对当前时间以前存储的用户操作信息。新的用户操作信息是指当前或者是未来即将存储的用户操作信息。
所述预设存储空间是指为每一条线索预先设置一个能够容纳用户操作信息的数量最多的空间。例如,一条线索可以容纳10条用户操作信息,则当用户操作信息超过10条时,则超过了该线索的容纳空间,即用户操作信息超过线索的预设存储空间。
作为一种实施方式,可以设置一个程序接口,通过该接口获取线索,该程序接口为:
其中,"sid"表示线索标识,即第一标识信息,所述第一标识信息用于标识所述线索。例如,"sid":"201605121708",其中,201605121708用来标识该线索,即通过第一标识信息就可以找到对应的线索,从而获取该线索的其他信息。其中,"tid"表示线索所在线程编号,即第二标识信息,所述第二标识信息用于标识所述线索所在线程。例如,"tid":"19"表示该线索在编号为19的线程内,通过线程编号可以获取到该线程内的线索。其中,"time"表示线索创建时间,即线索时间信息,所述线索时间信息用于标识所述线索创建时间。例如,"time":"2016-05-12 17:08:08.345"表示该线索在2016年5月12日下午5点零8分零8秒第345毫秒时刻创建,通过所述线索时间信息便可以清楚地了解到该线索创建的时间,有利于研发人员对该线索进行其他操作。其中,"tname"用于表示线索所在线程的名称,即线程名称,所述线程名称用于标识所述线索所在线程的名称。例如,"tname":"main"表示所述线程名称为“main”即主线程。其中,"traces"用于表示用户操作信息集合,即将用户操作信息存储在"traces"中,从而使得一条线索内包括多条用户操作信息。
步骤S303,当发生异常时,将所述线索集、所述设备上下文信息、所述错误堆栈信息和发生异常的时间发送至服务器进行处理。
其中,当用户终端中的应用程序出现异常时,将包含用户操作信息的线索集、获取到的设备上下文信息、所述错误堆栈信息和发生异常的时间按照预定格式发送给服务器,以使服务器对接收到的数据进行处理。所述预定格式可以是简单地将线索集、设备上下文信息、所述错误堆栈信息和发生异常的时间打包后发送给服务器,也可以是进行其他运算后再发送给服务器。
作为一种实施方式,可以设置一个程序接口,通过该接口将线索集、设备上下文信息、所述错误堆栈信息和发生异常的时间整理后发送给服务器,该程序接口为:
请参阅图4,是本发明第二实施例提供的一种应用程序异常信息处理方法的流程图。下面将对图4所示的具体流程进行详细阐述。
步骤S401,接收用户终端发送的异常信息,其中所述异常信息包括包含用户操作信息的线索集、错误堆栈信息、设备上下文信息和发生异常的时间,所述用户操作信息以线索的形式存储在所述线索集的线索中。
其中,接收用户终端发送的异常信息是指服务器接收用户终端发送的异常信息。其中,服务器接收用户终端发送的异常信息可以是服务器主动接收用户终端发送的异常信息,也可以是服务器被动接受用户终端发送的异常信息。即当用户终端中的应用程序发生异常时,用户终端主动将异常信息发送给服务器,或者是当用户终端中的应用程序出现异常时,服务器发送采集异常信息的指令,从而使得用户终端将采集到的异常信息发送给服务器。
作为一种实施方式,可以设置一个程序接口,通过该接口获取异常信息中所包含的所有信息,该程序接口为:
其中,"time"表示发生异常的时间,即通过所述发生异常的时间就可以获悉该异常是在什么时刻发生的,从而根据该时刻去查找与该时刻发生的异常相关的其他信息。例如,"time":"2015-5-29 14:30:20.898"表示异常发生的时间是2016年5月29日下午2点30分20秒第898毫秒,因此便可以通过该时刻去查找与该异常发生的相关信息,或者用以搜寻该时刻的异常事件。其中,"class"表示错误类型,所述错误类型表示错误堆栈中的错误信息的错误类型,通过该错误类型,可以在错误堆栈中找到相应的错误信息,从而使得研发人员能够快速地对异常进行定位以及解决该异常。例如,"class":"RuntimeException"表示运行时异常,即应用程序在运行时出现异常。其中,"eventinfo"表示即时环境信息,即当用户终端将异常信息发送给服务器时应用程序的运行环境。其中,"stacktrace"用于表示错误堆栈信息,例如,当"stacktrace":"at org.apache.SelectorParser.Parse..."时,表示该错误堆栈为"at org.apache.SelectorParser.Parse..."。通过获取到的错误堆栈信息便于研发人员快速地找到相应的错误堆栈,然后根据获取到的错误堆栈找到相应的解决方法。
步骤S402,读取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息中的数据,并按照预定格式输出。
读取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息中的数据是指服务器将从用户终端获取到的异常信息进行取出,从而获取用户终端发送的异常信息中的数据。
其中,按照预定格式输出是指服务器在读取到异常信息中的数据后,根据预先设置的数据输出格式将读取到的数据输出。例如,预定格式可以是只输出用户操作信息,或者是只输出几条用户操作信息,也可以是其他格式等等。
请参阅图5,是本发明第三实施例提供的一种应用程序异常信息处理方法的流程图。下面将对图5所示的具体流程进行详细阐述。
步骤S501,接收用户终端发送的异常信息,其中所述异常信息包括包含用户操作信息的线索集、错误堆栈信息、设备上下文信息和发生异常的时间,所述用户操作信息以线索的形式存储在所述线索集的线索中。
步骤S501的具体实施方式可以参考第二实施例对应的步骤S401,在此不再赘述。
步骤S502,根据每条所述线索中的线索时间信息,获取与所述发生异常的时间临近的预定个数的所述线索。
其中,通过接收到的发生异常的时间来获取与该异常发生的时间临近的线索,通过线索时间信息,即线索创建的时间来获取判断该线索是否与该发生异常的时间临近,当判断为临近时,则获取该线索包括的信息。
其中,预定个数的所述线索是指:获取预先设置的需要获取的线索的个数,一旦获取到的线索的个数达到预定个数时,则不在获取其他线索了,如果获取的线索条数没有达到预定个数时,将继续获取线索,直到获取的线索条数达到预定个数,如果当线索的条数已经获取完成后,但线索的数目仍然没有达到预定个数,则不在继续获取。
步骤S503,获取所述预定个数的所述线索中的所述用户操作信息,其中,所述用户操作信息与所述发生异常的时间临近。
其中,从获取到的预定个数的线索中的每一个线索中获取用户操作信息。其中,可以是获取线索中的所有用户操作信息,也可以是获取与发生异常的时间临近的用户操作信息。为了使获取的用户操作信息能够更好地体现发生异常时用户的操作情况,优选地,获取与发生异常的时间临近的用户操作信息。即通过用户操作信息中的操作时间来判断该用户操作信息是否与发生异常的时间临近,从而获取与发生异常的时间临近的用户操作信息。例如,可以在获取到的预定个数的线索中的每个线索中分别获取一条用户操作信息,且该用户操作信息与发生异常的时间临近。
其中,预定个数可以是4个、5个、6个或7个等等。
步骤S504,将获取到所述用户操作信息按照时间先后顺序依次输出。
其中,基于发生异常的时间将获取到所述用户操作信息按照时间先后顺序依次输出。即通过将获取到的用户操作信息与发生异常的时间进行比对,得到一个先后顺序即通过用户操作信息的操作时间相对异常发生的时间间隔的大小来排序,也可以是直接根据用户操作信息中的操作时间来相互比对,从而判断每个用户操作信息的先后顺序。例如,发生异常的时间为2015-5-29 14:30:40.898,预定个数为4时,则第一个用户操作信息的操作时间为2015-5-29 14:41:02.898、第二个用户操作信息的操作时间为2015-5-29 14:41:05.898、第三个用户操作信息的操作时间为2015-5-29 14:41:25.898和第四个用户操作信息的操作时间为2015-5-29 14:41:26.898,则第一个用户操作信息的操作时间相对异常发生的时间间隔为622秒钟,第二个用户操作信息的操作时间相对异常发生的时间间隔为625秒分钟,第三个用户操作信息的操作时间相对异常发生的时间间隔为645秒钟,第四个用户操作信息的操作时间相对异常发生的时间间隔为646秒钟。则按照时间先后顺序排序为:第一个用户操作信息、第二个用户操作信息、第三个用户操作信息和第四个用户操作信息。例如,第一个用户操作信息为基于UIApplication下的applicationDIdEnter操作,第二个用户操作信息为基于baseView下的Btn1_click(UIButton:)操作,第三个用户操作信息为基于secondView下的Btnclick(UIButton:)操作,第四个用户操作信息为基于baseView下的Btn1_click(UIButton:)操作。如图6所示,当出现异常时,第一个用户操作信息、第二个用户操作信息、第三个用户操作信息和第四个用户操作信息按照图6的方式排序。
请参阅图7,是本发明第四实施例提供的一种应用程序异常信息处理装置的结构框图。所述装置600包括数据获取单元610、数据处理单元620和数据发送单元630。
所述数据获取单元610,用于获取用户操作信息、错误堆栈信息和设备上下文信息。其中,所述用户操作信息包括操作类型信息、调用信息、操作时间或附加信息。所述设备上下文信息包括机器信息、系统信息、网络信息或应用程序版本信息。
所述数据处理单元620,用于将所述用户操作信息以线索的形式进行存储,形成线索集。其中,当所述线索中所包括的所述用户操作信息超过预设存储空间时,淘汰操作时间最早的所述用户操作信息。每条所述线索还包括用于标识所述线索的第一标识信息、用于标识所述线索所在线程的第二标识信息、用于标识所述线索创建时间的线索时间信息、或用于标识所述线索所在线程的线程名称。
所述数据发送单元630,用于当发生异常时,将所述线索集、所述设备上下文信息、所述错误堆栈信息和发生异常的时间发送至服务器进行处理。
请参阅图8,是本发明第五实施例提供的一种应用程序异常信息处理装置的结构框图。所述装置700包括数据接收单元710和数据读取单元720。
所述数据接收单元710,用于接收用户终端发送的异常信息,其中所述异常信息包括包含用户操作信息的线索集、错误堆栈信息、设备上下文信息和发生异常的时间,所述用户操作信息以线索的形式存储在所述线索集的线索中。每条所述线索还包括用于标识所述线索的第一标识信息、用于标识所述线索所在线程的第二标识信息、用于标识所述线索创建时间的线索时间信息、或用于标识所述线索所在线程的线程名称。
所述数据读取单元720,用于读取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息中的数据,并按照预定格式输出。
所述数据读取单元720还包括第一数据获取子单元721、第二数据获取子单元722和数据输出子单元723。
所述第一数据获取子单元721,用于根据每条所述线索中的线索时间信息,获取与所述发生异常的时间临近的预定个数的所述线索。
所述第二数据获取子单元722,用于获取所述预定个数的所述线索中的所述用户操作信息,其中,所述用户操作信息与所述发生异常的时间临近。
所述数据输出子单元723,用于将获取到所述用户操作信息按照时间先后顺序依次输出。
综上所述,本发明实施例提供一种应用程序异常信息处理方法、装置、服务器及用户终端,通过该方法服务器能够将用户终端上的应用程序的用户操作进行还原,进而获得在出现异常前用户的操作信息和当时的环境信息,方便研发人员快速定位异常和错误。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种应用程序异常信息处理方法,其特征在于,应用于用户终端,所述方法包括:
获取应用程序的用户操作信息、错误堆栈信息和设备上下文信息;
将所述用户操作信息以线索的形式进行存储,形成线索集;当发生异常时,将所述线索集、所述设备上下文信息、所述错误堆栈信息和发生异常的时间发送至服务器进行处理。
2.根据权利要求1所述的方法,其特征在于,当所述线索中所包括的所述用户操作信息超过预设存储空间时,淘汰操作时间最早的所述用户操作信息。
3.根据权利要求1所述的方法,其特征在于,每条所述线索还包括用于标识所述线索的第一标识信息、用于标识所述线索所在线程的第二标识信息、用于标识所述线索创建时间的线索时间信息、或用于标识所述线索所在线程的线程名称。
4.根据权利要求1所述的方法,其特征在于,所述用户操作信息包括操作类型信息、调用信息、操作时间或附加信息。
5.根据权利要求1所述的方法,其特征在于,所述设备上下文信息包括机器信息、系统信息、网络信息或应用程序版本信息。
6.一种应用程序异常信息处理方法,其特征在于,应用于服务器,所述方法包括:
接收用户终端发送的异常信息,其中所述异常信息包括包含用户操作信息的线索集、错误堆栈信息、设备上下文信息和发生异常的时间,所述用户操作信息以线索的形式存储在所述线索集的线索中;
读取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息中的数据,并按照预定格式输出。
7.根据权利要求6所述的方法,其特征在于,每条所述线索还包括用于标识所述线索的第一标识信息、用于标识所述线索所在线程的第二标识信息、用于标识所述线索创建时间的线索时间信息、或用于标识所述线索所在线程的线程名称。
8.根据权利要求6所述的方法,其特征在于,所述读取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息中的数据,并按照预定格式输出,包括:
根据每条所述线索中的线索时间信息,获取与所述发生异常的时间临近的预定个数的所述线索;
获取所述预定个数的所述线索中的所述用户操作信息,其中,所述用户操作信息与所述发生异常的时间临近;
将获取到所述用户操作信息按照时间先后顺序依次输出。
9.一种应用程序异常信息处理装置,其特征在于,应用于用户终端,所述装置包括:
数据获取单元,用于获取应用程序的用户操作信息、错误堆栈信息和设备上下文信息;
数据处理单元,用于将所述用户操作信息以线索的形式进行存储,形成线索集;数据发送单元,用于当发生异常时,将所述线索集、所述设备上下文信息、所述错误堆栈信息和发生异常的时间发送至服务器进行处理。
10.根据权利要求9所述的装置,其特征在于,当所述线索中所包括的所述用户操作信息超过预设存储空间时,淘汰操作时间最早的所述用户操作信息。
11.根据权利要求9所述的装置,其特征在于,每条所述线索还包括用于标识所述线索的第一标识信息、用于标识所述线索所在线程的第二标识信息、用于标识所述线索创建时间的线索时间信息、或用于标识所述线索所在线程的线程名称。
12.根据权利要求9所述的装置,其特征在于,所述用户操作信息包括操作类型信息、调用信息、操作时间或附加信息。
13.根据权利要求9所述的装置,其特征在于,所述设备上下文信息包括机器信息、系统信息、网络信息或应用程序版本信息。
14.一种应用程序异常信息处理装置,其特征在于,应用于服务器,所述装置包括:
数据接收单元,用于接收用户终端发送的异常信息,其中所述异常信息包括包含用户操作信息的线索集、错误堆栈信息、设备上下文信息和发生异常的时间,所述用户操作信息以线索的形式存储在所述线索集的线索中;
数据读取单元,用于读取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息中的数据,并按照预定格式输出。
15.根据权利要求14所述的装置,其特征在于,每条所述线索还包括用于标识所述线索的第一标识信息、用于标识所述线索所在线程的第二标识信息、用于标识所述线索创建时间的线索时间信息、或用于标识所述线索所在线程的线程名称。
16.根据权利要求14所述的装置,其特征在于,所述数据读取单元还包括:
第一数据获取子单元,用于根据每条所述线索中的线索时间信息,获取与所述发生异常的时间临近的预定个数的所述线索;
第二数据获取子单元,用于获取所述预定个数的所述线索中的所述用户操作信息,其中,所述用户操作信息与所述发生异常的时间临近;
数据输出子单元,用于将获取到所述用户操作信息按照时间先后顺序依次输出。
17.一种服务器,其特征在于,所述服务器包括处理器以及存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述服务器执行以下操作:
接收用户终端发送的异常信息,其中所述异常信息包括包含用户操作信息的线索集、错误堆栈信息、设备上下文信息和发生异常的时间,所述用户操作信息以线索的形式存储在所述线索集的线索中;
读取所述用户操作信息、所述错误堆栈信息和所述设备上下文信息中的数据,并按照预定格式输出。
18.一种用户终端,其特征在于,所述用户终端包括处理器以及存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述用户终端执行以下操作:
获取应用程序的用户操作信息、错误堆栈信息和设备上下文信息;
将所述用户操作信息以线索的形式进行存储,形成线索集;当发生异常时,将所述线索集、所述设备上下文信息、所述错误堆栈信息和发生异常的时间发送至服务器进行处理。
CN201611009716.3A 2016-11-16 2016-11-16 应用程序异常信息处理方法、装置、服务器及用户终端 Pending CN107391360A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611009716.3A CN107391360A (zh) 2016-11-16 2016-11-16 应用程序异常信息处理方法、装置、服务器及用户终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611009716.3A CN107391360A (zh) 2016-11-16 2016-11-16 应用程序异常信息处理方法、装置、服务器及用户终端

Publications (1)

Publication Number Publication Date
CN107391360A true CN107391360A (zh) 2017-11-24

Family

ID=60338268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611009716.3A Pending CN107391360A (zh) 2016-11-16 2016-11-16 应用程序异常信息处理方法、装置、服务器及用户终端

Country Status (1)

Country Link
CN (1) CN107391360A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108052406A (zh) * 2017-12-08 2018-05-18 北京奇虎科技有限公司 终端程序异常关闭信息处理方法、装置、终端
CN108170609A (zh) * 2018-01-11 2018-06-15 五八有限公司 程序漏洞的定位方法、装置、计算机设备及可读存储介质
CN108763050A (zh) * 2018-04-03 2018-11-06 北京奇艺世纪科技有限公司 一种应用内存泄露的检测方法和装置
CN110908850A (zh) * 2018-09-14 2020-03-24 阿里巴巴集团控股有限公司 数据获取方法及装置
CN111597093A (zh) * 2019-02-20 2020-08-28 阿里巴巴集团控股有限公司 一种异常处理方法、装置及其设备
CN111782504A (zh) * 2020-05-20 2020-10-16 车智互联(北京)科技有限公司 一种应用程序异常的诊断方法、移动终端及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104270275A (zh) * 2014-10-14 2015-01-07 步步高教育电子有限公司 一种异常原因的辅助分析方法、服务器以及智能设备
CN105487971A (zh) * 2014-12-22 2016-04-13 哈尔滨安天科技股份有限公司 一种软件测试中操作步骤记录和复现的方法及系统
CN105843741A (zh) * 2016-03-24 2016-08-10 腾讯科技(深圳)有限公司 应用程序的信息处理方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104270275A (zh) * 2014-10-14 2015-01-07 步步高教育电子有限公司 一种异常原因的辅助分析方法、服务器以及智能设备
CN105487971A (zh) * 2014-12-22 2016-04-13 哈尔滨安天科技股份有限公司 一种软件测试中操作步骤记录和复现的方法及系统
CN105843741A (zh) * 2016-03-24 2016-08-10 腾讯科技(深圳)有限公司 应用程序的信息处理方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
美斯坦福(中国)IT教育: "《SCCE软件工程师 Java面向对象编程 第二阶段》", 31 January 2010, 中国地质大学出版社 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108052406A (zh) * 2017-12-08 2018-05-18 北京奇虎科技有限公司 终端程序异常关闭信息处理方法、装置、终端
CN108170609A (zh) * 2018-01-11 2018-06-15 五八有限公司 程序漏洞的定位方法、装置、计算机设备及可读存储介质
CN108763050A (zh) * 2018-04-03 2018-11-06 北京奇艺世纪科技有限公司 一种应用内存泄露的检测方法和装置
CN110908850A (zh) * 2018-09-14 2020-03-24 阿里巴巴集团控股有限公司 数据获取方法及装置
CN111597093A (zh) * 2019-02-20 2020-08-28 阿里巴巴集团控股有限公司 一种异常处理方法、装置及其设备
CN111597093B (zh) * 2019-02-20 2024-04-16 阿里巴巴集团控股有限公司 一种异常处理方法、装置及其设备
CN111782504A (zh) * 2020-05-20 2020-10-16 车智互联(北京)科技有限公司 一种应用程序异常的诊断方法、移动终端及可读存储介质

Similar Documents

Publication Publication Date Title
CN107391360A (zh) 应用程序异常信息处理方法、装置、服务器及用户终端
US11023533B2 (en) Node task data display method and apparatus, storage medium and computer equipment
CN107809331A (zh) 识别异常流量的方法和装置
CN108132850B (zh) 代码定位方法、装置及电子设备
CN111752793A (zh) 系统异常的监控方法、装置、计算机设备及存储介质
CN111552633A (zh) 接口的异常调用测试方法、装置、计算机设备及存储介质
CN108334530A (zh) 用户行为信息分析方法、设备及存储介质
CN110932918B (zh) 日志数据采集方法、装置及存储介质
CN103324563A (zh) 查看通信终端的终端事件的方法及其通信终端
CN107590016A (zh) 掉电重启识别方法及装置
CN108021491A (zh) 终端日志抓取方法、装置及终端日志分析方法、装置
CN107463492A (zh) 应用程序故障定位方法及装置
CN109656894A (zh) 日志规范化存储方法、装置、设备及可读存储介质
CN112671878B (zh) 一种区块链的信息订阅方法、装置、服务器和存储介质
CN109902030A (zh) 一种手机应用程序自动化测试步骤记录与回放的方法
CN106506212A (zh) 异常信息获取方法及用户终端
CN110019076A (zh) 多系统日志数据的构建方法、装置、设备及可读存储介质
WO2014166255A1 (zh) 一种确定sim卡的用户界面语言显示的方法、装置和终端
CN111427776A (zh) 一种智能设备自动化测试方法及装置
CN107566675B (zh) 一种adsl无线路由器及语音电话集成设备及设置方法
CN106817419A (zh) 基于VoLTE AS网元的数据提取解析方法、装置及服务终端
CN108205487A (zh) 一种监控浏览器性能的方法、装置及用户终端
CN115794545A (zh) 运维数据的自动化处理方法及其相关设备
CN110727576A (zh) 一种web页面测试方法、装置、设备及存储介质
CN116136801B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200526

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping radio square B tower 13 floor 02 unit self

Applicant before: GUANGZHOU UCWEB COMPUTER TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171124