自动化dump分析系统及方法与流程

文档序号:11323136阅读:939来源:国知局
自动化dump分析系统及方法与流程

本发明涉及计算机数据处理技术领域,具体地,涉及自动化dump分析系统及方法。



背景技术:

在windows操作系统中,当应用程序发生运行错误时,可以通过创建一个dump文件将错误现场(例如堆栈、寄存器等信息)保留下来。获取dump文件并分析其包含的信息,这对发现计算机程序缺陷、提高程序性能有重要的意义。

应用程序可以通过调用特定的windowsapi来生成dump文件。在生产环境下,这些dump文件存在于用户计算机的本地磁盘上。这种情况下,往往需要通过用户主动报告问题,并使用通讯工具上传来获得dump文件。不可避免的,有的缺陷会因为无人报告而无法被发现、解决;同时,沟通用户、获取文件并分配到分析人员手中等工作也要耗费相当的人力和时间成本;最后,收集到的dump文件会存在相当程度的重复,逐个分析的话意味着一定的重复劳动。

目前解决dump文件分析方法的方法如申请号为:201210359077.9,名称为“一种转储文件分析方法、装置和系统”的专利文献,其方法包括:接收转储文件;调度调试分析引擎对转储文件进行扫描,以获取转储文件分析日志;对转储文件分析日志进行解析,以提取出崩溃(crash)基础特征;根据崩溃基础特征生成崩溃辅助特征,并基于崩溃基础特征和崩溃辅助特征对转储文件进行判定。

申请号为:201610787243.3,名称为“一种分析转储文件的方法”的专利文献,其方法通过在软件发生崩溃时获取生成的dump文件,以及其他相关崩溃信息文件,将其发送到存储端,存储端按软件模块对崩溃信息文件分类,压缩,存储,然后通过使用dump批量分析工具,自动打开并登录dump下载网页,使用多线程并行下载dump压缩包,多线程并行解压压缩文件,多线程并行对dump文件进行分析,得到分析结果时及时提醒查看分析结果日志,将已查看的分析日志做标记以示区别,避免重复被查看,实现了dump批量、快速分析,操作一体化;通过在分析过程中不断统计每个分析进程所用时间,有效控制dump分析进程的启动、停止、最大并发分析进程数量,并及时更新分析进程的状态,实现了dump分析过程的可见、可控。

上述文献中的方法对于一般的应用程序错误不能进行全面的分析和处理,具有一定的局限性。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种自动化dump分析系统及方法。

根据本发明提供的一种自动化dump分析系统,包括如下模块:

dump文件生成模块,用于根据捕获的程序异常生成dump文件,并将所生成dump文件上传至dump文件收集模块中;

dump文件收集模块:用于搭建dump收集服务器,接收上传的dump文件;

dump文件分析模块:用于通过加载符号文件,提取dump文件中的信息,并记录到数据库模块中。

优选地,还包括dump文件预处理模块,所述dump文件预处理模块用于对接收到的dump文件进行预处理,排除重复的文件和空文件。

优选地,还包括文件同步模块,所述文件同步模块将经过预处理的dump文件同步到用于分析的计算机上。

优选地,还包括符号文件服务器模块,所述符号文件服务器模块用于提供应用程序所有二进制文件的符号文件,所述符号文件包含程序的调试信息,程序代码和二进制文件的对应关系。

优选地,还包括数据库模块,所述数据库模块用于记录dump文件分析模块中全部dump分析相关的信息和统计数据。

优选地,还包括前端展示模块,所述前端展示模块用于展示dump文件的分析结果和统计结果,其中展示的方式包括:邮件。

根据本发明提供的一种自动化dump分析方法,包括如下步骤:

dump文件生成步骤:捕获程序异常生成dump文件,并将所生成dump文件上传至dump收集服务器;

dump文件收集步骤:搭建dump收集服务器,接收上传的dump文件;

dump文件分析步骤:加载符号文件,提取dump文件中的信息,并记录到数据库中。

优选地,dump收集服务器部署在公网上,完成dump文件接收和dump文件预处理,dump文件接收采用http协议,将收到的文件写入缓存区,dump文件预处理是指每隔一定时间扫描一遍缓存区,获取最新的dump文件;然后从获取的dump文件中提取内存堆栈信息,若为空,则忽略该dump文件,若为非空,则以该dump文件版本号为源数据计算得到一个唯一的特征值,并将所述特征值记录下来,根据所述特征值来判断对应的dump文件是否属于过去已经收到过的重复类型;其中,非重复类型的dump文件发送到dump分析服务器;

