本发明专利技术公开了一种程序崩溃分析方法,涉及计算机信息处理技术领域,包括在应用程序中集成breakpad工具,在应用程序发生崩溃时,使用breakpad工具抓取应用程序崩溃信息,生成转储dump文件并写入指定的目录下,再将dump文件上传至服务器。本发明专利技术可便捷的抓取应用程序的崩溃信息生成dump文件并上传至服务器进行分析。本发明专利技术还公开了一种程序崩溃分析系统。
Program crash analysis method and system
The invention discloses a program crash analysis method, relates to the field of computer information processing technology, including the integration of breakpad tools in the application, in the collapse of the application, use the breakpad tool to capture application crash information, generate dump file and write dump into a specified directory, then dump file upload to the server. The invention can conveniently capture the crashing information of the application, generate the dump file and upload to the server for analysis. The invention also discloses a program crash analysis system.
【技术实现步骤摘要】
一种程序崩溃分析方法及系统
本专利技术涉及计算机信息处理
,具体涉及一种程序崩溃分析方法及系统。
技术介绍
随着计算机应用的发展,满足用户各种计算机应用程序层出不穷。然而,应用程序运行过程中,有时会发生程序崩溃的现象,无论是指针越界还是非法操作,都将给系统造成巨大的损失。但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事。因此,亟需一种在应用程序发生崩溃的时候记录下产品崩溃的原因,以方便产品开发人员及时定位到程序的出错的代码,提高代码的质量及产品的稳定性的技术方案。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种程序崩溃分析方法及系统,可便捷的抓取应用程序的崩溃信息生成dump文件并上传至服务器进行分析。为达到以上目的,本专利技术采取的技术方案是:一种程序崩溃分析方法,其特征在于:在应用程序中集成breakpad工具,在应用程序发生崩溃时,使用breakpad工具抓取应用程序崩溃信息,生成转储dump文件并写入指定的目录下,再将dump文件上传至服务器。在上述技术方案的基础上,将dump文件上传至服务器后,获取应用程序用到的所有共享库so文件的符号文件;分析dump文件,得到产生崩溃的原因,出错的代码,调用的函数;通过出错的代码和调用的函数查找符号文件获得出错的代码对应的原始代码行号和原始代码文件。在上述技术方案的基础上,所述符号文件包括函数名,原始代码行号和原始代码文件名。在上述技术方案的基础上,在应用程序中集成breakpad工具时,预定义dump文件存放的目录。在上述技术方案的基础上,所述breakpad工具抓取应用程序崩溃信息生成转储dump文件并写入指定的目录下。在上述技术方案的基础上,使用网络套接字将dump文件上传到服务器。本专利技术还公开了一种程序崩溃分析系统,包括:breakpad集成模块,用于在应用程序中集成breakpad工具:转储文件生成模块,用于在应用程序发生崩溃时,找到出错的代码,生成dump文件并写入指定的目录下;转储文件上传模块,用于将dump文件上传至服务器。在上述技术方案的基础上,breakpad集成模块还用于预定义dump文件存放的目录。在上述技术方案的基础上,所述程序崩溃分析系统还包括:符号文件生成模块,用于获取应用程序用到的所有so文件的符号文件;转储文件分析模块,用于分析dump文件,得到产生崩溃的原因和得到函数调用链,通过符号文件获得出错的代码对应的的原始代码行号和原始代码文件。在上述技术方案的基础上,所述符号文件包括函数名,原始代码行号和原始代码文件名。与现有技术相比,本专利技术的优点在于:1、本专利技术通过将在应用程序中集成breakpad工具,在应用程序发生崩溃时,使用breakpad工具找到出错的代码,生成dump文件并写入指定的目录下,再将dump文件上传至服务器,即可将所有出错的代码收集并上传至服务器分析。2、本文通过在应用程序中集成breakpad工具,获取应用程序用到的所有so文件的符号文件;分析dump文件,得到产生崩溃的原因和得到函数调用链,再通过符号文件获得出错的代码对应的的原始代码行号和原始代码文件,比较方便的就能找到产生崩溃的原因了。极大的节省了人力成本,也能够及时的分析dump文件及早的发现问题。附图说明图1为本专利技术实施例中一种程序崩溃分析方法的流程示意图;图2为本专利技术实施例中一种程序崩溃分析系统的结构示意图。图中:1-breakpad集成模块,2-转储文件生成模块,3-转储文件上传模块,4-符号文件生成模块,5-转储文件分析模块。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。参见图1所示,本专利技术实施例提供一种程序崩溃分析方法,在应用程序中集成breakpad工具,breakpad工具即Googlebreakpad是一个非常实用的跨平台的崩溃转储和分析模块。在应用程序中集成breakpad工具,在应用程序发生崩溃时,使用breakpad工具抓取应用程序崩溃信息,生成转储dump文件并写入指定的目录下,再将dump文件上传至服务器。即可将所有出错的代码收集并上传至服务器分析。breakpad工具用于抓取应用程序的崩溃。Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。在应用程序中集成breakpad工具时,预定义dump文件存放的目录。breakpad工具包括库文件libbreakpad_client.a,breakpad工具抓取应用程序崩溃信息生成转储dump文件并写入指定的目录下。将dump文件上传至服务器后,获取应用程序用到的所有共享库so文件的符号文件;分析dump文件,得到产生崩溃的原因,出错的代码,调用的函数;通过出错的代码和调用的函数查找符号文件获得出错的代码对应的原始代码行号和原始代码文件,比较方便的就能找到产生崩溃的原因了,极大的节省了人力成本,也能够及时的分析dump文件及早的发现问题。本专利技术可应用于安卓系统。具体步骤参见图1所示:S1,在应用程序中集成breakpad工具;由于breakpad是开源的并且提供了库文件libbreakpad_client.a,所以在应用程序中集成libbreakpad_client.a就可以集成进dump文件抓取功能,并且在应用程序入口处添加如下代码:MinidumpDescriptordes("/sdcard");ExceptionHandlereh(des,NULL,NULL,NULL,true,-1);其中des对象是描述生成的dump文件存放的地址,本实施例中的是存放在sdcard中其中eh对象是用来注册一个异常的接管,用于在程序发生崩溃的时候,可以去接管异常,生成dump文件。其中第一个参数NULL指不注册过滤回调函数。其中第二个参数NULL指不注册创建dump时的回调函数。其中第三个参数NULL指dump回调函数的环境变量,由于不需要所以为NULL。其中第四个参数true标示是注册异常接管对象。其中第五个参数-1标示指抓取本应用的崩溃。S2,在应用程序发生崩溃时,使用breakpad工具抓取应用程序崩溃信息,生成转储(dump)文件并写入指定的目录下;发生崩溃时,breakpad会在指定的目录下写入dump文件,本实施例中是对应上面的des所填的sdcard目录下。S3,将dump文件上传至服务器;可以使用网络套接字将dump文件上传到服务器。S4,获取应用程序用到的所有so文件的符号文件;使用breakpad提供的dump_syms工具获取so的符号文件。运行dump_symslibxxx.so>libxxx.so.sym其中libxxx.so指应用中用到的so文件,libxxx.so.sym指生成的符号文件的名字,这样对所有的so文件执行上面的命令就可以得到所有so文件的符号文件。S5,分析dump文件,得到产生崩溃的原因,出错的代码,调用的函数;通过出错的代码和调用的函数查找符号文件获得出错的代码对应的的原始代码行号和原始代码文件。使用breakpad提供的minidum本文档来自技高网...
【技术保护点】
一种程序崩溃分析方法,其特征在于:在应用程序中集成breakpad工具,在应用程序发生崩溃时,使用breakpad工具抓取应用程序崩溃信息,生成转储(dump)文件并写入指定的目录下,再将dump文件上传至服务器。
【技术特征摘要】
1.一种程序崩溃分析方法,其特征在于:在应用程序中集成breakpad工具,在应用程序发生崩溃时,使用breakpad工具抓取应用程序崩溃信息,生成转储(dump)文件并写入指定的目录下,再将dump文件上传至服务器。2.如权利要求1所述的一种程序崩溃分析方法,其特征在于:将dump文件上传至服务器后,获取应用程序用到的所有共享库so文件的符号文件;分析dump文件,得到产生崩溃的原因,出错的代码,调用的函数;通过出错的代码和调用的函数查找符号文件获得出错的代码对应的原始代码行号和原始代码文件。3.如权利要求1所述的一种程序崩溃分析方法,其特征在于:所述符号文件包括函数名,原始代码行号和原始代码文件名。4.如权利要求1所述的一种程序崩溃分析方法,其特征在于:在应用程序中集成breakpad工具时,预定义dump文件存放的目录。5.如权利要求1所述的一种程序崩溃分析方法,其特征在于:所述breakpad工具抓取应用程序崩溃信息生成转储dump文件并写入指定的目录...
【专利技术属性】
技术研发人员:周志刚,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。