CN108459921A - 崩溃文件存储方法、装置及电子设备 - Google Patents
崩溃文件存储方法、装置及电子设备 Download PDFInfo
- Publication number
- CN108459921A CN108459921A CN201810155007.9A CN201810155007A CN108459921A CN 108459921 A CN108459921 A CN 108459921A CN 201810155007 A CN201810155007 A CN 201810155007A CN 108459921 A CN108459921 A CN 108459921A
- Authority
- CN
- China
- Prior art keywords
- information
- collapse
- file
- parsing
- grouping
- 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/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0778—Dumping, i.e. gathering error/state information after a fault for later diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种崩溃文件存储方法、装置及电子设备,应用于数据处理技术领域,上述崩溃文件存储方法包括:获取待存储的崩溃文件;对各所述崩溃文件进行解析,得到各所述崩溃文件的解析信息,所述解析信息包括:堆栈信息;将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中。将堆栈信息中最后调用的函数相同且符合预设相似规则的解析信息,保存到同一分组中,可以方便对解析信息的管理。同时同一分组中解析信息相似度高,在后续分析崩溃原因时,同一分组中解析信息对应的崩溃原因相似或相同,能够提升分析速度。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及崩溃文件存储方法、装置及电子设备。
背景技术
在计算机程序运行的过程中,由于缓冲区溢出、读取已释放内存及程序本身存在问题等原因,会导致程序崩溃。对崩溃文件进行分析,能够帮助运维人员或开发人员发现异常来源,改善程序本身或程序运行环境,从而提供更优质的服务。现有的崩溃文件存储方法,是在解析出各崩溃文件的解析信息后,将各崩溃文件的解析信息全部存储到同一分组中。
发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
面对大型发布软件,在崩溃文件数量非常大时,将各崩溃文件的解析信息全部存储到同一文件中,不方便对解析信息的管理。
发明内容
本发明实施例的目的在于提供一种崩溃文件存储方法、装置及电子设备,以实现方便对崩溃文件的管理。具体技术方案如下:
第一方面,本发明实施例提供了一种崩溃文件存储方法,所述方法包括:
获取待存储的崩溃文件;
对各所述崩溃文件进行解析,得到各所述崩溃文件的解析信息,所述解析信息包括:堆栈信息;
将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中。
可选的,所述获取待存储的崩溃文件,包括:
发送崩溃文件下载请求;
接收崩溃文件压缩包;
解压所述崩溃文件压缩包,得到待存储的崩溃文件。
可选的,所述将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中,包括:
将堆栈信息中最后调用的函数相同,且相似度大于预设相似度阈值的解析信息,保存到同一分组中。
可选的,所述将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中,包括:
获取各所述解析信息中,除地址信息外的其他信息,作为待比较信息;
将堆栈信息中最后调用的函数相同,且所述待比较信息相似度大于预设相似度阈值的解析信息,保存到同一分组中。
可选的,在所述将堆栈信息中最后调用的函数相同的解析信息存储到同一分组中之后,所述方法还包括:
根据每个所述分组中的解析信息对应的崩溃文件的数量,将各所述分组进行排序。
可选的,在所述将堆栈信息中最后调用的函数相同的解析信息存储到同一分组中之后,所述方法还包括:
监测所述崩溃文件的数量;
若所述崩溃文件的数量超过预设告警阈值时,生成告警信息。
可选的,在所述若所述崩溃文件的数量超过预设告警阈值时,生成告警信息之后,所述方法还包括:
步骤A,在未进行崩溃分析的分组中,选取解析信息对应的崩溃文件的数量最多的分组,作为待处理分组;
步骤B,将所述待处理分组中的各解析信息,视为同一错误的解析信息进行崩溃分析;
步骤C,判断未进行崩溃的各分组中所有解析信息对应的崩溃文件的数量是否超过所述预设告警阈值,若超过则返回步骤A继续执行,若未超过则结束本次崩溃分析。
第二方面,本发明实施例提供了一种崩溃文件存储装置,所述装置包括:
文件获取模块,用于获取待存储的崩溃文件;
文件解析模块,用于对各所述崩溃文件进行解析,得到各所述崩溃文件的解析信息,所述解析信息包括:堆栈信息;
信息存储模块,用于将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中。
可选的,所述文件获取模块,包括:
请求发送子模块,用于发送崩溃文件下载请求;
压缩包接收子模块,用于接收崩溃文件压缩包;
解压子模块,用于解压所述崩溃文件压缩包,得到待存储的崩溃文件。
可选的,所述信息存储模块,具体用于:
将堆栈信息中最后调用的函数相同,且相似度大于预设相似度阈值的解析信息,保存到同一分组中。
可选的,所述信息存储模块,包括:
信息获取子模块,用于获取各所述解析信息中,除地址信息外的其他信息,作为待比较信息;
分组保存子模块,用于将堆栈信息中最后调用的函数相同,且所述待比较信息相似度大于预设相似度阈值的解析信息,保存到同一分组中。
可选的,本发明实施例的崩溃文件存储装置还包括:
排序模块,用于根据每个所述分组中的解析信息对应的崩溃文件的数量,将各所述分组进行排序。
可选的,本发明实施例的崩溃文件存储装置还包括:
数量监测模块,用于监测所述崩溃文件的数量;
告警模块,用于若所述崩溃文件的数量超过预设告警阈值时,生成告警信息。
可选的,本发明实施例的崩溃文件存储装置还包括:
分组选取模块,用于在未进行崩溃分析的分组中,选取解析信息对应的崩溃文件的数量最多的分组,作为待处理分组;
崩溃分析模块,用于将所述待处理分组中的各解析信息,视为同一错误的解析信息进行崩溃分析;
数量判定模块,用于判断未进行崩溃的各分组中所有解析信息对应的崩溃文件的数量是否超过所述预设告警阈值,若超过则返回分组选取模块继续执行,若未超过则结束本次崩溃分析。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的崩溃文件存储方法。
第四方面,本发明实施提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的崩溃文件存储方法。
第五方面,本发明实施提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的崩溃文件存储方法。
本发明实施例提供的崩溃文件存储方法、装置及电子设备,获取待存储的崩溃文件;对各所述崩溃文件进行解析,得到各所述崩溃文件的解析信息,所述解析信息包括:堆栈信息;将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中。将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中,可以方便对解析信息的管理。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例的崩溃文件存储方法的一种流程示意图;
图2为本发明实施例的崩溃文件存储方法的解析信息的一种示意图;
图3为本发明实施例的崩溃文件存储方法的堆栈信息的一种示意图;
图4为本发明实施例的崩溃文件存储装置的一种示意图;
图5为本发明实施例的电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
在现有的崩溃文件存储方法中,解析出各崩溃文件的解析信息后,将各崩溃文件的解析信息全部存储到同一分组中。但是对于大型发布软件,面对数以万计的崩溃文件,现有的崩溃文件存储方法不方便对崩溃文件的管理,同时不方便后续对崩溃文件的分析。
有鉴于此,参见图1,本发明实施例提供了一种崩溃文件存储方法,该方法包括:
S101,获取待存储的崩溃文件。
本发明实施例中的崩溃文件存储方法可以通过存储系统实现,存储系统为任意能够实现本发明实施例的崩溃文件存储方法。例如:
存储系统可以为一种设备,包括:处理器、存储器、通信接口和总线;处理器、存储器和通信接口通过总线连接并完成相互间的通信;存储器存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行本发明实施例的崩溃文件存储方法。
存储系统还可以为一种应用程序,用于在运行时执行本发明实施例的崩溃文件存储方法。
存储系统还可以为一种存储介质,用于存储可执行代码,可执行代码用于执行本发明实施例的崩溃文件存储方法。
崩溃文件为任意记录软件崩溃时进程参数的文件,例如,崩溃文件为软件进程崩溃时该软件对应的转存储内存镜像文件。在软件运行过程中,会生成记录软件运行状态的文件,例如,通过MiniDumpWriteDump生成软件的dump文件,dump文件中可以包含软件版本号、进程标识、ClientID、操作系统版本、时间戳、崩溃堆栈首地址等信息。软件定时将记录软件运行状态的文件,例如dump文件,进行上传,然后各软件在本地删除这些已上传的文件。存储系统可以直接获取由各软件发送的崩溃文件,也可以从服务器中下载各崩溃文件。
可选的,获取待存储的崩溃文件,包括:
步骤一,发送崩溃文件下载请求。
客户端软件将崩溃文件,例如dump文件,上传到服务器。存储系统向服务器发送崩溃文件的下载请求。下载请求中可以包含软件的版本号,以获取指定版本软件的崩溃文件。
步骤二,接收崩溃文件压缩包。
服务器接收到崩溃文件的下载请求后,搜集下载请求对应的各崩溃文件,并根据下载请求,返回下载请求对应的各崩溃文件。例如,服务器获取下载请求中版本号对应的各崩溃文件的GNUzip包,打包为tar包,并向下载请求中的源地址发送该tar包。存储系统接收崩溃文件压缩包。
步骤三,解压上述崩溃文件压缩包,得到待存储的崩溃文件。
在崩溃文件压缩包接收完成后,存储系统对崩溃文件压缩包进行解压,得到各待存储的崩溃文件。
S102,对各上述崩溃文件进行解析,得到各上述崩溃文件的解析信息,上述解析信息包括:堆栈信息。
通过预设的解析方法对崩溃文件进行解析,得到各崩溃文件的解析信息。该解析信息中至少包括堆栈信息,可选的,解析信息中还可以包括:变量,句柄,及CPU参数等信息。预设的解析方法为任意的文件解析方法,例如,通过Debugging Tools软件对崩溃文件进行解析等。可选的,存储系统调用C:\\Program Files(x86)\\Debugging Tools for Windows(x86)\\cdb.exe文件,并通过命令行参数:"-y\""+symPath+"\"-z\""+dumpFileName+"\"-c\""+DBG_COMMAND+"\"-kqm",对崩溃文件进行解析,其中,SymPath代表PDB(ProgramDatabase File,程序数据库文件)符号文件路径,DumpFileName代表dump文件(崩溃文件)本地文件路径,DBG_COMMAND代表命令行无窗口模式。解析信息可以如图2所示,存储系统可以将解析得到的各崩溃文件的解析信息保存为文本文档,以方便后续对解析信息的存储。
S103,将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中。
堆栈信息中最后调用的函数,位于堆栈信息的最顶部。例如,参见图3,appPluginBase!CConfigParser::ParseDllPath即为堆栈信息中最后调用的函数。其中,在堆栈信息调用的函数中,“!”前面的为模块名称,例如,appPluginBase,其对应的真实模块为appPluginBase.dll,“!”后面的为函数名称,例如,CConfigParser::ParseDllPath,括号内的为函数的参数,例如:(class std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>*strConfigFile=0x7ef66000)。
同一分组中各解析信息的堆栈信息最后调用的函数均相同。存储系统根据解析信息中堆栈信息最后调用的函数,将堆栈信息最后调用的函数相同的解析信息划分到同一类中,且一个类中各解析信息的堆栈信息最后调用的函数均相同。针对每个类,选取该类中符合预设相似规则的解析信息保存到同一分组中。预设相似规则为任意的根据解析信息的相似度,对解析信息进行分组的规则。
可选的,上述将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中,包括:
将堆栈信息中最后调用的函数相同,且相似度大于预设相似度阈值的解析信息,保存到同一分组中。
预设相似度阈值为任意数值,根据实际应用场景进行设定,例如,预设相似度阈值为80%、85%或90%等。存储系统根据解析信息的堆栈信息中最后调用的函数,将堆栈信息最后调用的函数相同的解析信息划分到同一类中,且一个类中各解析信息的堆栈信息最后调用的函数均相同。针对每个类,计算各解析信息的相似度,将解析信息相似度大于预设相似度预设的解析信息,保存到同一分组中。
例如,在一个类中,随机选取一个解析信息作为第一模板解析信息,建立第一分组,并将第一模板解析信息保存到第一分组中。在该类剩余的解析信息中随机选取一个解析信息a,计算解析信息a与第一模板解析信息的相似度,若该相似度大于预设相似度阈值则将解析信息a保存到第一分组中;若该相似度不大于预设相似度阈值,则将解析信息a作为第二模板解析信息,建立第二分组,并将第二模板解析信息保存到第二分组中。
在该类剩余的解析信息中随机选取一个解析信息b,并依次计算解析信息b与各模板解析信息的相似度,在计算过程中若解析信息b与当前比较的模板解析信息的相似度大于预设相似度阈值,则直接将解析信息b加入到当前比较的模板解析信息所在的分组中,并且不再与剩余的模板解析信息进行比较。若解析信息b与各模板解析信息的相似度均不大于预设相似度阈值,则将解析信息b作为新的模板解析信息,并保存到新建立的分组中。继续在该类剩余的解析信息中随机选取一个解析信息,重复上述过程,直至所有解析信息均进行相似度检测。
在本发明实施例中,将堆栈信息中最后调用的函数相同,且相似度大于预设相似度阈值的解析信息,保存到同一分组中,同一分组中解析信息相似度高,方便对崩溃文件的管理,同时后续分析崩溃原因时,同一分组中解析信息对应的崩溃原因相似或相同,能够提升分析速度。
可选的,上述将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中,包括:
步骤一,获取各上述解析信息中,除地址信息外的其他信息,作为待比较信息。
步骤二,将堆栈信息中最后调用的函数相同,且上述待比较信息相似度大于预设相似度阈值的解析信息,保存到同一分组中。
通常情况下,地址信息与软件崩溃原因并无联系,计算解析信息中除地址信息外的其他信息的相似度,可以进一步提高相似度比较的准确度,从而同一分组中解析信息对应的崩溃原因更加相似,能够提升后续分析崩溃原因的速度。
在本发明实施例中,将堆栈信息中最后调用的函数相同且符合预设相似规则的解析信息,保存到同一分组中,可以方便对解析信息的管理。同一分组中解析信息相似度高,在后续分析崩溃原因时,同一分组中解析信息对应的崩溃原因相似或相同,能够提升分析速度。
可选的,在上述将堆栈信息中最后调用的函数相同的解析信息存储到同一分组中之后,上述方法还包括:
根据每个上述分组中的解析信息对应的崩溃文件的数量,将各上述分组进行排序。
存储系统根据解析信息对应的崩溃文件的数量的升序或降序,将各分组排序为相应的顺序。
在本发明实施例中,根据每个上述分组中的解析信息对应的崩溃文件的数量,将各上述分组进行排序,在后续分析崩溃原因时,方便从对应崩溃文件最多的分组开始进行分析,能够提高对崩溃文件的分析效率。
可选的,在上述将首地址信息相同的解析信息存储到同一分组中之后,上述方法还包括:
步骤一,监测上述崩溃文件的数量。
存储系统监测当前所有崩溃文件的数量。
步骤二,若上述崩溃文件的数量超过预设告警阈值时,生成告警信息。
预设告警阈值为任意的数值,可以根据实际情况进行设定,例如,崩溃文件的数量为所有客户端软件数量的1.5%、1%或0.5%时,生成告警信息。
在本发明实施中,在崩溃文件的数量超过预设告警阈值时,生成告警信息,方便后续根据告警信息触发崩溃分析。
可选的,在上述若上述崩溃文件的数量超过预设告警阈值时,生成告警信息之后,上述方法还包括:
步骤A,在未进行崩溃分析的分组中,选取解析信息对应的崩溃文件的数量最多的分组,作为待处理分组。
步骤B,将上述待处理分组中的各解析信息,视为同一错误的解析信息进行崩溃分析。
步骤C,判断未进行崩溃的各分组中所有解析信息对应的崩溃文件的数量是否超过上述预设告警阈值,若超过则返回步骤A继续执行,若未超过则结束本次崩溃分析。
告警信息触发崩溃分析,在生成告警信息后,在各分组中选取相应分组中的解析信息进行崩溃分析。首先选取对应的崩溃文件数量最多的分组,因为同一分组中各解析信息符合预设相似规则,因此可以将个解析信息视为同一错误(崩溃)的解析信息,每个分组中仅分析一个解析信息,例如,随机选取一个解析信息,或选取该分组的模板解析信息。从而大大增加了崩溃分析的速度。当未进行崩溃分析的各分组中所有解析信息对应的崩溃文件的数量未超过上述预设告警阈值时,说明崩溃软件的数量在允许范围内,则可以停止本次崩溃分析。
本发明实施例还提供了一种崩溃文件存储装置,参见图4,该装置包括:
文件获取模块401,用于获取待存储的崩溃文件;
文件解析模块402,用于对各上述崩溃文件进行解析,得到各上述崩溃文件的解析信息,上述解析信息包括:堆栈信息;
信息存储模块403,用于将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中。
在本发明实施例中,将堆栈信息中最后调用的函数相同且符合预设相似规则的解析信息,保存到同一分组中,可以方便对解析信息的管理。同一分组中解析信息相似度高,在后续分析崩溃原因时,同一分组中解析信息对应的崩溃原因相似或相同,能够提升分析速度。
可选的,上述文件获取模块401,包括:
请求发送子模块,用于发送崩溃文件下载请求;
压缩包接收子模块,用于接收崩溃文件压缩包;
解压子模块,用于解压上述崩溃文件压缩包,得到待存储的崩溃文件。
在本发明实施例中,通过发送下载请求获取下载请求对应的崩溃文件,能够实现对指定的崩溃文件进行存储。
可选的,上述信息存储模块403,具体用于:
将堆栈信息中最后调用的函数相同,且相似度大于预设相似度阈值的解析信息,保存到同一分组中。
在本发明实施例中,将堆栈信息中最后调用的函数相同,且相似度大于预设相似度阈值的解析信息,保存到同一分组中,同一分组中解析信息相似度高,方便对崩溃文件的管理,同时后续分析崩溃原因时,同一分组中解析信息对应的崩溃原因相似或相同,能够提升分析速度。
可选的,上述信息存储模块403,包括:
信息获取子模块,用于获取各上述解析信息中,除地址信息外的其他信息,作为待比较信息;
分组保存子模块,用于将堆栈信息中最后调用的函数相同,且上述待比较信息相似度大于预设相似度阈值的解析信息,保存到同一分组中。
通常情况下,地址信息与软件崩溃原因并无联系,计算解析信息中除地址信息外的其他信息的相似度,可以进一步提高相似度比较的准确度,从而同一分组中解析信息对应的崩溃原因更加相似,能够提升后续分析崩溃原因的分析速度。
可选的,本发明实施例的崩溃文件存储装置还包括:
排序模块,用于根据每个上述分组中的解析信息对应的崩溃文件的数量,将各上述分组进行排序。
在本发明实施例中,根据每个上述分组中的解析信息对应的崩溃文件的数量,将各上述分组进行排序,在后续分析崩溃原因时,方便从包含对应对崩溃文件最多的分组开始进行分析,能够提高崩溃分析的效率。
可选的,本发明实施例的崩溃文件存储装置还包括:
数量监测模块,用于监测上述崩溃文件的数量;
告警模块,用于若上述崩溃文件的数量超过预设告警阈值时,生成告警信息。
在本发明实施中,在崩溃文件的数量超过预设告警阈值时,生成告警信息,方便后续根据告警信息触发崩溃分析。
可选的,本发明实施例的崩溃文件存储装置还包括:
分组选取模块,用于在未进行崩溃分析的分组中,选取解析信息对应的崩溃文件的数量最多的分组,作为待处理分组;
崩溃分析模块,用于将上述待处理分组中的各解析信息,视为同一错误的解析信息进行崩溃分析;
数量判定模块,用于判断未进行崩溃的各分组中所有解析信息对应的崩溃文件的数量是否超过上述预设告警阈值,若超过则返回分组选取模块继续执行,若未超过则结束本次崩溃分析。
告警信息触发崩溃分析,在生成告警信息后,在各分组中选取相应分组中的解析信息进行崩溃分析。首先选取对应的崩溃文件数量最多的分组,因为同一分组中各解析信息符合预设相似规则,因此可以将个解析信息视为同一错误(崩溃)的解析信息,每个分组中仅分析一个解析信息,例如,随机选取一个解析信息,或选取该分组的模板解析信息。从而大大增加了崩溃分析的速度。当未进行崩溃分析的各分组中所有解析信息对应的崩溃文件的数量未超过上述预设告警阈值时,说明崩溃软件的数量在允许范围内,则可以停止本次崩溃分析。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
获取待存储的崩溃文件;
对各上述崩溃文件进行解析,得到各上述崩溃文件的解析信息,上述解析信息包括:堆栈信息;
将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中。
在本发明实施例中,将堆栈信息中最后调用的函数相同且符合预设相似规则的解析信息,保存到同一分组中,可以方便对解析信息的管理。同一分组中解析信息相似度高,在后续分析崩溃原因时,同一分组中解析信息对应的崩溃原因相似或相同,能够提升分析速度。
可选的,上述处理器301用于执行存储器303上所存放的程序时,还能够实现上述任一崩溃文件存储方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的崩溃文件存储方法。
在本发明实施例中,将堆栈信息中最后调用的函数相同且符合预设相似规则的解析信息,保存到同一分组中,可以方便对解析信息的管理。同一分组中解析信息相似度高,在后续分析崩溃原因时,同一分组中解析信息对应的崩溃原因相似或相同,能够提升分析速度。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的崩溃文件存储方法。
在本发明实施例中,将堆栈信息中最后调用的函数相同且符合预设相似规则的解析信息,保存到同一分组中,可以方便对解析信息的管理。同一分组中解析信息相似度高,在后续分析崩溃原因时,同一分组中解析信息对应的崩溃原因相似或相同,能够提升分析速度。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质及计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (15)
1.一种崩溃文件存储方法,其特征在于,所述方法包括:
获取待存储的崩溃文件;
对各所述崩溃文件进行解析,得到各所述崩溃文件的解析信息,所述解析信息包括:堆栈信息;
将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中。
2.根据权利要求1所述的方法,其特征在于,所述获取待存储的崩溃文件,包括:
发送崩溃文件下载请求;
接收崩溃文件压缩包;
解压所述崩溃文件压缩包,得到待存储的崩溃文件。
3.根据权利要求1所述的方法,其特征在于,所述将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中,包括:
将堆栈信息中最后调用的函数相同,且相似度大于预设相似度阈值的解析信息,保存到同一分组中。
4.根据权利要求1所述的方法,其特征在于,所述将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中,包括:
获取各所述解析信息中,除地址信息外的其他信息,作为待比较信息;
将堆栈信息中最后调用的函数相同,且所述待比较信息相似度大于预设相似度阈值的解析信息,保存到同一分组中。
5.根据权利要求1所述的方法,其特征在于,在所述将堆栈信息中最后调用的函数相同的解析信息存储到同一分组中之后,所述方法还包括:
根据每个所述分组中的解析信息对应的崩溃文件的数量,将各所述分组进行排序。
6.根据权利要求1所述的方法,其特征在于,在所述将堆栈信息中最后调用的函数相同的解析信息存储到同一分组中之后,所述方法还包括:
监测所述崩溃文件的数量;
若所述崩溃文件的数量超过预设告警阈值时,生成告警信息。
7.根据权利要求6所述的方法,其特征在于,在所述若所述崩溃文件的数量超过预设告警阈值时,生成告警信息之后,所述方法还包括:
步骤A,在未进行崩溃分析的分组中,选取解析信息对应的崩溃文件的数量最多的分组,作为待处理分组;
步骤B,将所述待处理分组中的各解析信息,视为同一错误的解析信息进行崩溃分析;
步骤C,判断未进行崩溃的各分组中所有解析信息对应的崩溃文件的数量是否超过所述预设告警阈值,若超过则返回步骤A继续执行,若未超过则结束本次崩溃分析。
8.一种崩溃文件存储装置,其特征在于,所述装置包括:
文件获取模块,用于获取待存储的崩溃文件;
文件解析模块,用于对各所述崩溃文件进行解析,得到各所述崩溃文件的解析信息,所述解析信息包括:堆栈信息;
信息存储模块,用于将堆栈信息中最后调用的函数相同,且符合预设相似规则的解析信息,保存到同一分组中。
9.根据权利要求8所述的装置,其特征在于,所述文件获取模块,包括:
请求发送子模块,用于发送崩溃文件下载请求;
压缩包接收子模块,用于接收崩溃文件压缩包;
解压子模块,用于解压所述崩溃文件压缩包,得到待存储的崩溃文件。
10.根据权利要求8所述的装置,其特征在于,所述信息存储模块,具体用于:
将堆栈信息中最后调用的函数相同,且相似度大于预设相似度阈值的解析信息,保存到同一分组中。
11.根据权利要求8所述的装置,其特征在于,所述信息存储模块,包括:
信息获取子模块,用于获取各所述解析信息中,除地址信息外的其他信息,作为待比较信息;
分组保存子模块,用于将堆栈信息中最后调用的函数相同,且所述待比较信息相似度大于预设相似度阈值的解析信息,保存到同一分组中。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
排序模块,用于根据每个所述分组中的解析信息对应的崩溃文件的数量,将各所述分组进行排序。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
数量监测模块,用于监测所述崩溃文件的数量;
告警模块,用于若所述崩溃文件的数量超过预设告警阈值时,生成告警信息。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
分组选取模块,用于在未进行崩溃分析的分组中,选取解析信息对应的崩溃文件的数量最多的分组,作为待处理分组;
崩溃分析模块,用于将所述待处理分组中的各解析信息,视为同一错误的解析信息进行崩溃分析;
数量判定模块,用于判断未进行崩溃的各分组中所有解析信息对应的崩溃文件的数量是否超过所述预设告警阈值,若超过则返回分组选取模块继续执行,若未超过则结束本次崩溃分析。
15.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810155007.9A CN108459921A (zh) | 2018-02-23 | 2018-02-23 | 崩溃文件存储方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810155007.9A CN108459921A (zh) | 2018-02-23 | 2018-02-23 | 崩溃文件存储方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108459921A true CN108459921A (zh) | 2018-08-28 |
Family
ID=63217101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810155007.9A Pending CN108459921A (zh) | 2018-02-23 | 2018-02-23 | 崩溃文件存储方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108459921A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558308A (zh) * | 2018-09-29 | 2019-04-02 | 中国平安人寿保险股份有限公司 | 应用程序内存泄露检测方法、装置、电子设备及存储介质 |
CN109800100A (zh) * | 2018-12-25 | 2019-05-24 | 福建天晴在线互动科技有限公司 | 一种防止ios项目崩溃的方法及终端 |
CN111290871A (zh) * | 2018-12-10 | 2020-06-16 | 北京京东尚科信息技术有限公司 | 获取应用程序崩溃信息的方法和装置 |
CN112216337A (zh) * | 2020-09-11 | 2021-01-12 | 深圳市金泰克半导体有限公司 | 固件参数检测方法、装置及固件设置方法 |
CN113419886A (zh) * | 2021-06-21 | 2021-09-21 | 网易(杭州)网络有限公司 | 处理程序崩溃的方法、设备和计算机可读存储介质 |
CN115016973A (zh) * | 2022-06-29 | 2022-09-06 | 广州文远知行科技有限公司 | 一种程序崩溃事件复现方法、装置、设备和介质 |
CN117891646A (zh) * | 2024-03-18 | 2024-04-16 | 麒麟软件有限公司 | ARM64架构FreeRTOS崩溃数据自动分析方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3884461B2 (ja) * | 2005-08-03 | 2007-02-21 | 三菱電機株式会社 | メモリダンプ装置 |
CN101719090A (zh) * | 2009-12-25 | 2010-06-02 | 珠海市君天电子科技有限公司 | 对计算机软件系统崩溃原因进行自动分析的方法 |
CN106383917A (zh) * | 2016-11-11 | 2017-02-08 | 苏州天平先进数字科技有限公司 | 一种基于用户日志的数据处理方法 |
CN106708704A (zh) * | 2016-12-23 | 2017-05-24 | 北京奇虎科技有限公司 | 一种对崩溃日志进行分类的方法和装置 |
US20170147469A1 (en) * | 2012-12-21 | 2017-05-25 | International Business Machines Corporation | Correlation of source code with system dump information |
CN107241212A (zh) * | 2017-04-20 | 2017-10-10 | 努比亚技术有限公司 | 一种日志处理方法及装置、设备 |
CN107493275A (zh) * | 2017-08-08 | 2017-12-19 | 北京盛华安信息技术有限公司 | 异构网络安全日志信息的自适应提取和分析方法及系统 |
-
2018
- 2018-02-23 CN CN201810155007.9A patent/CN108459921A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3884461B2 (ja) * | 2005-08-03 | 2007-02-21 | 三菱電機株式会社 | メモリダンプ装置 |
CN101719090A (zh) * | 2009-12-25 | 2010-06-02 | 珠海市君天电子科技有限公司 | 对计算机软件系统崩溃原因进行自动分析的方法 |
US20170147469A1 (en) * | 2012-12-21 | 2017-05-25 | International Business Machines Corporation | Correlation of source code with system dump information |
CN106383917A (zh) * | 2016-11-11 | 2017-02-08 | 苏州天平先进数字科技有限公司 | 一种基于用户日志的数据处理方法 |
CN106708704A (zh) * | 2016-12-23 | 2017-05-24 | 北京奇虎科技有限公司 | 一种对崩溃日志进行分类的方法和装置 |
CN107241212A (zh) * | 2017-04-20 | 2017-10-10 | 努比亚技术有限公司 | 一种日志处理方法及装置、设备 |
CN107493275A (zh) * | 2017-08-08 | 2017-12-19 | 北京盛华安信息技术有限公司 | 异构网络安全日志信息的自适应提取和分析方法及系统 |
Non-Patent Citations (1)
Title |
---|
BONELEE: "《日志和告警数据挖掘经验谈-利用日志相似度进行聚类,利用时间进行关联分析》", 《HTTPS://WWW.CNBLOGS.COM/BONELEE/P/6351745.HTML》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558308A (zh) * | 2018-09-29 | 2019-04-02 | 中国平安人寿保险股份有限公司 | 应用程序内存泄露检测方法、装置、电子设备及存储介质 |
CN111290871A (zh) * | 2018-12-10 | 2020-06-16 | 北京京东尚科信息技术有限公司 | 获取应用程序崩溃信息的方法和装置 |
CN109800100A (zh) * | 2018-12-25 | 2019-05-24 | 福建天晴在线互动科技有限公司 | 一种防止ios项目崩溃的方法及终端 |
CN109800100B (zh) * | 2018-12-25 | 2023-02-28 | 福建天晴在线互动科技有限公司 | 一种防止ios项目崩溃的方法及终端 |
CN112216337A (zh) * | 2020-09-11 | 2021-01-12 | 深圳市金泰克半导体有限公司 | 固件参数检测方法、装置及固件设置方法 |
CN112216337B (zh) * | 2020-09-11 | 2024-03-29 | 深圳市金泰克半导体有限公司 | 固件参数检测方法、装置及固件设置方法 |
CN113419886A (zh) * | 2021-06-21 | 2021-09-21 | 网易(杭州)网络有限公司 | 处理程序崩溃的方法、设备和计算机可读存储介质 |
CN113419886B (zh) * | 2021-06-21 | 2022-05-03 | 网易(杭州)网络有限公司 | 处理程序崩溃的方法、设备和计算机可读存储介质 |
CN115016973A (zh) * | 2022-06-29 | 2022-09-06 | 广州文远知行科技有限公司 | 一种程序崩溃事件复现方法、装置、设备和介质 |
CN117891646A (zh) * | 2024-03-18 | 2024-04-16 | 麒麟软件有限公司 | ARM64架构FreeRTOS崩溃数据自动分析方法 |
CN117891646B (zh) * | 2024-03-18 | 2024-05-31 | 麒麟软件有限公司 | ARM64架构FreeRTOS崩溃数据自动分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459921A (zh) | 崩溃文件存储方法、装置及电子设备 | |
US10528454B1 (en) | Intelligent automation of computer software testing log aggregation, analysis, and error remediation | |
US8660995B2 (en) | Flexible event data content management for relevant event and alert analysis within a distributed processing system | |
US8825852B2 (en) | Relevant alert delivery in a distributed processing system | |
US9344381B2 (en) | Event management in a distributed processing system | |
US8713581B2 (en) | Selected alert delivery in a distributed processing system | |
EP4270199A1 (en) | Application programming interface (api) testing method and device | |
US20150058676A1 (en) | Determining Whether To Send An Alert In A Distributed Processing System | |
CN106254172A (zh) | 异构应用数据采集方法及装置 | |
US9361184B2 (en) | Selecting during a system shutdown procedure, a restart incident checkpoint of an incident analyzer in a distributed processing system | |
CN111522711A (zh) | 一种数据监控处理系统、方法、执行端、监控端及电子设备 | |
US20190340052A1 (en) | System for monitoring a plurality of distributed devices | |
CN111949611B (zh) | 一种文件处理方法、系统、设备及介质 | |
CN112650648A (zh) | 监控方法、装置、设备和存储介质 | |
CN112988523A (zh) | 一种多维度的游戏系统告警方法和系统 | |
CN108111328B (zh) | 一种异常处理方法及装置 | |
CN110209548B (zh) | 服务控制方法、系统、电子设备及计算机可读存储介质 | |
CN112905197A (zh) | 一种信息处理方法、装置、系统、电子设备及存储介质 | |
CN110309028B (zh) | 监控信息获取方法、服务监控方法、装置及系统 | |
CN114374745A (zh) | 一种协议格式的处理方法及系统 | |
CN115134270B (zh) | 代码监控方法、监控系统、电子设备及存储介质 | |
CN114650218A (zh) | 一种数据获取方法、设备、系统及存储介质 | |
CN116846540B (zh) | 设备厂商推测方法、设备、存储介质及装置 | |
CN108111611B (zh) | 一种客户端检测方法、装置及电子设备 | |
CN117389813B (zh) | Rdma测试方法、装置、电子设备及计算机存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180828 |