CN109358975A - 一种软件运行异常的分析方法、装置、电子设备及存储介质 - Google Patents

一种软件运行异常的分析方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN109358975A
CN109358975A CN201811138042.6A CN201811138042A CN109358975A CN 109358975 A CN109358975 A CN 109358975A CN 201811138042 A CN201811138042 A CN 201811138042A CN 109358975 A CN109358975 A CN 109358975A
Authority
CN
China
Prior art keywords
information
target software
exception
anomaly analysis
software
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
CN201811138042.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.)
Zhuhai Baoqu Technology Co Ltd
Original Assignee
Zhuhai Juntian Electronic 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 Zhuhai Juntian Electronic Technology Co Ltd filed Critical Zhuhai Juntian Electronic Technology Co Ltd
Priority to CN201811138042.6A priority Critical patent/CN109358975A/zh
Publication of CN109358975A publication Critical patent/CN109358975A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Abstract

本发明公开了一种软件运行异常的分析方法、装置、电子设备及存储介质,包括:当检测到目标软件发生运行异常时,首先获取所述目标软件的转储文件,所述转储文件为所述目标软件的内存镜像文件;接着根据所述转储文件,确定所述目标软件的异常信息;然后根据所述异常信息,生成异常分析报告,其中,异常分析报告可以包括针对用户的基础分析报告和针对软件运维人员的详细分析报告。采用本发明实施例,可以提高软件运行异常的分析效率。

Description

