The invention discloses a method and a system crash file under Linux automation analysis; comprises the following steps: using a predetermined parameters on or c++ source code compiled for the prog program; the detection cycle set a memory dump file; prog program; if the program runs a problem, a memory dump file will run in a directory the name of \core. process\, in accordance with the testing period setting, test memory dump file exists, if there is to transfer a memory dump file to the temporary directory, use the script and the GDB debugger to memory dump file analysis, positioning error analysis program, after deleting a memory dump file using the script; step (5) in the analysis of the results of statistical report generation. The report generated by the invention can count the number of occurrences of the problem and the position of the problem code to provide more powerful support for modifying the priority of the problem.
【技术实现步骤摘要】
本专利技术涉及一种Linux下的崩溃文件自动化分析方法及系统。
技术介绍
Linux系统下常用的程序调试方式有以下几种:一,程序中加入调试信息,针对某些需要关注的变量,把变量值写入日志文件,程序执行完之后查看日志文件,分析程序的执行步骤及结果。二,使用gdb调试程序,使用gdb加载程序后,设置断点,单步执行观察执行输出,或者执行到断点之后通过指令输出变量信息检查执行结果。三,程序崩溃之后产生内存转储文件,通过gdb对转储文件进行调试,查看代码执行顺序以及内存堆栈信息,配合源代码进行分析,定位问题。从大量的正常、异常信息中筛选出需要的调试信息费时费力;实时调试最大的难度是对发生问题的场景很难完全还原,不能重现问题;对转储文件进行调试,较前两种方式更为方便快捷,但是也需要人来判断问题点,如果同时分析多个程序,较为繁琐。
技术实现思路
本专利技术的目的就是为了解决上述问题,提供一种Linux下的崩溃文件自动化分析方法及系统,它通过gdb工具及脚本语言,自动对程序崩溃产生的内存转储文件进行分析,定位程序崩溃代码,并且可以按指定的周期对出错程序,错误位置进行统计,生成报表,不需要人工进行干预。生成的报表可以统计问题出现次数,问题代码位置,为修改问题的优先级提供更有力的支持。为了实现上述目的,本专利技术采用如下技术方案:一种Linux下的崩溃文件自动化分析方法,包括如下步骤:步骤(1):使用预定参数对或者c++源代码行编译生成运行程序prog;prog是个标识;步骤(2):设置内存转储文件的检测周期;步骤(3):运行prog程序;步骤(4):如果程序运行有问题,会在运行 ...
【技术保护点】
一种Linux下的崩溃文件自动化分析方法,其特征是,包括如下步骤:步骤(1):使用预定参数对或者c++源代码行编译生成运行程序prog;prog是个标识;步骤(2):设置内存转储文件的检测周期;步骤(3):运行prog程序;步骤(4):如果程序运行有问题,会在运行目录下产生一个名字为“core.进程号”的内存转储文件,按照步骤(2)设定的检测周期,检测内存转储文件是否存在,若存在就进入步骤(5);若不存在就返回步骤(4);步骤(5):将内存转储文件转移到临时目录,使用脚本及gdb调试程序对内存转储文件进行分析,定位程序出错位置,分析结束之后,删除内存转储文件;步骤(6):使用脚本将步骤(5)中分析出来的结果生成统计报告。
【技术特征摘要】
1.一种Linux下的崩溃文件自动化分析方法,其特征是,包括如下步骤:步骤(1):使用预定参数对或者c++源代码行编译生成运行程序prog;prog是个标识;步骤(2):设置内存转储文件的检测周期;步骤(3):运行prog程序;步骤(4):如果程序运行有问题,会在运行目录下产生一个名字为“core.进程号”的内存转储文件,按照步骤(2)设定的检测周期,检测内存转储文件是否存在,若存在就进入步骤(5);若不存在就返回步骤(4);步骤(5):将内存转储文件转移到临时目录,使用脚本及gdb调试程序对内存转储文件进行分析,定位程序出错位置,分析结束之后,删除内存转储文件;步骤(6):使用脚本将步骤(5)中分析出来的结果生成统计报告。2.如权利要求1所述的一种Linux下的崩溃文件自动化分析方法,其特征是,所述步骤(5)中,内存转储文件占用的存储空间大,对内存转储文件分析完成后可以直接将内存转储文件进行删除,也可以对内存转储文件进行压缩后存储,每隔设定时间删除历史内存转储文件,以备人工检索。3.如权利要求1所述的一种Linux下的崩溃文件自动化分析方法,其特征是,所述步骤(6)分析出来的结果包括:内存转储文件产生时间、出错代码位置、相同位置出错次数。4.如权利要求1所述的一种Linux下的崩溃文件自动化分析方法,其特征是,所述步骤(5)的步骤为:步骤(5-1):启动gdb调试程序,加载“core.进程号”的内存转储文件;步骤(5-2):在gdb调试程序中输入bt指令,显示内存转储文件的堆栈内容;步骤(5-3):gdb调试程序列出堆栈内容及执行代码至屏幕;所述堆栈内容与所述执行代码之间是一一对应的;步骤(5-4):脚本对堆栈内容及执行代码进行解析,提取解析结果。5.如权利要求4所述的一种Linux下的崩溃文件自动化分析方法,其特征是,所述步骤(5-2)的堆栈内容包括:prog程序崩溃时所产生的变量值以及prog程序的执行地址。6.如权利要求4所述的一种Linux下的崩溃文件自动化分析方法,其特征是,所述步骤(5-4)的解析步骤为:步骤(a):步骤(a)包括步骤(a1)和步骤(a2);步骤(a1):从堆栈内容及执行代码中取出以“#0”开头的语句;步骤(a2):同时,从堆栈内容及执行代码中取出所有以“#...
【专利技术属性】
技术研发人员:傅晓,冯飞,崔丽蓉,张晓花,傅孟潮,
申请(专利权)人:山东鲁能智能技术有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。