CN103678109A - 一种转储文件分析方法、装置和*** - Google Patents

一种转储文件分析方法、装置和*** Download PDF

Info

Publication number
CN103678109A
CN103678109A CN201210359077.9A CN201210359077A CN103678109A CN 103678109 A CN103678109 A CN 103678109A CN 201210359077 A CN201210359077 A CN 201210359077A CN 103678109 A CN103678109 A CN 103678109A
Authority
CN
China
Prior art keywords
collapse
dump file
script
crash
file
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.)
Granted
Application number
CN201210359077.9A
Other languages
English (en)
Other versions
CN103678109B (zh
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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201210359077.9A priority Critical patent/CN103678109B/zh
Publication of CN103678109A publication Critical patent/CN103678109A/zh
Application granted granted Critical
Publication of CN103678109B publication Critical patent/CN103678109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施方式提出了一种转储(Dump)文件分析方法、装置和***。方法包括:接收转储文件;调度调试分析引擎对转储文件进行扫描,以获取转储文件分析日志;对转储文件分析日志进行解析,以提取出崩溃(Crash)基础特征;根据崩溃基础特征生成崩溃辅助特征,并基于崩溃基础特征和崩溃辅助特征对转储文件进行判定。应用本发明实施方式之后,实现了针对转储文件的自动分析,提高了转储文件分析效率,可以快速定位和解决软件崩溃(Crash)问题,从而提高软件的稳定性。

Description

一种转储文件分析方法、装置和***
技术领域
本发明实施方式涉及计算机信息处理技术领域,更具体地,涉及一种转储(Dump)文件分析方法、装置和***。
背景技术
软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为编程语言、***软件、应用软件和介于这两者之间的中间件。软件产品是指向用户提供的计算机软件、信息***或设备中嵌入的软件或在提供计算机信息***集成、应用服务等技术服务时提供的计算机软件。
现在很多的软件产品为了追求高稳定性,通常在软件崩溃(Crash)时生成并上报Dump文件。Dump文件是进程的内存镜像。在程序Crash时,可以把程序的执行状态通过调试器保存到Dump文件中。软件开发人员通过分析收集到的Dump,可以定位并解决软件崩溃问题。
目前针对Dump文件的分析的手段一般是通过Visual Studio、WinDbg等调试工具来打开Dump文件,人工通过观察调用栈、寄存器、异常信息来推测可能造成软件Crash的原因。
然而,这种人工分析Dump文件的方式耗时较久,不利于快速修复软件Crash问题。而且,采用人工分析Dump文件的处理方式还具有分析效率低的缺陷,以及人工分析处理通常会需要大量的培训工作,从而造成分析成本上升。
发明内容
本发明实施方式提出一种Dump文件分析方法,实现对Dump文件的自动分析,从而提高Dump文件分析效率。
本发明实施方式还提出了一种Dump文件分析装置,实现对Dump文件的自动分析,从而提高Dump文件分析效率。
本发明实施方式还提出了一种Dump文件分析***,实现对Dump文件的自动分析,从而提高Dump文件分析效率。
本发明实施方式的具体方案如下:
一种转储(Dump)文件分析方法,该方法包括:
接收转储文件;
调度调试分析引擎对所述转储文件进行扫描,以获取转储文件分析日志;
对所述转储文件分析日志进行解析,以提取出崩溃(Crash)基础特征;
根据所述崩溃基础特征生成崩溃辅助特征,并基于所述崩溃基础特征和崩溃辅助特征对所述转储文件进行判定。
一种转储文件分析装置,该装置包括转储文件接收单元、转储文件分析日志生成单元、崩溃基础特征提取单元和转储文件判定单元,其中:
转储文件接收单元,用于接收转储文件;
转储文件分析日志生成单元,用于调试分析引擎对所述转储文件进行扫描,以获取转储文件分析日志;
崩溃基础特征提取单元,用于对所述转储文件分析日志进行解析,以提取出崩溃(Crash)基础特征;
转储文件判定单元,用于根据所述崩溃基础特征生成崩溃辅助特征,并基于所述崩溃基础特征和崩溃辅助特征对所述转储文件进行判定。
一种转储文件分析***,该***包括:位于本地端的转储文件发送装置和位于网络侧的转储文件分析装置;其中:
所述转储文件发送装置,用于采集在本地的程序崩溃(Crash)时所产生的转储文件,并通过与转储文件分析装置的WEB连接向所述转储文件分析装置发送该转储文件;
转储文件分析装置,用于接收该转储文件,并使能预先生成的调度脚本调度调试分析引擎对所述转储文件进行扫描以获取转储文件分析日志;使能预先生成的特征提取脚本对所述转储文件分析日志进行解析,以提取出崩溃基础特征;使能预先生成的特征分析脚本根据所述崩溃基础特征生成崩溃辅助特征,并基于崩溃基础特征和崩溃辅助特征对所述转储文件进行判定,并将判定结果发送到所述转储文件发送装置。
从上述技术方案可以看出,在本发明实施方式中:接收转储文件;调度调试分析引擎对转储文件进行扫描,以获取转储文件分析日志;对所述转储文件分析日志进行解析,以从中提取出崩溃(Crash)基础特征;根据崩溃基础特征生成崩溃辅助特征,并基于崩溃基础特征和崩溃辅助特征对转储文件进行判定。由此可见,应用本发明实施方式之后,实现了针对转储文件的自动分析,从而提高了转储文件分析效率。
而且,应用本发明实施方式之后,可以快速定位和解决软件Crash问题,从而提高了软件的稳定性。
不仅与此,通过实现Dump文件的自动分析,还显著降低了专业人员培训费用,从而降低了软件开发成本。
附图说明
图1为根据本发明的Dump文件分析方法流程图;
图2为根据本发明实施方式根据Web方式上传Dump文件及分析Dump文件的示意图;
图3为根据本发明的Dump文件分析装置结构图;
图4为根据本发明的Dump文件分析装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
在本发明实施方式中,提出了一种自动化的Dump文件分析技术方案。对软件崩溃所产生的Dump文件,调度脚本可以通过命令行等方式调度调试分析引擎进行扫描,得到转储文件分析日志。然后通过特征提取脚本和特征判定脚本,依据特征规则库对转储文件分析日志进行处理,针对Dump文件得到最终的软件Crash判定结果及相关有用信息,从而辅助软件开发者进行修改。
而且,可以将Crash判定结果及相关有用信息等存入历史Crash数据库,对以后的软件Crash分析识别及规则库的完善起到积累作用。
示范性地:软件开发者可以通过WEB站点上传需要分析的Dump文件,依据本发明实施方式的Dump文件自动化分析处理后,返回相应结果页面给软件开发者。比如:在结果页面中包含Crash的类型、Crash是否已知、Crash代码作者等相关信息,从而可以辅助软件开发者快递解决软件Crash问题。
图1为根据本发明的Dump文件分析方法流程图。
如图1所示,该方法包括:
步骤101:接收转储(Dump)文件。
在这里,可以通过多种方式接收由软件崩溃所产生的Dump文件。比如,可以通过WEB方式接收由软件自动发送或者软件开发者人工发送的Dump文件。
Dump文件是用于调试程序所用,这种文件通常需要由专用工具软件打开(比如:使用WinDbg打开)。
示范性地,以WINDOWS 7操作***为实例,当软件***发生崩溃时,通常有3类Dump文件可以被捕获:
(1)、完全内存Dump文件:当崩溃发生时,将捕获整个物理内存的状态。此类转储文件大小为内存中页面文件大小+1MB的文件头。在WindowsNT4操作类型中只支持完全内存转储,这也是WindowsServerSystems的默认设置。
(2)、核心内存Dump文件:当崩溃发生时,核心内存转储只捕获物理内存中内核态的页面文件读/写数据。这只是内核态的转储,并不包括用户态进程的页面。不过,由用户态进程页引起***崩溃是不大可能的,通常都是由内核态引起。核心内存转储中包括:当前运行进程、线程和被加载的驱动等相关信息。
核心内存转储文件大小=操作***内核态内存占用大小+操作***为驱动程序分配内存的大小。
(3)、小内存Dump文件(Mini-dump):是一个64K的转储文件(64位***和Windows 7里的大小为128K,在Vista中为512K)。它包括:终止代码、参数和被加载的驱动列表。主要信息为崩溃时的当前进程、线程和内核堆。
以上虽然以WINDOWS 7操作***为实例对Dump文件的类型进行了示范性说明。本领域技术人员可以意识到,这种罗列仅仅是阐述性的,并不用于对本发明实施方式的保护范围进行限定。
步骤102:调试分析引擎对Dump文件进行扫描,以得到Dump文件分析日志。
在这里,可以通过生成调试脚本的具体方式来执行该步骤。比如:可以通过多种程序语言或脚本生成工具来生成调度脚本。
具体地,调度脚本可以是使用特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。简单地说,调度脚本可以包括一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。调度脚本程序在执行时,由预先设置的解释器,将其一条条文字命令的翻译成机器可识别的指令,并按程序顺序执行。
示范性地,调度脚本以命令行的方式调度调试分析引擎,采用多线程对Dump文件进行扫描,以得到Dump文件分析日志。而且,调试分析引擎具体可以为WinDbg或Visual Studio等等。
步骤103:对Dump文件分析日志进行解析,以从中提取出崩溃(Crash)基础特征。
优选地,可以生成特征提取脚本,然有由该特征提取脚本具体执行该步骤。
比如:可以通过多种程序语言或脚本生成工具来生成特征提取脚本,而且当调试分析引擎对Dump文件进行扫描得到Dump文件分析日志之后,可以由该特征提取脚本从Dump文件分析日志中提取出Crash基础特征。
示范性地,特征提取脚本可以根据预先设置的正则表达式,从Dump文件分析日志中提取出Crash基础特征。正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。
Crash基础特征描述了Crash的基本属性,通常包括:崩溃所在的模块名;崩溃所在的进程名;异常类型;崩溃所在的函数及文件;由调试分析引擎分析出的可能引发崩溃的原因;崩溃处的符号(Symbol)名;和/或调用堆栈信息,等等。
示范性地,Crash基础特征包括但是不局限于:
(1)FOLLOWUP_IP:标识Crash所在的函数及文件;
(2)ExceptionCode:标识异常类型。如:c0000005(Access violation);
(3)PRIMARY_PROBLEM_CLASS:标识WinDbg分析出的可能引发Crash的原因。如:BAD_INSTRUCTION_PTR,等等;
(4)PROCESS_NAME:标识Crash所在进程。如:QPlus.exe;
(5)MODULE_NAME:标识Crash所在模块。如:dockbar;
(6)SYMBOL_NAME:Crash处的symbol。如:dockbar!JointSelector::ClearItems+c;
(7)STACK_TEXT:详细栈信息(module!class::fuc[....cpp]....)。
步骤104:特征分析脚本根据Crash基础特征生成Crash辅助特征,并基于Crash基础特征和Crash辅助特征对Dump文件进行判定。
优选地,可以生成特征分析脚本,然有由该特征分析脚本具体执行该步骤。
比如:可以通过多种程序语言或脚本生成工具来生成特征分析脚本,而且,该特征分析脚本可以根据Crash基础特征生成Crash辅助特征,并基于Crash基础特征和Crash辅助特征对Dump文件进行判定。
示范性地,特征规则库可以包括下列特征规则中的至少一个:字符串类型Crash的判定规则;容器类型Crash的判定规则;和/或野指针类型Crash的判定规则。可以根据历史分析经验生成特征规则库,而且特征规则库可以被不断地更新完善。
比如:对于特征规则库,其中包括的规则可以包括:
(1)字符串类型Crash的判定规则:
PRIMARY_PROBLEM_CLASS=STATUS_INVALID_PARAM
SYMBOL_NAME=msvcr80!wcslen、msvcr80!wcscpy_s、msvcr80!strncpy_s.....
(2)容器类型Crash的判定规则:
PRIMARY_PROBLEM_CLASS=STATUS_INVALID_PARAM
SYMBOL_NAME=msvcr80!_invalid_parameter_noinfo
(3)野指针类型Crash的判定规则:
PRIMARY_PROBLEM_CLASS=
BAD_INSTRUCTION_PTR、INVALID_POINTER_WRITE、
INVALID_POINTER_READ;
Crash辅助特征描述了Crash的辅助属性,比如Crash作者、Crash哈希、Crash类型是否已知等等。可以基于Crash基础特征确定出Crash辅助特征。
比如:特征分析脚本可以根据调用堆栈信息获取Crash所在文件;特征分析脚本根据Crash所在文件,查询版本管理(SVN)服务器以得到崩溃代码作者(Crash_Owner);特征分析脚本根据Crash处的符号名(SYMBOL_NAME)和主要问题类(PRIMARY_PROBLEM_CLASS),计算Crash哈希(Crash_Hash);和/或特征分析脚本根据Crash哈希,查询历史Crash数据库以判定该Dump文件的Crash类型是否为已知,等等。
优选地,可以将Dump文件的Crash基础特征和Crash辅助特征保存进历史Crash数据库,并针对历史Crash数据库生成统计报表信息。
比如:可以将历史Crash数据库的表结构设计为如下所示;其中表1为Crash数据库主表结构;表2为Crash数据库明细表结构。
表1
表2
Figure BDA00002186466400082
示范性地,在历史Crash数据库中,主表和明细表通过Crash_Hash连接。Crash_Hash唯一标识同一种Crash,不同的Dump文件可能对应同一个Crash_Hash。通过计算Crash_Hash,可以区分出某个Dump文件对应的Crash是否已知,从而避免重复工作。
Crash_Hash的计算公式如下所示:
Crash_Hash=MD5(MAIN_SYMBOL_NAME+SUB_SYMBOL_NAME+PRIMARY_PROBLEM_CLASS)
可以由特征分析脚本取得的Crash_Src(Crash所在文件),通过查询SVN代码服务器,可以获取造成Crash的代码作者(Crash_Owner)。在历史Crash数据库完整记录了某一次Crash相关的所有信息,通过这些信息,既可以归纳完善特征规则库,又可以生成统计报表信息,使软件稳定性的相关运营变得轻松。
基于上述详细分析,可以通过多种方式实施本发明实施方式的技术方案。比如可以在网络侧实施本发明实施方式的Dump文件自动分析方案,而将软件开发现场产生的Dump文件通过Web的方式上传到网络侧,再在网络侧针对该Dump文件执行自动分析,从而可以统一为分散在现场的软件开发者提供Dump文件自动分析服务。
在一个实施方式中,可以将转储文件的判定结果发送到产生转储文件的软件崩溃端,并在该软件崩溃端显示所述转储文件的判定结果;或将转储文件的判定结果发送到第三方崩溃分析端,并在所述第三方崩溃分析端显示所述转储文件的判定结果。
当将转储文件的判定结果发送到产生转储文件的软件崩溃端时,可以辅助软件崩溃端快速寻找到软件崩溃的现场、原因或提供相应辅助信息;当将转储文件的判定结果发送到第三方崩溃分析端时,也有助于该第三方崩溃分析端对软件崩溃的相关信息进行综合分析。
以上虽然示范性地列举出特征规则库中的具体规则以及辅助Crash特征的示范性实例,本领域技术人员可以意识到,这种罗列仅仅是阐述性的,并不用于限定本发明实施方式的保护范围。
以上虽然具体罗列了通过调度脚本、特征提取脚本和特征分析脚本的具体形式来执行本发明实施方式。本领域技术人员可以意识到,这种罗列仅是示范性的,并不用于限定本发明实施方式。比如,还可以预先生成各种格式的可执行文件或批处理命令等方式来执行本发明实施方式,本发明实施方式对于执行方式并无任何约束性限定。
比如:图2为根据本发明实施方式根据Web方式上传Dump文件及分析Dump文件的示意图。
由图2可见,软件开发者可以通过WEB站点上传需要分析的Dump文件到位于网络侧的Crash自动化分析***。在Dump文件进入Crash自动化分析***的数据库之前,Crash自动化分析***可以触发WinDbg等调试分析引擎进行扫描,生成详细分析日志。
Crash自动化分析***触发特征提取脚本提取Crash的基础特征;然后Crash自动化分析***触发特征分析脚本依据特征规则库,对提取的Crash特征进行分析和识别,并结合查询历史Crash数据库以得出判定结果并更新历史Crash数据库。最后,Crash自动化分析***返回分析结果页面给软件开发者,然后管理员可以通过历史Crash数据库生成统计报表信息。
基于上述详细分析,本发明实施方式还提出了一种Dump文件分析装置。
图3为根据本发明实施方式的Dump文件分析装置的结构示意图。
如图3所示,该装置包括:转储文件接收单元301、转储文件分析日志生成单元302、崩溃基础特征提取单元303和转储文件判定单元304。其中:
转储文件接收单元301,用于接收转储文件;
转储文件分析日志生成单元302,用于调度调试分析引擎对所述转储文件进行扫描,以获取转储文件分析日志;
崩溃基础特征提取单元303,用于对所述转储文件分析日志进行解析,以提取出崩溃(Crash)基础特征;
转储文件判定单元304,用于根据所述崩溃基础特征生成崩溃辅助特征,并基于所述崩溃基础特征和崩溃辅助特征对所述转储文件进行判定。
在一个实施方式中,转储文件分析日志生成单元301,用于使能预先生成的调度脚本调度调试分析引擎对所述转储文件进行扫描;
崩溃基础特征提取单元302,用于使能预先生成的特征提取脚本对转储文件分析日志进行解析,以提取出崩溃基础特征;
转储文件判定单元303,用于使能预先生成的特征分析脚本,根据崩溃基础特征生成崩溃辅助特征,并基于崩溃基础特征和崩溃辅助特征对转储文件进行判定。
在一个实施方式中,转储文件分析日志生成单元302,用于使能调度脚本以命令行的方式调度调试分析引擎,采用多线程对所述转储文件进行扫描,以获取转储文件分析日志。
在一个实施方式中,崩溃基础特征提取单元303,用于使能特征提取脚本根据预先设置的正则表达式,从转储文件分析日志中提取出崩溃基础特征。
优选地,崩溃基础特征提取单元303,用于使能特征提取脚本根据正则表达式,从转储文件分析日志中提取出以下崩溃基础特征中的至少一个:崩溃所在的模块名;崩溃所在的进程名;异常类型;崩溃所在的函数及文件;由调试分析引擎分析出的可能引发崩溃的原因;崩溃处的符号(Symbol)名;和/或调用堆栈信息,等等。
优选地,崩溃基础特征提取单元303,用于使能特征分析脚本根据预先设置的特征规则库对崩溃基础特征进行特征分析,以生成崩溃辅助特征。特征规则库包括下列特征规则中的至少一个:字符串类型崩溃的判定规则;容器类型崩溃的判定规则;和/或野指针类型崩溃的判定规则。
具体地,崩溃基础特征提取单元301,用于使能特征分析脚本根据所述崩溃基础特征生成崩溃辅助特征包括下列处理中的至少一个特征:
分析脚本根据调用堆栈信息获取崩溃所在文件;
特征分析脚本根据所述崩溃所在文件,查询版本管理(SVN)服务器以得到崩溃代码作者(Crash_Owner);
特征分析脚本根据崩溃处的符号名(SYMBOL_NAME)和主要问题类(PRIMARY_PROBLEM_CLASS),计算崩溃哈希(Crash_Hash);和/或
特征分析脚本根据崩溃哈希,查询历史崩溃数据库,以判定该转储文件的崩溃类型是否为已知。
在一个实施方式中,进一步包括统计报表信息生成单元305。其中:
转储文件接收单元301,用于通过WEB方式接收转储文件;
统计报表信息生成单元305,用于将所述转储文件的崩溃基础特征和崩溃辅助特征保存进历史崩溃数据库,并针对所述历史崩溃数据库生成统计报表信息。
优选地,转储文件判定单元303,进一步用于将所述转储文件的判定结果发送到产生所述转储文件的软件崩溃端,并在所述软件崩溃端显示所述转储文件的判定结果;或将所述转储文件的判定结果发送到第三方崩溃分析端,并在所述第三方崩溃分析端显示所述转储文件的判定结果。
基于上述详细分析,本发明实施方式还提出了一种转储文件分析***。
图4为根据本发明实施方式的Dump文件分析***的结构图。由图4可见,该Dump文件分析***包括:位于本地端的转储文件发送装置401和位于网络侧的转储文件分析装置402;其中:
转储文件发送装置401,用于采集在本地的程序崩溃(Crash)所产生的Dump文件,并通过与转储文件分析装置的WEB连接向转储文件分析装置发送该Dump文件;
转储文件分析装置402,用于接收该Dump文件,并使能预先生成的调度脚本调度调试分析引擎对Dump文件进行扫描以获取转储文件分析日志;使能预先生成的特征提取脚本从所述转储文件分析日志中提取出Crash基础特征;使能预先生成的特征分析脚本根据所述Crash基础特征生成Crash辅助特征,并基于所述Crash基础特征和Crash辅助特征对所述Dump文件进行判定,并将所述判定结果发送到所述转储文件发送装置401。
综上所述,在本发明实施方式中,接收转储文件;调度调试分析引擎对所述转储文件进行扫描,以获取转储文件分析日志;对所述转储文件分析日志进行分析,以提取出崩溃(Crash)基础特征;根据所述崩溃基础特征生成崩溃辅助特征,并基于所述崩溃基础特征和崩溃辅助特征对所述转储文件进行判定。由此可见,应用本发明实施方式之后,实现了针对Dump文件的自动分析,从而提高了Dump文件分析效率。
而且,应用本发明实施方式之后,可以快速定位和解决软件Crash问题,从而提高了软件的稳定性。
不仅与此,通过实现Dump文件的自动分析,还显著降低了专业人员培训费用,从而降低了软件开发成本。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

1.一种转储(Dump)文件分析方法,其特征在于,该方法包括:
接收转储文件;
调度调试分析引擎对所述转储文件进行扫描,以获取转储文件分析日志;
对所述转储文件分析日志进行解析,以提取出崩溃(Crash)基础特征;
根据所述崩溃基础特征生成崩溃辅助特征,并基于所述崩溃基础特征和崩溃辅助特征对所述转储文件进行判定。
2.根据权利要求1所述的转储文件分析方法,其特征在于,该方法进一步包括:生成调度脚本、特征提取脚本和特征分析脚本;
所述调度调试分析引擎对所述转储文件进行扫描为:所述调度脚本调度调试分析引擎对所述转储文件进行扫描;
所述对转储文件分析日志进行解析,以提取出崩溃基础特征为:所述特征提取脚本对转储文件分析日志进行解析,以提取出崩溃基础特征;
所述根据崩溃基础特征生成崩溃辅助特征,并基于崩溃基础特征和崩溃辅助特征对转储文件进行判定为:所述特征分析脚本根据崩溃基础特征生成崩溃辅助特征,并基于崩溃基础特征和崩溃辅助特征对转储文件进行判定。
3.根据权利要求1所述的转储文件分析方法,其特征在于,该方法进一步包括:
将所述转储文件的判定结果发送到产生所述转储文件的软件崩溃端,并在所述软件崩溃端显示所述转储文件的判定结果;或
将所述转储文件的判定结果发送到第三方崩溃分析端,并在所述第三方崩溃分析端显示所述转储文件的判定结果。
4.根据权利要求2所述的转储文件分析方法,其特征在于,所述调度脚本调度调试分析引擎对所述转储文件进行扫描,以获取转储文件分析日志包括:
调度脚本以命令行的方式调度调试分析引擎,采用多线程对所述转储文件进行扫描,以获取转储文件分析日志。
5.根据权利要求2所述的转储文件分析方法,其特征在于,该方法包括进一步包括设置正则表达式的步骤;
所述特征提取脚本从所述转储文件分析日志中提取出崩溃(Crash)基础特征包括:
特征提取脚本根据所述正则表达式,从所述转储文件分析日志中提取出崩溃基础特征。
6.根据权利要求2所述的转储文件分析方法,其特征在于,所述特征分析脚本根据崩溃基础特征生成崩溃辅助特征包括:
所述特征分析脚本根据预先设置的特征规则库对所述崩溃基础特征进行特征分析,以生成崩溃辅助特征。
7.根据权利要求6所述的转储文件分析方法,其特征在于,所述特征规则库包括下列特征规则中的至少一个:
字符串类型崩溃的判定规则;
容器类型崩溃的判定规则;和/或
野指针类型崩溃的判定规则。
8.根据权利要求2所述的转储文件分析方法,其特征在于,所述特征分析脚本根据崩溃基础特征生成崩溃辅助特征包括下列处理中的至少一个:
特征分析脚本根据调用堆栈信息获取崩溃所在文件;
特征分析脚本根据所述崩溃所在文件,查询版本管理(SVN)服务器以得到崩溃代码作者(Crash_Owner);
特征分析脚本根据崩溃处的符号名(SYMBOL_NAME)和主要问题类(PRIMARY_PROBLEM_CLASS),计算崩溃哈希(Crash_Hash);和/或
特征分析脚本根据崩溃哈希,查询历史崩溃数据库以判定该转储文件的崩溃类型是否为已知。
9.根据权利要求1所述的转储文件分析方法,其特征在于,所述接收转储文件为:通过WEB方式接收转储文件;
该方法进一步包括:将所述转储文件的崩溃基础特征和崩溃辅助特征保存进历史崩溃数据库,并针对所述历史崩溃数据库生成统计报表信息。
10.一种转储文件分析装置,其特征在于,该装置包括转储文件接收单元、转储文件分析日志生成单元、崩溃基础特征提取单元和转储文件判定单元,其中:
转储文件接收单元,用于接收转储文件;
转储文件分析日志生成单元,用于调度调试分析引擎对所述转储文件进行扫描,以获取转储文件分析日志;
崩溃基础特征提取单元,用于对所述转储文件分析日志进行解析,以提取出崩溃(Crash)基础特征;
转储文件判定单元,用于根据所述崩溃基础特征生成崩溃辅助特征,并基于所述崩溃基础特征和崩溃辅助特征对所述转储文件进行判定。
11.根据权利要求10所述的转储文件分析装置,其特征在于,
转储文件分析日志生成单元,用于使能预先生成的调度脚本调度调试分析引擎对所述转储文件进行扫描;
崩溃基础特征提取单元,用于使能预先生成的特征提取脚本对转储文件分析日志进行解析,以提取出崩溃基础特征;
转储文件判定单元,用于使能预先生成的特征分析脚本,根据崩溃基础特征生成崩溃辅助特征,并基于崩溃基础特征和崩溃辅助特征对转储文件进行判定。
12.根据权利要求10所述的转储文件分析装置,其特征在于,
转储文件判定单元,进一步用于将所述转储文件的判定结果发送到产生所述转储文件的软件崩溃端,并在所述软件崩溃端显示所述转储文件的判定结果;或将所述转储文件的判定结果发送到第三方崩溃分析端,并在所述第三方崩溃分析端显示所述转储文件的判定结果。
13.根据权利要求11所述的转储文件分析装置,其特征在于,
转储文件分析日志生成单元,用于使能调度脚本以命令行的方式调度调试分析引擎,采用多线程对所述转储文件进行扫描,以获取转储文件分析日志。
14.根据权利要求11所述的转储文件分析装置,其特征在于,
崩溃基础特征提取单元,用于使能特征提取脚本根据预先设置的正则表达式,从所述转储文件分析日志中提取出崩溃基础特征。
15.根据权利要求11所述的转储文件分析装置,其特征在于,
崩溃基础特征提取单元,用于使能特征分析脚本根据预先设置的特征规则库对崩溃基础特征进行特征分析,以生成崩溃辅助特征。
16.根据权利要求15所述的转储文件分析装置,其特征在于,特征规则库包括下列特征规则中的至少一个:
字符串类型崩溃的判定规则;
容器类型崩溃的判定规则;和/或
野指针类型崩溃的判定规则。
17.根据权利要求11所述的转储文件分析装置,其特征在于,
崩溃基础特征提取单元,用于使能特征分析脚本根据所述崩溃基础特征生成崩溃辅助特征包括下列处理中的至少一个特征:
分析脚本根据调用堆栈信息获取崩溃所在文件;
特征分析脚本根据所述崩溃所在文件,查询版本管理(SVN)服务器以得到崩溃代码作者(Crash_Owner);
特征分析脚本根据崩溃处的符号名(SYMBOL_NAME)和主要问题类(PRIMARY_PROBLEM_CLASS),计算崩溃哈希(Crash_Hash);和/或
特征分析脚本根据崩溃哈希,查询历史崩溃数据库,以判定该转储文件的崩溃类型是否为已知。
18.根据权利要求11所述的转储文件分析装置,其特征在于,进一步包括统计报表信息生成单元,其中:
转储文件接收单元,用于通过WEB方式接收转储文件;
统计报表信息生成单元,用于将所述转储文件的崩溃基础特征和崩溃辅助特征保存进历史崩溃数据库,并针对所述历史崩溃数据库生成统计报表信息。
19.一种转储文件分析***,其特征在于,该***包括:位于本地端的转储文件发送装置和位于网络侧的转储文件分析装置;其中:
所述转储文件发送装置,用于采集在本地的程序崩溃(Crash)时所产生的转储文件,并通过与转储文件分析装置的WEB连接向所述转储文件分析装置发送该转储文件;
转储文件分析装置,用于接收该转储文件,并使能预先生成的调度脚本调度调试分析引擎对所述转储文件进行扫描以获取转储文件分析日志;使能预先生成的特征提取脚本对所述转储文件分析日志进行分析,以提取出崩溃基础特征;使能预先生成的特征分析脚本根据所述崩溃基础特征生成崩溃辅助特征,并基于所述崩溃基础特征和崩溃辅助特征对所述转储文件进行判定,并将所述判定结果发送到所述转储文件发送装置。
CN201210359077.9A 2012-09-25 2012-09-25 一种转储文件分析方法、装置和*** Active CN103678109B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210359077.9A CN103678109B (zh) 2012-09-25 2012-09-25 一种转储文件分析方法、装置和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210359077.9A CN103678109B (zh) 2012-09-25 2012-09-25 一种转储文件分析方法、装置和***

Publications (2)

Publication Number Publication Date
CN103678109A true CN103678109A (zh) 2014-03-26
CN103678109B CN103678109B (zh) 2018-01-05

Family

ID=50315749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210359077.9A Active CN103678109B (zh) 2012-09-25 2012-09-25 一种转储文件分析方法、装置和***

Country Status (1)

Country Link
CN (1) CN103678109B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077210A (zh) * 2014-06-06 2014-10-01 百度在线网络技术(北京)有限公司 一种客户端崩溃的定位方法及***
CN105204969A (zh) * 2014-06-30 2015-12-30 腾讯科技(深圳)有限公司 异常日志处理方法以及异常日志处理装置
CN105224420A (zh) * 2015-10-08 2016-01-06 惠州Tcl移动通信有限公司 一种自动解析终端异常的分析方法及***
CN105630682A (zh) * 2015-12-28 2016-06-01 珠海金山网络游戏科技有限公司 移动终端自动收集及分析崩溃的***和方法
CN105701001A (zh) * 2014-11-25 2016-06-22 阿里巴巴集团控股有限公司 一种测试覆盖率的处理方法和设备
CN106354646A (zh) * 2016-08-30 2017-01-25 竞技世界(北京)网络技术有限公司 一种分析转储文件的方法
CN106484617A (zh) * 2016-10-09 2017-03-08 武汉斗鱼网络科技有限公司 用于Windows软件产品的dump文件自动分析统计方法及***
CN106557300A (zh) * 2015-09-24 2017-04-05 腾讯科技(深圳)有限公司 一种野指针的函数栈信息确定方法、装置及电子设备
CN106897197A (zh) * 2015-12-17 2017-06-27 阿里巴巴集团控股有限公司 错误日志的去重方法及装置
CN107305522A (zh) * 2016-04-21 2017-10-31 富士通株式会社 用于对应用程序的重复崩溃进行检测的装置和方法
US9852172B2 (en) 2014-09-17 2017-12-26 Oracle International Corporation Facilitating handling of crashes in concurrent execution environments of server systems while processing user queries for data retrieval
CN107861865A (zh) * 2017-08-29 2018-03-30 平安普惠企业管理有限公司 Sdk定位方法、设备及计算机可读存储介质
CN109358975A (zh) * 2018-09-28 2019-02-19 珠海市君天电子科技有限公司 一种软件运行异常的分析方法、装置、电子设备及存储介质
CN110147294A (zh) * 2019-05-23 2019-08-20 Oppo广东移动通信有限公司 调试信息的获取方法、装置、终端及计算机可读存储介质
CN111638991A (zh) * 2020-06-05 2020-09-08 贝壳技术有限公司 用于解析崩溃文件的方法与***
CN112965942A (zh) * 2021-03-29 2021-06-15 深圳市广和通无线股份有限公司 内存转储文件解析方法、装置、设备及计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080289042A1 (en) * 2005-11-16 2008-11-20 Jie Bai Method for Identifying Unknown Virus and Deleting It
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件***崩溃原因进行自动分析的方法
CN101944059A (zh) * 2010-08-20 2011-01-12 北京神州泰岳软件股份有限公司 计算机软件崩溃信息的自动分析方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080289042A1 (en) * 2005-11-16 2008-11-20 Jie Bai Method for Identifying Unknown Virus and Deleting It
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件***崩溃原因进行自动分析的方法
CN101944059A (zh) * 2010-08-20 2011-01-12 北京神州泰岳软件股份有限公司 计算机软件崩溃信息的自动分析方法和装置

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077210A (zh) * 2014-06-06 2014-10-01 百度在线网络技术(北京)有限公司 一种客户端崩溃的定位方法及***
CN104077210B (zh) * 2014-06-06 2017-06-06 百度在线网络技术(北京)有限公司 一种客户端崩溃的定位方法及***
CN105204969A (zh) * 2014-06-30 2015-12-30 腾讯科技(深圳)有限公司 异常日志处理方法以及异常日志处理装置
CN105204969B (zh) * 2014-06-30 2018-10-30 腾讯科技(深圳)有限公司 异常日志处理方法以及异常日志处理装置
US9852172B2 (en) 2014-09-17 2017-12-26 Oracle International Corporation Facilitating handling of crashes in concurrent execution environments of server systems while processing user queries for data retrieval
CN105701001A (zh) * 2014-11-25 2016-06-22 阿里巴巴集团控股有限公司 一种测试覆盖率的处理方法和设备
CN106557300A (zh) * 2015-09-24 2017-04-05 腾讯科技(深圳)有限公司 一种野指针的函数栈信息确定方法、装置及电子设备
CN106557300B (zh) * 2015-09-24 2020-04-07 腾讯科技(深圳)有限公司 一种野指针的函数栈信息确定方法、装置及电子设备
CN105224420A (zh) * 2015-10-08 2016-01-06 惠州Tcl移动通信有限公司 一种自动解析终端异常的分析方法及***
CN105224420B (zh) * 2015-10-08 2018-11-09 Tcl通讯科技(成都)有限公司 一种自动解析终端异常的分析方法及***
CN106897197A (zh) * 2015-12-17 2017-06-27 阿里巴巴集团控股有限公司 错误日志的去重方法及装置
CN106897197B (zh) * 2015-12-17 2020-07-07 阿里巴巴集团控股有限公司 错误日志的去重方法及装置
CN105630682A (zh) * 2015-12-28 2016-06-01 珠海金山网络游戏科技有限公司 移动终端自动收集及分析崩溃的***和方法
CN107305522A (zh) * 2016-04-21 2017-10-31 富士通株式会社 用于对应用程序的重复崩溃进行检测的装置和方法
CN106354646A (zh) * 2016-08-30 2017-01-25 竞技世界(北京)网络技术有限公司 一种分析转储文件的方法
CN106354646B (zh) * 2016-08-30 2018-12-25 竞技世界(北京)网络技术有限公司 一种分析转储文件的方法
CN106484617A (zh) * 2016-10-09 2017-03-08 武汉斗鱼网络科技有限公司 用于Windows软件产品的dump文件自动分析统计方法及***
CN107861865A (zh) * 2017-08-29 2018-03-30 平安普惠企业管理有限公司 Sdk定位方法、设备及计算机可读存储介质
CN107861865B (zh) * 2017-08-29 2020-11-17 平安普惠企业管理有限公司 Sdk定位方法、设备及计算机可读存储介质
CN109358975A (zh) * 2018-09-28 2019-02-19 珠海市君天电子科技有限公司 一种软件运行异常的分析方法、装置、电子设备及存储介质
CN110147294A (zh) * 2019-05-23 2019-08-20 Oppo广东移动通信有限公司 调试信息的获取方法、装置、终端及计算机可读存储介质
CN110147294B (zh) * 2019-05-23 2023-10-03 Oppo广东移动通信有限公司 调试信息的获取方法、装置、终端及计算机可读存储介质
CN111638991A (zh) * 2020-06-05 2020-09-08 贝壳技术有限公司 用于解析崩溃文件的方法与***
CN111638991B (zh) * 2020-06-05 2023-09-19 贝壳技术有限公司 用于解析崩溃文件的方法与***
CN112965942A (zh) * 2021-03-29 2021-06-15 深圳市广和通无线股份有限公司 内存转储文件解析方法、装置、设备及计算机存储介质

Also Published As

Publication number Publication date
CN103678109B (zh) 2018-01-05

Similar Documents

Publication Publication Date Title
CN103678109A (zh) 一种转储文件分析方法、装置和***
CN109062780B (zh) 自动化测试用例的开发方法及终端设备
CN107689887B (zh) 一种核电厂控制***临时控制变更在线管理***
CN110852065A (zh) 一种文档审核方法、装置、***、设备及存储介质
CN105630682A (zh) 移动终端自动收集及分析崩溃的***和方法
CN108959349B (zh) 一种财务审计询证***
CN114202755A (zh) 基于ocr和nlp技术的交易背景真实性审核方法和***
CN107633433B (zh) 广告的审核方法及装置
CN110798445B (zh) 公共网关接口测试方法、装置、计算机设备及存储介质
CN111553137B (zh) 报告生成方法、装置、存储介质及计算机设备
CN106227654A (zh) 一种测试平台
CN111190807A (zh) 一种埋点测试方法及设备
CN111753517A (zh) 基于rpa及ai的文档对比方法、装置、设备及介质
CN105808605B (zh) 一种搜索日志合并方法和***
CN111552665A (zh) 标注信息格式转换方法、装置、设备和介质
CN114297961A (zh) 一种芯片测试用例处理方法及相关装置
CN110851630A (zh) 一种深度学习标注样本的管理***及方法
CN110414241A (zh) 隐私策略检测方法、装置、计算机设备及存储介质
US20210089764A1 (en) Automated classification and interpretation of life science documents
CN112418813A (zh) 基于智能解析识别的aeo资质智能评级管理***、方法及存储介质
CN109542890B (zh) 数据修改方法、装置、计算机设备及存储介质
CN207037679U (zh) 一种快捷扫描***信息的***
CN113672497B (zh) 无埋点事件的生成方法、装置、设备及存储介质
CN113468076A (zh) 应用程序的异常测试方法、装置、设备及存储介质
CN115203057B (zh) 低代码测试自动化方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190808

Address after: 518057 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.