一种软件运行异常的分析方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种软件运行异常的分析方法、装置、电子设备及存储介质。
背景技术
目前,我们在使用各类应用软件的过程中,经常出现在弹出一个错误框后正在使用的软件就自动关闭的情况。这种情况通常是软件崩溃导致的,给用户带来了极大的不便。例如,用户在使用文字编辑软件的过程中,软件崩溃将导致用户编辑好但还未保存的文字随之消失,造成了非常不好的用户体验。针对上述问题,尽管有部分应用程序在软件崩溃时为用户提供了联网调试的选项,但是在用户实际使用软件的过程中,造成软件崩溃的原因通常是不可预测的,因此软件运维人员也难以及时提供解决方案,联网调试往往无法有效解决软件崩溃的问题,导致软件运行异常的分析效率低。
发明内容
本发明实施例提供一种软件运行异常的分析方法、装置、电子设备及存储介质。可以提高软件运行异常的分析效率。
本发明实施例第一方面提供了一种软件运行异常的分析方法,包括:
当检测到目标软件发生运行异常时,获取所述目标软件的转储文件,所述转储文件为所述目标软件的内存镜像文件;
根据所述转储文件,确定所述目标软件的异常信息;
根据所述异常信息,生成异常分析报告。
其中,所述根据所述转储文件,确定所述目标软件的异常信息包括:
获取所述目标软件的程序数据库文件,所述程序数据库文件中包括所述目标软件的源代码的变量信息、函数信息以及指针信息中的至少一项;
根据所述转储文件和所述程序数据库文件,确定所述异常信息。
其中,所述当检测到目标软件发生运行异常时,获取所述目标软件的转储文件包括:
当检测到所述目标软件启动时,调用异常捕获函数对所述目标软件进行监控;
当所述异常捕获函数监控到所述运行异常时,调用系统调试函数获取所述转储文件。
其中,所述异常信息包括多种信息分量;
所述根据所述异常信息,生成异常分析报告包括:
对所述多种信息分量中每种信息分量进行分类;
根据分类后的所述多种信息分量,生成所述异常分析报告。
其中,所述异常分析报告包括第一异常分析报告和第二异常分析报告;
所述分类后的所述多种信息分量包括基础信息分量和详细信息分量;
所述根据分类后的所述多种信息分量,生成所述异常分析报告包括:
根据所述基础信息分量,生成所述第一异常分析报告,其中,所述基础信息分量包括异常模块的标识信息、异常类型、异常地址中至少一项;以及
根据所述详细信息分量,生成所述第二异常分析报告,其中,所述详细信息分量包括异常代码、异常函数、堆栈信息以及寄存器信息中至少一项。
其中,所述根据所述异常信息,生成异常分析报告之后,还包括:
显示所述异常分析报告,所述异常分析报告用于提示用户处理所述运行异常;和/或
向服务器发送所述异常分析报告,所述异常分析报告用于指示所述服务器提示所述目标软件的运维人员修复所述目标软件。
其中,所述方法还包括:
根据所述异常分析报告,确定所述运行异常的修复方法;
显示提示信息,所述提示信息用于提示用户按照所述修复方法处理所述运行异常。
其中,所述根据所述异常分析报告,确定所述运行异常的修复方法包括:
确定所述异常分析报告中的关键字;
从所述预设信息库中查找与所述关键字对应的所述修复方法,所述预设信息库包括所述关键字与所述修复方法的对应关系。
相应地,本发明实施例第二方面提供了一种软件运行异常的分析装置,包括:
获取模块,用于当检测到目标软件发生运行异常时,获取所述目标软件的转储文件,所述转储文件为所述目标软件的内存镜像文件;
分析模块,用于根据所述转储文件,确定所述目标软件的异常信息;
报告模块,用于根据所述异常信息,生成异常分析报告。
其中,所述获取模块还用于:
获取所述目标软件的程序数据库文件,所述程序数据库文件中包括所述目标软件的源代码的变量信息、函数信息以及指针信息中的至少一项;
所述分析模块还用于:
根据所述转储文件和所述程序数据库文件,确定所述异常信息。
其中,所述获取模块还用于:
当检测到所述目标软件启动时,调用异常捕获函数对所述目标软件进行监控;
当所述异常捕获函数监控到所述运行异常时,调用系统调试函数获取所述转储文件。
其中,所述异常信息包括多种信息分量;
所述报告模块还用于:
对所述多种信息分量中每种信息分量进行分类;
根据分类后的所述多种信息分量,生成所述异常分析报告。
其中,述异常分析报告包括第一异常分析报告和第二异常分析报告;
所述分类后的所述多种信息分量包括基础信息分量和详细信息分量;
所述报告模块还用于:
根据所述基础信息分量,生成所述第一异常分析报告,其中,所述基础信息分量包括异常模块的标识信息、异常类型、异常地址中至少一项;以及
根据所述详细信息分量,生成所述第二异常分析报告,其中,所述详细信息分量包括异常代码、异常函数、堆栈信息以及寄存器信息中至少一项。
其中,所述报告模块还用于:
显示所述异常分析报告,所述异常分析报告用于提示用户处理所述运行异常;和/或
向服务器发送所述异常分析报告,所述异常分析报告用于指示所述服务器提示所述目标软件的运维人员修复所述目标软件。
其中,所述报告模块还用于:
根据所述异常分析报告,确定所述运行异常的修复方法;
显示提示信息,所述提示信息用于提示用户按照所述修复方法处理所述运行异常。
其中,所述报告模块还用于:
确定所述异常分析报告中的关键字;
从所述预设信息库中查找与所述关键字对应的所述修复方法,所述预设信息库包括所述关键字与所述修复方法的对应关系。
相应地,本发明实施例第三方面提供了一种电子设备,包括:处理器、存储器、通信接口和总线;
所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;
所述存储器存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行本发明实施例第一方面公开的一种软件运行异常的分析方法。
相应地,本发明实施例提供了一种存储介质,其中,所述存储介质用于存储应用程序,所述应用程序用于在运行时执行本发明实施例第一方面公开的一种软件运行异常的分析方法。
相应地,本发明实施例提供了一种应用程序,其中,所述应用程序用于在运行时执行本发明实施例第一方面公开的一种软件运行异常的分析方法。
实施本发明实施例,当检测到目标软件发生运行异常时,首先获取所述目标软件的转储文件,所述转储文件为所述目标软件的内存镜像文件;接着根据所述转储文件,确定所述目标软件的异常信息;然后根据所述异常信息,生成异常分析报告,其中,异常分析报告可以包括针对用户的基础分析报告和针对软件运维人员的详细分析报告。可以提高软件运行异常的分析效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种软件运行异常的分析方法的流程示意图;
图2是本发明实施例提供的一种Dump文件的示意图;
图3是本发明实施例提供的一种Dump文件的分析结果的示意图;
图4是本发明实施例提供的另一种软件运行异常的分析方法的流程示意图;
图5是本发明实施例提供的一种异常分析报告的示意图;
图6是本发明实施例提供的一种软件运行异常的分析装置的结构示意图;
图7是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1是本发明实施例提供的一种软件运行异常的分析方法的流程示意图。如图所示,本发明实施例中的方法包括:
S101,当检测到目标软件发生运行异常时,获取所述目标软件的转储文件。
具体实现中,可以调用系统调试函数对目标软件进行内存转储得到转储文件(Dump文件),其中,Dump文件是目标软件在发生运行异常(如崩溃)时的内存镜像文件。如图2所示,Dump文件中包括系统各个寄存器(如累加寄存器、目标索引寄存器)中存放的内容和堆栈指针(如栈顶指针),还可以包括异常类型、Dump文件的文件类型等信息。
例如,在Windows系统中,当目标软件崩溃时调用动态链接库dbgHelp.dll中的MiniDumpWriteDump函数创建Dump文件。
S102,根据所述转储文件,确定所述目标软件的异常信息。
具体实现中,可以调用系统应用程序接口(Application Program Interface,API)对Dump文件进行分析,如WdbgExts和DbgEng。其中,通过对Dump文件的分析可以得到异常信息包含的多种信息分量,如异常地址、异常模块的标识信息、异常代码、堆栈信息和异常函数等等。
例如:针对如图2所示的Dump文件,调用WdbgExts和DbgEng函数对其进行调试分析。如图3所示,Dump文件分析结果中可以包括出错的指令地址、异常地址、异常代码、具体的异常原因、异常类型、异常进程的名称、异常函数的地址以及异常模块名称等。
可选的,可以进一步获取目标软件对应的程序数据库文件(Program DatabaseFile,PDB),其中,PDB文件是目标软件的源代码在编译链接时生成的文件,PDB文件中可以包括目标软件的源代码中的变量信息(如变量名、变量类型以及变量地址)、函数信息(如函数名、函数类型以及函数地址)、指针信息(如帧指针),还可以包括源代码的文件名和行数等等。然后结合程序数据库文件对转储文件进行分析,从而得到详细的、更有助于处理运行异常的异常信息,如寄存器信息和堆栈信息等,其中,堆栈信息可以包括目标软件对应的进程调用指令、变量和参数的顺序等等,寄存器信息可以包括目标软件对应的进程存放在系统寄存器中的数据、指令以及地址等信息。
例如,在单独调试Dump文件时,得到异常模块为dump1,异常函数的地址为dump1+1310d,dump1+1310d为异常函数相对于dump1模块的地址,但无法得到具体的函数名。因此,需要加载PDB文件来辅助调试Dump文件,以便得具体的异常函数的名称和代码。
S103,根据所述异常信息,生成异常分析报告。
具体实现中,可以首先将异常信息所包括的多种信息分量中每种信息分量进行分类,每种信息分量或为基础信息分量、或为详细信息分量。其中,基础信息分量可以包括但不限于异常模块的标识信息、异常类型(如内存访问越界)、异常地址中至少一项,详细信息分量包括但不限于异常代码、异常函数、堆栈信息以及寄存器信息中至少一项。接着根据分类后的异常信息,生成异常分析报告,其中,异常分析报告可以包括针对用户的第一异常分析报告、以及针对目标软件运维人员的第二异常分析报告。其中,可以根据基础信息分量生成第一异常分析报告、以及根据详细信息分量生成第二异常分析报告。
可选的,可以在生成第一异常分析报告后,显示第一异常分析报告,以便提示用户对目标软件出现的异常进行处理,防止目标软件再次出现相同的运行异常。
例如,用户在玩游戏时候,游戏软件突然崩溃,则立即获取Dump软件,并对Dump文件进行分析后提供异常分析报告,用户查看后发现是游戏软件的某个模块异常,则此时用户可以从该游戏官方网站上自行下载对应模块来解决问题,不仅可以帮助用户及时修复软件,防止同类型的异常再次出现,提高用户体验,而且减少了软件运维人员的工作量。
可选的,可以在生成第二异常分析报告后,向目标软件对应的服务器发送第二异常分析报告,以便指示服务器提醒目标软件的运维人员对此次运行异常出现的原因的进行分析,以便及时修复目标软件、或对目标软件进行升级。
在本发明实施例中,当检测到目标软件发生运行异常时,首先获取所述目标软件的转储文件,所述转储文件为所述目标软件的内存镜像文件;接着根据所述转储文件,确定所述目标软件的异常信息;然后根据所述异常信息,生成异常分析报告,其中,异常分析报告可以包括针对用户的基础分析报告和针对软件运维人员的详细分析报告。可以提高软件运行异常的分析效率。
请参考图4,图4是本发明实施例提供的另一种软件运行异常的分析方法的流程示意图。如图所示,本发明实施例中的方法包括:
S401,当检测到目标软件启动时,对目标软件进行监控。
具体实现中,可以调用系统API中的异常捕获函数(如SetUnhandledExcep-tionFilter)在目标软件运行的过程中对该软件进行实时监控。
S402,确定目标软件是否发生运行异常。若是,则执行S503,若否,则继续监控目标软件。
具体实现中,当异常函数监控到异常时,确定目标软件发生了运行异常(如崩溃),则立即触发S403的执行。
S403,获取目标软件的转储文件。本步骤与上一实施例中的S101相同,本步骤不再赘述。
S404,根据转储文件,确定目标软件的异常信息。本步骤与上一实施例中的S102相同,本步骤不再赘述。
S405,根据异常信息,生成异常分析报告。本步骤与上一实施例中的S103相同,本步骤不再赘述。
S406,根据异常分析报告,确定所述运行异常的修复方法。
具体实现中,可以首先确定异常分析报告中的关键字,如XX模块,接着从预设信息库中查找与该关键字对应的修复方法,该预设信息库中包括关键字与修复方法的对应关系。最后显示提示信息,提示用户按照确定的修复方法处理出现的运行异常。其中,可以针对目标软件,搜集出现过的运行异常(如崩溃)的异常信息,以及搜集到的每种运行异常的修复方法,然后提取异常信息中的关键字,并根据关键字和修复方法生成预设信息库。
例如:如图5所示,首先根据异常信息,生成异常分析报告,该异常报告表明导致目标软件崩溃的原因是XX模块的关键组件被破坏;接着可以确定异常分析报告的关键字为XX模块。因此,可以在该异常分析报告的末尾附上XX模块的下载链接,并提示用户点击该链接下载并重新安装XX模块;然后当检测到用户点击该链接时,跳转到该链接对应的界面下载XX模块。
在本发明实施例中,当检测到目标软件发生运行异常时,首先获取所述目标软件的转储文件,所述转储文件为所述目标软件的内存镜像文件;接着根据所述转储文件,确定所述目标软件的异常信息;然后根据所述异常信息,生成异常分析报告,其中,异常分析报告可以包括针对用户的基础分析报告和针对软件运维人员的详细分析报告。可以提高软件运行异常的分析效率。
请参考图6,图6是本发明实施例提供的一种软件运行异常的分析装置的结构示意图。如图所示,本发明实施例中的装置包括:
获取模块601,用于当检测到目标软件发生运行异常时,获取所述目标软件的转储文件。
具体实现中,当检测到目标软件启动时,可以调用系统API中的异常捕获函数(如SetUnhandledExceptionFilter)在目标软件运行的过程中对该软件进行实时监控。当异常捕获函数检测到运行异常时,可以调用系统调试函数对目标软件进行内存转储得到转储文件(Dump文件),其中,Dump文件是目标软件在崩溃时的内存镜像文件。
分析模块602,用于根据所述转储文件,确定所述目标软件的异常信息。
具体实现中,可以调用系统API对Dump文件进行分析,如WdbgExts和DbgEng。其中,通过对Dump文件的分析可以得到异常信息包含的多种信息分量,如异常地址、异常模块的标识信息、异常代码和异常函数等等。
可选的,可以进一步获取目标软件对应的PDB文件,其中,PDB文件是目标软件的源代码在编译链接时生成的文件,PDB文件中可以包括目标软件的源代码中的变量信息(如变量名、变量类型以及变量地址)、函数信息(如函数名、函数类型以及函数地址)、指针信息(如帧指针),还可以包括源代码的文件名和行数等等。然后结合程序数据库文件对转储文件进行分析,从而得到详细的、更有助于处理运行异常的异常信息,如寄存器信息和更详细的堆栈信息等。
报告模块603,用于根据所述异常信息,生成异常分析报告。
具体实现中,可以首先将异常信息所包括的多种信息分量中每种信息分量进行分类,每种信息分量或为基础信息分量、或为详细信息分量。其中,基础信息分量可以包括但不限于异常模块的标识信息、异常类型(如内存访问越界)、异常地址中至少一项,详细信息分量包括但不限于异常代码、异常函数、堆栈信息以及寄存器信息中至少一项。接着根据分类后的异常信息,生成异常分析报告,其中,异常分析报告可以包括针对用户的第一异常分析报告、以及针对目标软件运维人员的第二异常分析报告。其中,可以根据基础信息分量生成第一异常分析报告、以及根据详细信息分量生成第二异常分析报告。
可选的,报告模块603还可以用于在生成第一异常分析报告后,显示第一异常分析报告,以便提示用户对目标软件出现的异常进行处理,防止目标软件再次出现相同的运行异常。
可选的,报告模块603还可以用于在生成第二异常分析报告后,向目标软件对应的服务器发送第二异常分析报告,以便指示服务器提醒目标软件的运维人员对此次运行异常出现的原因的进行分析,以便及时修复目标软件、或对目标软件进行升级。
可选的,报告模块603还可以用于根据异常分析报告,确定所述运行异常的修复方法。具体地,可以首先确定异常分析报告中的关键字,如XX模块,接着从预设信息库中查找与该关键字对应的修复方法,该预设信息库中包括关键字与修复方法的对应关系。最后显示提示信息,提示用户按照确定的修复方法处理出现的运行异常。其中,可以针对目标软件搜集出现过的运行异常(如崩溃)的异常信息,以及每种运行异常的修复方法,然后提取异常信息中的关键字,并根据关键字和修复方法生成预设信息库。
在本发明实施例中,当检测到目标软件发生运行异常时,首先获取所述目标软件的转储文件,所述转储文件为所述目标软件的内存镜像文件;接着根据所述转储文件,确定所述目标软件的异常信息;然后根据所述异常信息,生成异常分析报告,其中,异常分析报告可以包括针对用户的基础分析报告和针对软件运维人员的详细分析报告,可以提高软件运行异常的分析效率。
请参考图7,图7是本发明实施例提出的一种电子设备的结构示意图。如图所示,该电子设备可以包括:至少一个处理器701,例如CPU,至少一个通信接口702,至少一个存储器703,至少一个总线704。其中,总线704用于实现这些组件之间的连接通信。其中,本发明实施例中电子设备的通信接口702是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他节点设备进行信令或数据的通信。存储器703可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器703可选的还可以是至少一个位于远离前述处理器701的存储装置。存储器703中存储一组程序代码,且处理器701用于调用存储器中存储的程序代码,用于执行以下操作:
当检测到目标软件发生运行异常时,获取所述目标软件的转储文件,所述转储文件为所述目标软件的内存镜像文件;
根据所述转储文件,确定所述目标软件的异常信息;
根据所述异常信息,生成异常分析报告。
其中,处理器701还用于执行如下操作步骤:
获取所述目标软件的程序数据库文件,所述程序数据库文件中包括所述目标软件的源代码的变量信息、函数信息以及指针信息中的至少一项;
根据所述转储文件和所述程序数据库文件,确定所述异常信息。
其中,处理器701还用于执行如下操作步骤:
当检测到所述目标软件启动时,调用异常捕获函数对所述目标软件进行监控;
当所述异常捕获函数监控到所述运行异常时,调用系统调试函数获取所述转储文件。
其中,所述异常信息包括多种信息分量;
处理器701还用于执行如下操作步骤:
对所述多种信息分量中每种信息分量进行分类;
根据分类后的所述多种信息分量,生成所述异常分析报告。
其中,所述异常分析报告包括第一异常分析报告和第二异常分析报告;
所述分类后的所述多种信息分量包括基础信息分量和详细信息分量;
处理器701还用于执行如下操作步骤:
根据所述基础信息分量,生成所述第一异常分析报告,其中,所述基础信息分量包括异常模块的标识信息、异常类型、异常地址中至少一项;以及
根据所述详细信息分量,生成所述第二异常分析报告,其中,所述详细信息分量包括异常代码、异常函数、堆栈信息以及寄存器信息中至少一项。
其中,处理器701还用于执行如下操作步骤:
显示所述异常分析报告,所述异常分析报告用于提示用户处理所述运行异常;和/或
向服务器发送所述异常分析报告,所述异常分析报告用于指示所述服务器提示所述目标软件的运维人员修复所述目标软件。
其中,处理器701还用于执行如下操作步骤:
根据所述异常分析报告,确定所述运行异常的修复方法;
显示提示信息,所述提示信息用于提示用户按照所述修复方法处理所述运行异常。
其中,处理器701还用于执行如下操作步骤:
确定所述异常分析报告中的关键字;
从所述预设信息库中查找与所述关键字对应的所述修复方法,所述预设信息库包括所述关键字与所述修复方法的对应关系。
需要说明的是,本发明实施例同时也提供了一种存储介质,该存储介质用于存储应用程序,该应用程序用于在运行时执行图1和图4所示的一种软件运行异常的分析方法中电子设备执行的操作。
需要说明的是,本发明实施例同时也提供了一种应用程序,该应用程序用于在运行时执行图1和图4所示的一种软件运行异常的分析方法中电子设备执行的操作。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例所提供的内容下载方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种软件运行异常的分析方法,其特征在于,所述方法应用于电子设备,所述方法包括:
当检测到目标软件发生运行异常时,获取所述目标软件的转储文件,所述转储文件为所述目标软件的内存镜像文件;
根据所述转储文件,确定所述目标软件的异常信息;
根据所述异常信息,生成异常分析报告。
2.如权利要求1所述的方法,其特征在于,所述根据所述转储文件,确定所述目标软件的异常信息包括:
获取所述目标软件的程序数据库文件,所述程序数据库文件中包括所述目标软件的源代码的变量信息、函数信息以及指针信息中的至少一项;
根据所述转储文件和所述程序数据库文件,确定所述异常信息。
3.如权利要求1所述的方法,其特征在于,所述当检测到目标软件发生运行异常时,获取所述目标软件的转储文件包括:
当检测到所述目标软件启动时,调用异常捕获函数对所述目标软件进行监控;
当所述异常捕获函数监控到所述运行异常时,调用系统调试函数获取所述转储文件。
4.如权利要求1所述的方法,其特征在于,所述异常信息包括多种信息分量;
所述根据所述异常信息,生成异常分析报告包括:
对所述多种信息分量中每种信息分量进行分类;
根据分类后的所述多种信息分量,生成所述异常分析报告。
5.如权利要求4所述的方法,其特征在于,所述异常分析报告包括第一异常分析报告和第二异常分析报告;
所述分类后的所述多种信息分量包括基础信息分量和详细信息分量;
所述根据分类后的所述多种信息分量,生成所述异常分析报告包括:
根据所述基础信息分量,生成所述第一异常分析报告,其中,所述基础信息分量包括异常模块的标识信息、异常类型、异常地址中至少一项;以及
根据所述详细信息分量,生成所述第二异常分析报告,其中,所述详细信息分量包括异常代码、异常函数、堆栈信息以及寄存器信息中至少一项。
6.如权利要求1所述的方法,其特征在于,所述根据所述异常信息,生成异常分析报告之后,还包括:
显示所述异常分析报告,所述异常分析报告用于提示用户处理所述运行异常;和/或
向服务器发送所述异常分析报告,所述异常分析报告用于指示所述服务器提示所述目标软件的运维人员修复所述目标软件。
7.如权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
根据所述异常分析报告,确定所述运行异常的修复方法;
显示提示信息,所述提示信息用于提示用户按照所述修复方法处理所述运行异常。
8.如权利要求7所述的方法,其特征在于,所述根据所述异常分析报告,确定所述运行异常的修复方法包括:
确定所述异常分析报告中的关键字;
从所述预设信息库中查找与所述关键字对应的所述修复方法,所述预设信息库包括所述关键字与所述修复方法的对应关系。
9.一种软件运行异常的分析装置,其特征在于,所述装置包括:
获取模块,用于当检测到目标软件发生运行异常时,获取所述目标软件的转储文件,所述转储文件为所述目标软件的内存镜像文件;
分析模块,用于根据所述转储文件,确定所述目标软件的异常信息;
报告模块,用于根据所述异常信息,生成异常分析报告。
10.一种电子设备,其特征在于,包括:处理器、存储器、通信接口和总线;
所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;
所述存储器存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如权利要求1-8任一项所述的软件运行异常的分析方法。
CN201811138042.6A 2018-09-28 2018-09-28 一种软件运行异常的分析方法、装置、电子设备及存储介质 Pending CN109358975A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811138042.6A CN109358975A (zh) 2018-09-28 2018-09-28 一种软件运行异常的分析方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811138042.6A CN109358975A (zh) 2018-09-28 2018-09-28 一种软件运行异常的分析方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN109358975A true CN109358975A (zh) 2019-02-19