dump分析服务器部署在内网,完成dump分析功能;对于新的dump文件,dump分析服务器自动加载符号文件,调用分析工具进行分析,并将结果写入数据库,通过前端展示界面进行展示。

与现有技术相比,本发明具有如下的有益效果:

本发明提供的自动化dump分析系统中实现了自动化收集、分析dump的文件,制定了dump文件包含信息的特征提取,并以此为标准对dump文件进行分类、排重,让开发人员不再遗漏任何会导致程序崩溃的错误,并能通过次数、频度等统计数据帮助开发人员设置优先级。同时,高度的自动化让相关工作人员(不限于开发)可以第一时间直接看到分析结果,减少了人力和时间的开销,也避免了人工可能带来的各种误操作。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明提供的自动化dump分析系统的方法流程图。

图2为本发明提供的自动化dump分析系统的结构框图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的自动化dump分析系统,包括如下模块:

dump文件生成模块,所述dump文件生成模块集成在应用程序中,用于捕获程序异常,并将生成dump文件上传至dump文件收集模块中;

dump文件收集模块:用于搭建dump收集服务器,接收上传的dump文件;

dump文件预处理模块:用于对接收到的dump文件进行预处理,排除重复的文件和空文件;

文件同步模块:将经过预处理的dump文件同步到用于分析的计算机上;

符号文件服务器模块:用于提供应用程序所有二进制文件的符号文件,所述符号文件包括:程序代码和二进制文件的对应关系;

数据库模块:用于记录整个dump分析相关的信息和统计数据;

dump文件分析模块:用于通过加载符号文件,提取dump文件中的信息,并记录到数据库模块中,进行分析;

前端展示模块:展示dump文件的分析结果和统计结果,展示的方式包括:邮件。

下面结合具体实施例对本发明中的技术方案作更加详细的说明。

本实施实例提供了应用本发明中的系统的方法,具体流程如下:

当应用程序发生错误时,集成在应用程序中的dump生成模块会生成相应的dump文件,并上传到dump收集服务器。

dump收集服务器必须部署在公网上(因为大部分dump文件来自用户使用的计算机)。这台服务器主要完成文件接收和dump文件预处理两项工作。文件接收模块使用http协议,将收到的文件写入缓存区。而预处理模块则每隔一定时间(比如,1分钟)扫描一遍缓存区,获取最新的dump文件;然后从获取的dump文件中提取内存堆栈信息,若为空,直接忽略此dump文件,非空则以此数据和文件版本号为源数据计算出一个唯一的特征值;最后将这个特征值记录下来,并根据这个特征值来判断对应的dump文件是否属于过去已经收到过的重复类型。经过预处理的dump文件,不管结果如何,都会被移出缓存区,按版本号归档。而不是重复类型的dump文件(代表需要详细分析的新类型)则会被同步到分析用的计算机上。

要分析dump文件,需要访问符号文件服务器和数据库等内网资源,因此分析模块要部署在内网的服务器上。又由此,设置一个模块来同步dump收集服务器(公网)和内网服务器上的dump文件。这里涉及三个服务于分析功能的模块,下面分别介绍如何构建:

1)符号文件服务器:符号文件是跟应用程序一起生成的,所有符号文件服务器模块部署在一起,只要加载路径就可以使用;

2)dump信息数据库:记录经过预处理的dump文件包含的各项信息和统计数据。我们专门用脚本编写了一系列接口,方便所有相关人员(包括非开发人员)进行操作;

3)同步模块:使用云服务,定时(比如,每分钟)从dump收集服务器获取经过预处理的dump文件,为分析做好准备。

进入到分析阶段,dump文件包含的信息可以用专用工具cdb来获取,dump分析模块通过调用cdb工具并加载符号文件,可以获取堆栈(最重要的信息,可以借此直接定位到时哪一行代码产生了错误)、寄存器状态、版本号、操作系统、时间等信息,并将这些信息存入dump信息数据库。

最后就是展示dump信息的阶段了。在本实例中,采用邮件的形式来实现:编码生成一个邮件群发模块,并维护一个相关人员邮件列表,每当一个dump文件分析完毕后,就实时群发邮件给所有相关人员,第一时间将结果展示出来。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1