[发明专利]一种软件运行时故障传播路径的获取方法有效
申请号: | 201811503761.3 | 申请日: | 2018-12-10 |
公开(公告)号: | CN109669866B | 公开(公告)日: | 2021-04-30 |
发明(设计)人: | 陆民燕;李松正;孔士溢;李璐祎 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 王顺荣;唐爱华 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种软件运行时故障传播路径的获取方法:步骤一、软件动态运行时数据收集,具体包括:确定所要收集的数据类型;对目标软件进行代码插桩;监控程序运行时数据并记录;步骤二、基于数据对比分析的故障传播路径获取方法,具体包括:数据预处理;通过比较分析数据获得故障传播路径。本发明能够在Linux环境下获取C语言程序在故障运行时的故障传播路径。可以帮助软件工程师以路径为线索,快速准确地定位软件故障的所在处,降低维护成本;综合同一程序的多个故障传播路径分析,可以得出程序容易产生故障的模块位置,有助于软件工程师改进易错模块,提高软件可靠性;对软件动态运行的监控还可以为软件提供失效报警的作用。 | ||
搜索关键词: | 一种 软件 运行 故障 传播 路径 获取 方法 | ||
【主权项】:
1.一种软件运行时故障传播路径的获取方法,其特征在于:该方法具体步骤如下:步骤一、软件动态运行时数据收集S1.1、确定所要收集的数据类型在Linux下,gdb调试器通过命令获取寄存器信息,堆栈信息、内存信息、反汇编信息;入参、出参、返回值都可以通过gdb调试器的方式获取到;使用SrcML静态分析工具对待监控代码进行静态分析,在输出的xml文件中通过字符检索的方式提取出全局变量名称,进而能够在gdb调试器中直接监控对应的全局变量值;S1.2、对目标软件进行代码插桩利用gcc编译器的插桩功能,对函数出入口进行标记,并通过gdb调试器向函数出入口添加断点,即可在运行过程中输出变量信息;S1.3、监控程序运行时数据并记录编写gdb文件,将设置断点语句和监控语句写入其中,进行步进调试,将显示内容输出至文本文档中,添加逻辑使其直到程序运行终止时输出结束;编写shell脚本文件,将gcc编译插桩钩子函数和运行gdb的过程写入可执行程序中,即可实现插桩、监控和输出的自动化;步骤二、基于数据对比分析的故障传播路径获取方法S2.1、数据预处理利用字符匹配方法对前述步骤得到的数据进行关键信息提取;将匹配好的信息以嵌套数组的形式存入数组中,方便最终的处理;S2.2、通过比较分析数据获得故障传播路径对于同一个函数模块,在相同输入的前提下,无论运行多少次,理论上输出都是相同的;基于这个假设,将正常测试用例输入得到的输出文件和故障测试用例输入得到的输出文件进行比较,则故障输出相对于正常输出中不同的部分即为故障所经过的部分;分析输出文件,提取这些部分的数组中函数名和出入标签,得到正常状态下的执行路径和故障状态下的执行路径,再将路径中发生参数变化的部分进行提取,即可得到故障传播路径。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811503761.3/,转载请声明来源钻瓜专利网。