CN104536874A - 客户端崩溃定位方法和设备 - Google Patents
客户端崩溃定位方法和设备 Download PDFInfo
- Publication number
- CN104536874A CN104536874A CN201410830235.3A CN201410830235A CN104536874A CN 104536874 A CN104536874 A CN 104536874A CN 201410830235 A CN201410830235 A CN 201410830235A CN 104536874 A CN104536874 A CN 104536874A
- Authority
- CN
- China
- Prior art keywords
- collapse
- dump file
- analysis result
- rename
- class
- 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
Abstract
本申请提供了客户端崩溃定位方法和设备。其中,该方法包括:对一段时间内收集的客户端崩溃时的内存转储文件重命名,以供控制台识别重命名后的内存转储文件;控制台对重命名后的每一内存转储文件进行崩溃原因分析,得到每一内存转储文件对应的分析结果;对内存转储文件对应的分析结果进行分类,并确定每一类对应的崩溃次数;定位出对应的崩溃次数最多的类。采用本发明,能够提高崩溃原因的定位效率。
Description
技术领域
本申请涉及计算机技术,特别涉及客户端崩溃定位方法和设备。
背景技术
在网络应用开发过程中,客户端经常会频繁更新,以便推出更多新鲜有趣的应用来满足用户需求。
而频繁更新客户端,难免会出现各种漏洞(bug),在众多bug之中,客户端崩溃bug严重影响了网络应用的正常运行。
由于客户端环境的多样性,导致客户端崩溃的原因有多种,常用的方法都是依次手工分析客户端在崩溃时上传至内存的内存转储文件文件,这种方法效率低下且很难定位客户端崩溃的原因。
发明内容
本申请提供了客户端崩溃定位方法和设备,以提高崩溃原因的定位效率。
本申请提供的技术方案包括:
一种客户端崩溃定位方法,包括:
对一段时间内收集的客户端崩溃时的内存转储文件重命名,以供控制台识别重命名后的内存转储文件;
控制台对重命名后的每一内存转储文件进行崩溃原因分析,得到每一内存转储文件对应的分析结果;
对内存转储文件对应的分析结果进行分类,并确定每一类对应的崩溃次数;
定位出对应的崩溃次数最多的类。
一种客户端崩溃定位设备,该设备包括:
重命名单元,用于对一段时间内收集的客户端崩溃时的内存转储文件重命名,以供控制台识别重命名后的内存转储文件;
接收单元,用于接收控制台对重命名后的每一内存转储文件进行崩溃原因分析得到的每一内存转储文件对应的分析结果;
分类单元,用于对内存转储文件对应的分析结果进行分类;
确定单元,用于确定每一类对应的崩溃次数;
定位单元,用于定位出对应的崩溃次数最多的类。
由以上技术方案可以看出,本发明通过定位出对应的崩溃次数最多的类,并针对该类分析崩溃原因,能够保证最严重的bug优先解决,提高崩溃原因的定位效率,避免现有通过手工方式平等处理bug所带来的诸多问题。
附图说明
图1为本发明提供的方法流程图;
图2为本发明提供的设备结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供了如图1所示的方法流程。
参见图1,图1为本发明提供的方法流程图。如图1所示,该流程可包括:
步骤101,对一段时间内收集的客户端崩溃时的内存转储文件重命名,以供控制台识别重命名后的内存转储文件。
在一段时间比如一周、一天等时间内客户端可能会崩溃多次,每次崩溃时客户端都会将内存转储文件(实质为内存快照)上传给服务器。
基于此,本步骤101可从服务器收集一段时间内的客户端崩溃时的内存转储文件,并对该收集的内存转储文件进行重命名,以供控制台识别重命名后的内存转储文件。
在客户端在崩溃时的内存转储文件的扩展名是.ul。而针对控制台而言,其分析扩展名是.dmp的内存转储文件,基于此,本步骤101中,就对一段时间内收集的客户端崩溃时的内存转储文件的扩展名从.ul重命名为.dmp。
在本发明中,对一段时间内客户端在崩溃时上传的内存转储文件重命名是基于预先编译的脚本语言比如python语言实现。
步骤102,控制台对重命名后的每一内存转储文件进行崩溃原因分析,得到每一内存转储文件对应的分析结果。
本发明中,控制台可按照控制台调试桥(如windows下的CDB进程)的分析命令(!analyze-v)对重命名后的各个内存转储文件进行崩溃原因分析。
本发明中,每一内存转储文件对应的分析结果中至少包括回溯调用栈(stack)。
步骤103,对内存转储文件对应的分析结果进行分类,并确定每一类对应的崩溃次数。
本发明中,对内存转储文件对应的分析结果进行分类可包括:
识别每一内存转储文件对应的分析结果所包含的stack,将具有相同回溯调用栈的分析结果确定为同一类。
比如,有三个内存存储文件,其对应的分析结果分别为:分析结果1、分析结果2、分析结果3,其中,分析结果1、分析结果3包含stack1,分析结果2包含stack2,则认为分析结果1、分析结果2属于同一类(记为类1),分析结果2属于一类(记为类2)。
还有,本发明中,确定每一类对应的崩溃次数可包括:
针对每一类,确定该类所包含的分析结果的个数,将确定的个数作为该类对应的崩溃次数。
如上例,分析结果1、分析结果2属于类1,分析结果2属于类2,则就确定类1对应的崩溃次数为2,类2对应的崩溃次数为1。
需要说明的是,本发明中,步骤103是基于预先编译的脚本语言比如python语言实现的。
步骤104,定位出对应的崩溃次数最多的类。
在本发明中,可按照顺序对各个类对应的崩溃次数进行排序,选取崩溃次数最多的类。通常,类对应的崩溃次数越多,表示该类对应的崩溃原因越严重,需要快速解决。通过先定位出对应的崩溃次数最多的类,针对该类分析崩溃原因,能够保证最严重的bug优先解决,提高崩溃原因的定位效率,避免现有通过手工方式平等处理bug所带来的诸多问题。
至此,完成图1所示的流程。
在图1所示流程中,作为本发明的一个实施例,本发明中,控制台还可通过CDB进程的时间(time)命令对重命名后的每一内存转储文件分析出崩溃时间,将该崩溃时间与该内存转储文件对应的分析结果相关联。
基于此,本发明中,还可进一步执行以下操作:
针对每一类,识别该类所包含的分析结果关联的崩溃时间,通过图表的形式将识别出的崩溃时间、以及该类对应的崩溃次数进行展示,这样能够使分析结果一目了然。基于该图表,可优先定位崩溃次数多、且崩溃时间多的类,分析该类对应的崩溃原因,这能够保证最严重的bug优先解决,提高崩溃原因的定位效率,避免现有通过手工方式平等处理bug所带来的诸多问题。
需要说明的是,本发明中,为便于操作,可将步骤102的分析结果重定向到文本文件中,步骤103可针对文本文件中的分析结果执行操作。
以上对本发明提供的方法进行了描述,下面对本发明提供的设备进行描述。
参见图2,图2为本发明提供的设备结构图。如图2所示,该设备可包括:
重命名单元,用于对一段时间内收集的客户端崩溃时的内存转储文件重命名,以供控制台识别重命名后的内存转储文件;
接收单元,用于接收控制台对重命名后的每一内存转储文件进行崩溃原因分析得到的每一内存转储文件对应的分析结果;
分类单元,用于对内存转储文件对应的分析结果进行分类;
确定单元,用于确定每一类对应的崩溃次数;
定位单元,用于定位出对应的崩溃次数最多的类。
优选地,所述分类单元对内存转储文件对应的分析结果进行分类包括:
识别每一内存转储文件对应的分析结果所包含的回溯调用栈,将具有相同回溯调用栈的分析结果确定为同一类;
优选地,所述确定每一类对应的崩溃次数包括:
针对每一类,确定该类所包含的分析结果的个数,将确定的个数作为该类对应的崩溃次数。
优选地,所述接收单元进一步接收控制台对重命名后的每一内存转储文件分析出的崩溃时间,将该崩溃时间与该内存转储文件对应的分析结果相关联;
基于此,优选地,该设备进一步包括:
展示单元,用于针对每一类,识别该类所包含的分析结果关联的崩溃时间,通过图表的形式将识别出的崩溃时间、以及该类对应的崩溃次数进行展示。
优选地,所述重命名单元对一段时间内客户端在崩溃时上传的内存转储文件重命名、所述分类单元对内存转储文件对应的分析结果进行分类、所述确定单元确定每一类对应的崩溃次数都是基于预先编译的脚本语言实现,其中,重命名后的内存转储文件的扩展名为.dmp。
至此,完成本发明提供的设备结构描述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种客户端崩溃定位方法,其特征在于,该方法包括:
对一段时间内收集的客户端崩溃时的内存转储文件重命名,以供控制台识别重命名后的内存转储文件;
控制台对重命名后的每一内存转储文件进行崩溃原因分析,得到每一内存转储文件对应的分析结果;
对内存转储文件对应的分析结果进行分类,并确定每一类对应的崩溃次数;
定位出对应的崩溃次数最多的类。
2.根据权利要求1所述的方法,其特征在于,所述控制台按照控制台调试桥CDB进程的分析命令!analyze-v对重命名后的各个内存转储文件进行崩溃原因分析。
3.根据权利要求1所述的方法,其特征在于,所述对内存转储文件对应的分析结果进行分类包括:
识别每一内存转储文件对应的分析结果所包含的回溯调用栈,将具有相同回溯调用栈的分析结果确定为同一类。
4.根据权利要求3所述的方法,其特征在于,确定每一类对应的崩溃次数包括:
针对每一类,确定该类所包含的分析结果的个数,将确定的个数作为该类对应的崩溃次数。
5.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
控制台对重命名后的每一内存转储文件分析出崩溃时间,将该崩溃时间与该内存转储文件对应的分析结果相关联;
针对每一类,识别该类所包含的分析结果关联的崩溃时间,通过图表的形式将识别出的崩溃时间、以及该类对应的崩溃次数进行展示。
6.根据权利要求1所述的方法,其特征在于,所述对一段时间内客户端在崩溃时上传的内存转储文件重命名、对内存转储文件对应的分析结果进行分类,并确定每一类对应的崩溃次数都是基于预先编译的脚本语言实现,其中,重命名后的内存转储文件的扩展名为.dmp。
7.一种客户端崩溃定位设备,其特征在于,该设备包括:
重命名单元,用于对一段时间内收集的客户端崩溃时的内存转储文件重命名,以供控制台识别重命名后的内存转储文件;
接收单元,用于接收控制台对重命名后的每一内存转储文件进行崩溃原因分析得到的每一内存转储文件对应的分析结果;
分类单元,用于对内存转储文件对应的分析结果进行分类;
确定单元,用于确定每一类对应的崩溃次数;
定位单元,用于定位出对应的崩溃次数最多的类。
8.根据权利要求7所述的设备,其特征在于,所述分类单元对内存转储文件对应的分析结果进行分类包括:
识别每一内存转储文件对应的分析结果所包含的回溯调用栈,将具有相同回溯调用栈的分析结果确定为同一类;
所述确定单元确定每一类对应的崩溃次数包括:
针对每一类,确定该类所包含的分析结果的个数,将确定的个数作为该类对应的崩溃次数。
9.根据权利要求7所述的设备,其特征在于,所述接收单元进一步接收控制台对重命名后的每一内存转储文件分析出的崩溃时间,将该崩溃时间与该内存转储文件对应的分析结果相关联;
该设备进一步包括:
展示单元,用于针对每一类,识别该类所包含的分析结果关联的崩溃时间,通过图表的形式将识别出的崩溃时间、以及该类对应的崩溃次数进行展示。
10.根据权利要求7所述的设备,其特征在于,所述重命名单元对一段时间内客户端在崩溃时上传的内存转储文件重命名、所述分类单元对内存转储文件对应的分析结果进行分类、所述确定单元确定每一类对应的崩溃次数都是基于预先编译的脚本语言实现,其中,重命名后的内存转储文件的扩展名为.dmp。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410830235.3A CN104536874A (zh) | 2014-12-26 | 2014-12-26 | 客户端崩溃定位方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410830235.3A CN104536874A (zh) | 2014-12-26 | 2014-12-26 | 客户端崩溃定位方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104536874A true CN104536874A (zh) | 2015-04-22 |
Family
ID=52852404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410830235.3A Pending CN104536874A (zh) | 2014-12-26 | 2014-12-26 | 客户端崩溃定位方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536874A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484617A (zh) * | 2016-10-09 | 2017-03-08 | 武汉斗鱼网络科技有限公司 | 用于Windows软件产品的dump文件自动分析统计方法及系统 |
CN106598871A (zh) * | 2016-12-29 | 2017-04-26 | 山东鲁能智能技术有限公司 | Linux下的崩溃文件自动化分析方法及系统 |
CN106997315A (zh) * | 2016-01-25 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种用于虚拟机的内存转储的方法和装置 |
CN107436777A (zh) * | 2016-05-27 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 移动终端、应用程序崩溃处理方法及装置 |
CN109271269A (zh) * | 2018-09-20 | 2019-01-25 | 阿里巴巴集团控股有限公司 | 一种应用闪退的处理方法、装置及设备 |
CN110262918A (zh) * | 2019-06-19 | 2019-09-20 | 深圳市网心科技有限公司 | 进程崩溃分析方法及装置、分布式设备及存储介质 |
CN111125015A (zh) * | 2019-12-20 | 2020-05-08 | 北京百度网讯科技有限公司 | 用于dump文件分类的方法、装置、终端和介质 |
CN111611145A (zh) * | 2020-05-29 | 2020-09-01 | 北京字节跳动网络技术有限公司 | 崩溃信息收集方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6708333B1 (en) * | 2000-06-23 | 2004-03-16 | Microsoft Corporation | Method and system for reporting failures of a program module in a corporate environment |
CN101114253A (zh) * | 2006-07-26 | 2008-01-30 | 腾讯科技(深圳)有限公司 | 一种程序崩溃信息上报的方法及系统 |
CN101719090A (zh) * | 2009-12-25 | 2010-06-02 | 珠海市君天电子科技有限公司 | 对计算机软件系统崩溃原因进行自动分析的方法 |
CN101944059A (zh) * | 2010-08-20 | 2011-01-12 | 北京神州泰岳软件股份有限公司 | 计算机软件崩溃信息的自动分析方法和装置 |
-
2014
- 2014-12-26 CN CN201410830235.3A patent/CN104536874A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6708333B1 (en) * | 2000-06-23 | 2004-03-16 | Microsoft Corporation | Method and system for reporting failures of a program module in a corporate environment |
CN101114253A (zh) * | 2006-07-26 | 2008-01-30 | 腾讯科技(深圳)有限公司 | 一种程序崩溃信息上报的方法及系统 |
CN101719090A (zh) * | 2009-12-25 | 2010-06-02 | 珠海市君天电子科技有限公司 | 对计算机软件系统崩溃原因进行自动分析的方法 |
CN101944059A (zh) * | 2010-08-20 | 2011-01-12 | 北京神州泰岳软件股份有限公司 | 计算机软件崩溃信息的自动分析方法和装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106997315A (zh) * | 2016-01-25 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种用于虚拟机的内存转储的方法和装置 |
CN106997315B (zh) * | 2016-01-25 | 2021-01-26 | 阿里巴巴集团控股有限公司 | 一种用于虚拟机的内存转储的方法和装置 |
CN107436777A (zh) * | 2016-05-27 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 移动终端、应用程序崩溃处理方法及装置 |
CN106484617A (zh) * | 2016-10-09 | 2017-03-08 | 武汉斗鱼网络科技有限公司 | 用于Windows软件产品的dump文件自动分析统计方法及系统 |
CN106598871A (zh) * | 2016-12-29 | 2017-04-26 | 山东鲁能智能技术有限公司 | Linux下的崩溃文件自动化分析方法及系统 |
CN109271269A (zh) * | 2018-09-20 | 2019-01-25 | 阿里巴巴集团控股有限公司 | 一种应用闪退的处理方法、装置及设备 |
CN110262918A (zh) * | 2019-06-19 | 2019-09-20 | 深圳市网心科技有限公司 | 进程崩溃分析方法及装置、分布式设备及存储介质 |
CN111125015A (zh) * | 2019-12-20 | 2020-05-08 | 北京百度网讯科技有限公司 | 用于dump文件分类的方法、装置、终端和介质 |
CN111125015B (zh) * | 2019-12-20 | 2023-04-14 | 北京百度网讯科技有限公司 | 用于dump文件分类的方法、装置、终端和介质 |
CN111611145A (zh) * | 2020-05-29 | 2020-09-01 | 北京字节跳动网络技术有限公司 | 崩溃信息收集方法、装置、存储介质及电子设备 |
CN111611145B (zh) * | 2020-05-29 | 2023-03-31 | 北京字节跳动网络技术有限公司 | 崩溃信息收集方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104536874A (zh) | 客户端崩溃定位方法和设备 | |
CN100583920C (zh) | 测试脚本的生成方法及装置和测试方法及装置及系统 | |
CN103136471B (zh) | 一种恶意Android应用程序检测方法和系统 | |
CN105302732A (zh) | 一种移动终端的自动测试方法及装置 | |
CN105677561B (zh) | 移动产品多平台测试方法及系统 | |
CN104978529A (zh) | 网页前端的异常处理方法、异常处理系统及异常处理服务器 | |
CN104980552B (zh) | 实现Android移动终端自动化测试的方法及系统 | |
CN104935639A (zh) | 一种智能终端及其应用的分布式开发系统及方法 | |
CN103246606A (zh) | Esb平台的性能方法和系统 | |
CN107463391B (zh) | 任务处理方法、装置及设备 | |
CN103150253A (zh) | 一种用于持续性能测试的方法和系统 | |
CN105760307A (zh) | 智能终端的测试方法、装置及系统 | |
CN104077314A (zh) | 一种浏览器收藏方法、系统及终端设备 | |
CN104899140B (zh) | 一种移动终端组件的测试方法 | |
CN104182348A (zh) | 软件测试方法及装置 | |
CN104123397A (zh) | Web页面的自动化测试装置及方法 | |
CN103746873A (zh) | 通信模块测试系统和方法 | |
CN109240278A (zh) | 自动化诊断方法、装置及系统 | |
CN105373446B (zh) | 一种基于自动演练的系统自动修复方法和装置 | |
CN105302715A (zh) | 应用程序用户界面的获取方法和装置 | |
CN104834586A (zh) | 安卓界面自动化测试方法、装置及系统 | |
CN103279420A (zh) | 优化的移动终端应用程序自动化测试方法和系统 | |
CN107635247A (zh) | 一种LTE自动化测试中终端log的保存方法 | |
CN104142885A (zh) | 一种用于对被测程序进行异常测试的方法和装置 | |
CN103294053A (zh) | 一种汽车k线诊断系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150422 |
|
WD01 | Invention patent application deemed withdrawn after publication |