Family

ID=65348119

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811138042.6A Pending CN109358975A (zh) 2018-09-28 2018-09-28 一种软件运行异常的分析方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN109358975A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147294A (zh) * 2019-05-23 2019-08-20 Oppo广东移动通信有限公司 调试信息的获取方法、装置、终端及计算机可读存储介质
CN110262870A (zh) * 2019-05-15 2019-09-20 平安科技(深圳)有限公司 利用dump文件定位异常的方法、装置、计算机设备及存储介质
CN110399275A (zh) * 2019-07-18 2019-11-01 口碑(上海)信息技术有限公司 异常展示方法及装置
CN110647451A (zh) * 2019-08-30 2020-01-03 深圳壹账通智能科技有限公司 应用程序异常分析方法及生成方法
CN112560026A (zh) * 2020-12-15 2021-03-26 国网四川省电力公司信息通信公司 一种信息系统告警智能跟踪分析自愈的实现方法
CN113110976A (zh) * 2021-04-20 2021-07-13 北京百家科技集团有限公司 一种异常分析的方法、装置、电子设备及可读存储介质
CN113836004A (zh) * 2021-08-30 2021-12-24 山东有人物联网股份有限公司 一种应用程序定位分析方法、装置、设备及存储介质
CN115237651A (zh) * 2022-07-27 2022-10-25 中汽创智科技有限公司 一种终端设备异常分析方法、装置、电子设备及存储介质
CN116775501A (zh) * 2023-08-25 2023-09-19 荣耀终端有限公司 一种软件测试方法、服务器、可读存储介质及芯片系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件系统崩溃原因进行自动分析的方法
CN103514086A (zh) * 2013-09-22 2014-01-15 广东威创视讯科技股份有限公司 一种软件错误报告的提取方法及装置
CN103678109A (zh) * 2012-09-25 2014-03-26 腾讯科技(深圳)有限公司 一种转储文件分析方法、装置和系统
US20140181593A1 (en) * 2012-12-21 2014-06-26 International Business Machines Corporation Correlation of source code with system dump information
CN105068881A (zh) * 2015-08-19 2015-11-18 北京奇虎科技有限公司 一种修复应用程序运行异常的方法、装置和系统
CN105978979A (zh) * 2016-05-17 2016-09-28 扬州航盛科技有限公司 一种linux车载系统异常诊断系统及其诊断方法
CN106294071A (zh) * 2016-08-11 2017-01-04 宁波舜宇光电信息有限公司 一种软件崩溃信息收集方法及其系统
CN106484617A (zh) * 2016-10-09 2017-03-08 武汉斗鱼网络科技有限公司 用于Windows软件产品的dump文件自动分析统计方法及系统
CN107247667A (zh) * 2017-06-02 2017-10-13 上海金大师网络科技有限公司 自动化dump分析系统及方法
CN108121651A (zh) * 2016-11-28 2018-06-05 宁波市镇海甬讯信息科技有限公司 计算机软件崩溃信息的自动分析方法和装置
CN108255719A (zh) * 2018-01-11 2018-07-06 武汉斗鱼网络科技有限公司 一种应用程序dump文件获取方法、装置及电子设备
CN108287769A (zh) * 2018-02-28 2018-07-17 腾讯科技(深圳)有限公司 一种信息处理方法及装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件系统崩溃原因进行自动分析的方法
CN103678109A (zh) * 2012-09-25 2014-03-26 腾讯科技(深圳)有限公司 一种转储文件分析方法、装置和系统
US20140181593A1 (en) * 2012-12-21 2014-06-26 International Business Machines Corporation Correlation of source code with system dump information
CN103514086A (zh) * 2013-09-22 2014-01-15 广东威创视讯科技股份有限公司 一种软件错误报告的提取方法及装置
CN105068881A (zh) * 2015-08-19 2015-11-18 北京奇虎科技有限公司 一种修复应用程序运行异常的方法、装置和系统
CN105978979A (zh) * 2016-05-17 2016-09-28 扬州航盛科技有限公司 一种linux车载系统异常诊断系统及其诊断方法
CN106294071A (zh) * 2016-08-11 2017-01-04 宁波舜宇光电信息有限公司 一种软件崩溃信息收集方法及其系统
CN106484617A (zh) * 2016-10-09 2017-03-08 武汉斗鱼网络科技有限公司 用于Windows软件产品的dump文件自动分析统计方法及系统
CN108121651A (zh) * 2016-11-28 2018-06-05 宁波市镇海甬讯信息科技有限公司 计算机软件崩溃信息的自动分析方法和装置
CN107247667A (zh) * 2017-06-02 2017-10-13 上海金大师网络科技有限公司 自动化dump分析系统及方法
CN108255719A (zh) * 2018-01-11 2018-07-06 武汉斗鱼网络科技有限公司 一种应用程序dump文件获取方法、装置及电子设备
CN108287769A (zh) * 2018-02-28 2018-07-17 腾讯科技(深圳)有限公司 一种信息处理方法及装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262870A (zh) * 2019-05-15 2019-09-20 平安科技(深圳)有限公司 利用dump文件定位异常的方法、装置、计算机设备及存储介质
CN110147294A (zh) * 2019-05-23 2019-08-20 Oppo广东移动通信有限公司 调试信息的获取方法、装置、终端及计算机可读存储介质
CN110147294B (zh) * 2019-05-23 2023-10-03 Oppo广东移动通信有限公司 调试信息的获取方法、装置、终端及计算机可读存储介质
CN110399275B (zh) * 2019-07-18 2023-02-03 口碑(上海)信息技术有限公司 异常展示方法及装置
CN110399275A (zh) * 2019-07-18 2019-11-01 口碑(上海)信息技术有限公司 异常展示方法及装置
CN110647451A (zh) * 2019-08-30 2020-01-03 深圳壹账通智能科技有限公司 应用程序异常分析方法及生成方法
CN112560026A (zh) * 2020-12-15 2021-03-26 国网四川省电力公司信息通信公司 一种信息系统告警智能跟踪分析自愈的实现方法
CN113110976A (zh) * 2021-04-20 2021-07-13 北京百家科技集团有限公司 一种异常分析的方法、装置、电子设备及可读存储介质
CN113836004A (zh) * 2021-08-30 2021-12-24 山东有人物联网股份有限公司 一种应用程序定位分析方法、装置、设备及存储介质
CN113836004B (zh) * 2021-08-30 2024-02-27 山东有人物联网股份有限公司 一种应用程序定位分析方法、装置、设备及存储介质
CN115237651A (zh) * 2022-07-27 2022-10-25 中汽创智科技有限公司 一种终端设备异常分析方法、装置、电子设备及存储介质
CN116775501A (zh) * 2023-08-25 2023-09-19 荣耀终端有限公司 一种软件测试方法、服务器、可读存储介质及芯片系统
CN116775501B (zh) * 2023-08-25 2023-12-12 荣耀终端有限公司 一种软件测试方法、服务器、可读存储介质及芯片系统

Similar Documents

Publication Publication Date Title
CN109358975A (zh) 一种软件运行异常的分析方法、装置、电子设备及存储介质
Ocariza et al. An empirical study of client-side JavaScript bugs
US20200301897A1 (en) Specifying and applying rules to data
US11023349B2 (en) Load test framework
EP3616066B1 (en) Human-readable, language-independent stack trace summary generation
US8555234B2 (en) Verification of soft error resilience
US20090150870A1 (en) Method, Apparatus, and Computer Program Product for Implementing Enhanced Template Debug
CN108459962A (zh) 代码规范性检测方法、装置、终端设备及存储介质
US9459989B2 (en) Method and apparatus for reverse debugging source code using causal analysis
CN106909498A (zh) 一种Java程序注入故障的方法和系统
US20190079854A1 (en) Systems and methods for executing tests
CN107392018A (zh) 应用程序脱壳方法及装置
US9842044B2 (en) Commit sensitive tests
US20070225943A1 (en) Executable application operation monitoring system
CN110431536B (zh) 实现整个数据结构上的断点
US8813036B2 (en) Visual representation of a difference between Cartesian product models
US20190138425A1 (en) Exception prediction before an actual exception during debugging
CN110287123A (zh) 一种绕过ios系统调试检测的方法及装置
US9104573B1 (en) Providing relevant diagnostic information using ontology rules
US11221862B2 (en) Capturing data from a live web application to populate a demo application
CN111176987A (zh) 前端日志统一输出的方法、装置、计算机设备及存储介质
Wienke et al. Performance regression testing and run-time verification of components in robotics systems
CN114625448A (zh) 结合rpa和ai的流程生成方法、装置、电子设备及存储介质
CN114936135A (zh) 一种异常检测方法、装置及可读存储介质
CN108037914A (zh) 一种安卓原生系统结合js开发的方法及装置

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: 20191125

Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Applicant after: Zhuhai Leopard Technology Co.,Ltd.

Address before: 519070, No. 10, main building, No. six, science Road, Harbour Road, Tang Wan Town, Guangdong, Zhuhai, 601F

Applicant before: Zhuhai Juntian Electronic Technology Co.,Ltd.

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

Application publication date: 20190219