CN103257913A - 一种运行时软件故障检测排除系统和方法 - Google Patents

一种运行时软件故障检测排除系统和方法 Download PDF

Info

Publication number
CN103257913A
CN103257913A CN2013101367691A CN201310136769A CN103257913A CN 103257913 A CN103257913 A CN 103257913A CN 2013101367691 A CN2013101367691 A CN 2013101367691A CN 201310136769 A CN201310136769 A CN 201310136769A CN 103257913 A CN103257913 A CN 103257913A
Authority
CN
China
Prior art keywords
event
function
rule
program
module
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.)
Granted
Application number
CN2013101367691A
Other languages
English (en)
Other versions
CN103257913B (zh
Inventor
张兴军
杨岩
董小社
王恩东
公维锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong High-End Server & Storage Research Institute
Xian Jiaotong University
Original Assignee
Shandong High-End Server & Storage Research Institute
Xian Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong High-End Server & Storage Research Institute, Xian Jiaotong University filed Critical Shandong High-End Server & Storage Research Institute
Priority to CN201310136769.1A priority Critical patent/CN103257913B/zh
Publication of CN103257913A publication Critical patent/CN103257913A/zh
Application granted granted Critical
Publication of CN103257913B publication Critical patent/CN103257913B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明属于计算机软件容错领域,涉及一种运行时软件故障检测排除系统和方法。该系统主要由被监控程序和监控服务器组成。被监控程序包括函数拦截部件、错误处理部件,监控服务器包括规则文件、规则转换部件、故障推理部件。监控服务器读取规则文件,规则转换部件将规则文件转换为推理自动机,等待被监控程序发来事件;函数拦截部件和错误处理部件通过源代码插装方式与被监控程序结合,被监控程序运行过程中,函数拦截部件发送事件到监控服务器,故障推理部件对事件进行推理,得出结论并返回处理方法;被监控程序通过错误处理部件执行处理方法。本发明适用于已知源代码的C\C++程序的容错,有助于软件运行时错误分析和修复。

Description

一种运行时软件故障检测排除系统和方法
技术领域
本发明涉及软件容错系统和方法,尤其涉及一种运行时软件故障检测排除系统和方法。
背景技术
软件容错是指软件能够在系统发生故障的情况下,计算机软件能够继续按照正常的步骤进行执行的能力。常用的软件容错方法有恢复块法、N版本法、防卫式程序设计等。其中,恢复块法使用主程序块和若干后备程序块,如果主程序块不能通过验收测试,现场需要进行一系列恢复后由后备块运行。N版本法是使用N个具有相同功能的程序段同时运行,最后通过表决决定运行的结果。防卫式程序设计在程序中加入错误检测代码和错误恢复代码,能够自动撤销错误,使程序进入正常运行状态。恢复块法和N版本法需要编写冗余模块,没有容错功能的程序需要进行大量修改才能够具备容错能力,而防卫式程序设计可以通过加入错误检测和错误恢复模块,对源程序修改量少,方便实现软件容错。但是,防卫式程序设计适用于小程序或局部程序容错,不能处理算法中存在的逻辑错误。
运行时验证技术是一种轻量级的验证技术,能够对被监控的程序进行实时验证,当检测到软件系统错误行为时,采取及时的反应,避免软件失效或减少软件失效的影响。运行时验证技术使用专门的语言对程序进行描述,检测程序是否按照描述运行,不仅冗余代码量小,还能够从程序逻辑角度对程序进行监控。
随着计算机的广泛应用,用户对服务质量要求也越来越高,硬件容错和软件容错也日趋重要。在Linux服务器中,许多高质量的C/C++软件被应用在重要的场合,然而,这些软件大都没有足够的容错机制来保证运行的安全,而要为每一个软件开发新的容错机制是一项艰巨的工作。同时服务器集群的应用,也要求这些软件的运行能够得到统一的管理。因此,需要一种方法和系统,能够方便地对现有服务器软件进行增强,使之具有容错的能力,而且能够对具备容错能力的程序进行统一管理。
发明内容
鉴于此,本发明提供了一种运行时软件故障检测排除系统和方法,该方法借鉴运行时验证技术,对linux下C/C++程序进行一定的处理,使之成为可监控程序,提供监控服务器,对可监控程序进行管理,保证程序的安全运行。
本发明提供一种运行时软件故障检测排除系统,包括监控服务器和被监控程序,所述监控服务器包括规则文件、规则转化部件和故障推理部件,所述被监控程序包括函数拦截部件和错误排除部件:
规则文件:用于描述被监控程序正常运行应该遵循的规则,以及当程序违反正常运行规则后应当采取的处理方法;
规则转化部件:用于读取规则文件,并进行语法检查、语义分析,最终转化为有限状态自动机形式;
故障推理部件:用于接收被监控程序函数拦截部件发送的事件信息,并触发自动机进行推理,得到程序故障信息和错误处理方法,将错误处理方法发送到错误排除部件进行错误处理;
函数拦截部件:用于从被监控程序中获得程序运行时函数及其参数信息,将这些信息包装成事件,并将事件发送给监控服务器;
错误排除部件:用于从监控服务器获得错误处理方法,并对被监控程序实施错误处理,调整程序行为。
所述的规则文件包括:规则的作用域,表示规则适用的程序、函数;规则表达式,使用LTL公式表达程序应当遵循的规则;处理方法,表示规则被违反后被监控程序应该采取的处理方法,以及监控程序应该采取的监控策略调整方法。
所述的规则转化部件包含:规则分析模块,用于规则文件的读取和语法检查;语法树转化模块,用于规则的去重与标准化;自动机生成模块,用于生成与规则相对应的自动机初始状态和推理规则。
所述的故障推理部件包含:事件接收模块,用于从函数拦截模块获取函数和作用域事件;推理模块,用于根据事件触发自动机状态的转移;诊断模块,用于根据推理模块自动机的状态,获得当前被监控程序运行状态,参照规则,获得诊断结果和错误处理方法;推理策略调整模块,用于根据处理方法,调整自动机状态,使自动机能够继续推理经过调整的被监控程序;处理方法发送模块,用于将错误处理方法发送到错误排除模块。
所述的函数拦截部件包括:函数获取模块,用于从被监控程序中获取函数的名称和函数的参数;作用域获取模块,用于获取函数作用域的开始和结束;事件管理模块,用于为函数和作用域事件添加编号和时间戳,以及将函数和作用域以事件方式发送至监控服务器。
所述的错误排除部件包括:错误处理函数模块,用于错误处理函数的注册、匹配和调用;错误处理方法接收模块,用于从故障推理部件接收错误处理方法,然后将错误处理方法转交给错误处理函数模块。
本发明还提供了一种运行时软件故障检测排除方法,包含以下步骤:
步骤(1),监控服务器读取规则文件,检查规则语法正确性。
步骤(2),规则转化部件将规则转化为推理自动机,启动故障推理模块,等待被监控程序事件到达。
步骤(3),将需要被监控的程序源代码与监控规则有关代码一同编译,生成被监控程序,并执行该程序。
步骤(4),被监控程序在运行过程中不断发送函数事件和作用域事件到监控服务器的事件接收模块。
步骤(5),监控服务器故障推理模块接收到被监控程序发送的事件后进行推理,并给出诊断结果和错误处理方法,一方面,监控服务器将错误处理方法发送给被监控程序,另一方面,故障推理模块根据诊断结果调整自身状态,并等待被监控程序发来的事件。
步骤(6),被监控程序得到的错误处理方法,调用错误处理模块中的错误处理方法,使程序进入可控状态,并继续运行程序,发送函数事件和作用域事件,直到程序运行结束。
所述规则转化部件对规则的语法进行分析检查后,对其进行标准化处理,标准化后转化为自动机,然后再将自动机一般化,即将自动机用命题逻辑表达式描述,并将表达式转化为析取范式形式。
函数事件的生成方法为:当被监控程序拦截到一个函数事件时,将该函数事件插入到事件管理器的事件队列,然后事件管理器与监控服务器通信,将事件发送给监控服务器;对于复杂的事件,例如需要自定义参数的函数事件和嵌套的作用域事件,需要自定义拦截对象。
所述步骤(5)的推理方法包括以下步骤:
步骤(5.1),函数事件到达时,根据函数事件在程序中所处的位置推导出函数事件所处的作用域,然后据此选择与被监控程序相对应的自动机;
步骤(5.2)如果推理没有达到末尾,则将函数事件代入自动机的一般化表达式,得到当前表达式的值,如果表达式的值为错误,则当前函数事件违背了规则;如果推理到达了末尾,则根据在得到结尾作用域事件之前表达式的推理状况,推断出规则有没有被违背;
步骤(5.3)对于规则没有被违背的自动机,得到一个标志为“CORRECT”的处理方法,表示不需要处理错误;对于规则被违背的自动机,根据规则文件中解决方案的描述,生成一个错误处理方法,包括被监控程序需要调用的函数,以及该函数需要的参数,该参数从规则的关键参数和非关键参数中获得。
与现有技术相比,本发明提供的技术方案,有效减少了对软件容错所需的开发量,并且允许从逻辑级对程序的行为进行监控,克服了现有技术方案只能局部容错的缺点,同时,本技术方案提供的监控服务器可以实现对可监控程序的统一管理,具有良好的实用性。
附图说明
图1是本发明运行时软件故障检测排除系统总体结构框图。
图2是本发明运行时软件故障检测排除方法活动图。
具体实施方式
以下结合附图,对本发明作进一步的描述。
如图1所示,该图为按本发明运行时软件故障检测排除系统总体框图,图中包括:
被监控程序,是对普通Linux下C/C++增强过的程序。主要由三部分组成:原程序、错误排除部件和函数拦截部件。原程序是没有容错功能的应用程序,这类程序一般用于重要领域,需要较高的安全性和可靠性。本发明中,原程序使用C或C++语言编写。函数拦截部件包括函数获取模块、作用域获取模块、事件管理模块。其中函数获取模块和作用域获取模块都与原程序有紧密联系,需要根据原程序的逻辑,获得准确的函数和作用域。事件管理模块负责将函数和作用域以事件方式发送给监控服务器。本发明中,函数拦截部件使用了面向切面的技术,具体的是使用Aspect C++对事件及其信息进行提取。错误排除部件包含错误处理函数模块和错误处理方法接收模块。错误处理函数模块中的错误处理函数与原程序的逻辑相关,负责对原程序进行逻辑调整,使之规避可能发生的错误,对于比较复杂的错误,需要对原程序进行改动。而错误处理方法接收模块则是通过网络从监控服务器得到错误处理方法,然后将错误处理方法转交给错误处理函数模块。
监控服务器,是对所有被监控程序进行故障检测的程序。主要由故障推理部件和规则转化部件组成。规则转化部件将规则文件中描述的信息转化为故障推理部件使用的数据结构。规则转化部件包含规则分析模块、语法树转化模块、自动机生成模块。规则分析模块直接读入规则文件,并对规则文件中描述的规则进行语法检查和分析。其中,规则文件是对LTL表达式的扩展,使其适用于有限路径,还添加了错误处理方法和推理策略调整方法。规则分析使用了BoostSpirit库,将规则文本读入到相应数据结构中存储并作语法检查。语法树转化模块将数据结构中的内容进行去重和标准化。自动机生成模块则是将语法树转化为命题逻辑表达式,使推理过程更加高效。故障推理部件包括推理模块、推理策略调整模块、诊断模块、事件接受模块、处理方法发送模块。前三个模块从规则转化部件得到规则信息,具体地说,推理模块获得自动机生成模块中自动机初始状态和推理规则,推理策略调整模块获得规则中状态调整方法,诊断模块获得规则中处理方法信息。事件接收模块负责将通过网络从事件管理模块得到的函数事件和作用域事件发送给推理模块。处理方法发送模块则将诊断模块得到的错误处理方法通过网络发送给错误处理方法接收模块。
如图2所示,该图为本发明运行时软件故障检测排除方法活动图,以下为图中相关部分说明:
一、读取规则文件并检查语法
规则说明文件描述程序安全运行行为,以及违反安全运行行为后所需要执行的处理方法。
规则说明文件语法使用EBNF(扩展的巴克斯范式)表示如下:
Figure BDA00003069988400081
以下对语法中的若干条目进行详细说明:
第1条,一个规则文件中,可以包含若干条程序运行时规则,这些规则可以作用于不同的程序。
第2条,一条规则具有程序名称、规则名称和若干子项。其中,程序名称(第一个name_str)表示规则对应的程序,当一个被监控程序发送事件到监控服务器时,监控服务器使用程序名称与被监控程序名称相同的规则进行推理;规则名称(第二个name_str)相当于一个标识符,用于划分同一类逻辑功能,比如,取名为memory表示规则内包含的都是内存管理类的规则;子项是对具体推理法则和错误处理方法的描述。
第4条,一个规则子项包括作用域列表、关键变量列表、LTL表达式、处理方法、状态调整方法。其中,作用域列表表示本子项推理的起始点和结束点;关键变量列表表示能够唯一确定本子项推理副本的变量;LTL表达式表明了事件与事件之间应当遵循的时序顺序关系;处理方法表示当被监控程序运行行为违反LTL表达式时被监控程序应当采取的措施;状态调整方法表示推理过程中遇到被监控程序运行行为违反LTL表达式时,依据处理方法的处理方式,推理过程应当采取的调整方法。
第6条,一个作用域由作用域关键字和作用域事件组成。其中,作用域关键字包括“begin”、“end”、“within”,分别表示起始作用域事件、结束作用域事件、函数作用域,函数作用域表明起始作用域和结束作用域事件为函数的开头和结尾;作用域事件为函数开头或结尾。
第8条,一个状态调整方法包括状态调整方法名称和参数。其中,状态调整方法名称包括“nothing”、“stop”、“ignore”、“replace”,分别表示无需调整、停止推理、忽略当前步骤、替换当前步骤;对于“nothing”、“stop”、“ignore”三种情况,参数为空,当“replace”时,参数表示代替当前步骤事件的名称。
第10条,一个处理方法包括处理方法名称和参数。其中,处理方法名称对应被监控程序中的错误处理方法;参数是需要传递给错误处理方法的参数。
第12~14条,表示LTL公式。其中一元操作符中,“G”表示Always,“F”表示Finally,“N”表示Next,“X”表示Weak Next,“~”表示Not;二元操作符中,“U”表示Until,“W”表示Weak Until,“R”表示Release,“|”表示Or,“&”表示And,“->”表示Infer。事件通过这些操作符连接,形成一条规则。
第15条,一个事件由事件名和参数组成。其中,事件名与被监控程序发送来的函数事件或者作用域事件相对应;函数事件包含参数,参数一般是由函数的参数或者返回值组成。
二、转化规则为推理自动机
将规则转化为自动机可以分为构建语法树、语法树标准化、转化为自动机、一般化自动机。
首先,使用Boost Spirit库编写的语法分析器构建语法树。根据语法规则,对规则文件进行语法分析,同时检查规则中是否存在语法错误,如果出错则退出,如果语法正确,将规则文件每一部分读入相应数据结构。在语法树中,LTL表达式部分要最终会转化为自动机,因此需要对其进行进一步处理。而其他部分,如错误处理方法、推理调整方法则不需要进一步处理。
下一步,对LTL表达式部分进行标准化处理,要求“~”只能修饰事件,也就是操作符后只能跟事件,并将LTL中众多的操作符转化为“~”、“|”、“&”、“G”、“F”、“U”、“W”、“N”、“X”这几个标准的操作符,转化过程如下,其中
Figure BDA00003069988400101
和ψ代表表达式或事件,转化的过程是递归的:
Figure BDA00003069988400102
Figure BDA00003069988400111
接着,需要将标准化后的LTL语法树转化为自动机,该自动机具有判断当前步骤程序状态正确性的能力,并且可以根据当前接收到的事件的状态,得到程序下一步需要遵守的规则。
为了使自动机能够方便地判断由被监控程序发送的事件是否符合预期,将自动机一般化,就是将自动机用命题逻辑表达式描述,并将表达式转化为析取范式形式,如(eventA&(~eventB))|eventC,表示要么事件A发生且事件B不发生,或者事件C发生。
通过这几个步骤,自动机就可以对将要到来的事件进行推理。三、启动函数拦截部件和生成事件
被监控函数拦截部件由函数拦截部件库和自定义拦截对象组成,用于从被监控程序中获得函数或者作用域事件,并将其发送给监控服务器。
函数拦截部件库包括事件管理器、事件拦截模板。事件管理器主要用于事件的发送和接收,事件管理器与被监控程序是并行执行的。当被监控程序启动时,首先启动事件管理器,事件管理器负责初始化事件管理线程,等待拦截到的函数事件。当被监控程序拦截到一个函数事件时,会将函数事件插入到事件管理器的事件队列,然后事件管理器与监控服务器通信,将事件发送给监控服务器。事件拦截模板用于获取标准函数事件和标准作用域事件。对于复杂的事件,例如需要自定义参数的函数事件和嵌套的作用域事件,则需要自定义拦截对象。
自定义拦截对象使用Aspect C++编写,用于拦截复杂函数事件和作用域事件。例如,B函数可能被A函数或者C函数调用,那么,通过自定义拦截对象,可以只拦截被C调用的B函数,不仅如此,还可以根据B的参数或者返回值,来确定是否拦截以及函数事件的参数。每当被监控程序运行至需要拦截函数的开头、结束,就会生成函数事件或者作用域事件,交给事件管理器处理。
四、监控服务器的推理过程
监控服务器推理过程分三步:第一步,选择与被监控程序相对应的自动机;第二步,得到推理结果;第三步,获取错误处理方法。
第一步,自动机的选择与三个因素有关,一是作用域,二是关注事件,三是关键变量。首先,函数事件到达时,会根据函数事件在程序中所处的位置推导出函数事件所处的作用域,此函数事件会交给相关的作用域里的自动机处理。然后,根据自动机表达式中的事件的名称,决定函数事件是否被接受。最后,根据函数事件的参数是否与已有的实例化的自动机关键参数有冲突,如果关键参数相同或者,则该函数事件在已有自动机中推导,如果关键参数不同,则建立一个新的自动机实例进行推导。
第二步,推理结果与两个因素有关,一个是函数事件的值,另一个是结尾作用域事件。如果一个推理没有到达末尾,也就是没有获得结尾作用域事件,那么将函数事件代入自动机的一般化表达式,可以得到当前表达式的值,如果表达式的值为错误,那么说明当前函数事件违背了规则。如果推理到达了末尾,也就是接收到了结尾作用域事件,那么根据在得到结尾作用域事件之前表达式的推理状况,推断出规则有没有被违背。
第三步,对于规则没有被违背的自动机,得到一个标志为“CORRECT”的处理方法,表示不需要处理错误。而对于规则被违背的自动机,根据规则文件中解决方案的描述,生成一个错误处理方法,包括被监控程序端需要调用的函数,以及该函数需要的参数,该参数从规则的关键参数和非关键参数中获得。
五、调用错误处理方法
错误排除模块由错误处理函数管理器和错误处理方法接受模块组成。
其中,错误处理函数管理器负责错误处理函数的注册、匹配和调用。错误处理函数是为了解决特定程序故障而编写的函数,遵循错误处理函数定义。在被监控程序运行之前,错误处理函数管理器将预先定义好的错误处理方法加载进内存,当接收到监控服务器发来的错误处理方法时,按名称搜索预加载的错误处理方法。一旦匹配,则将错误处理方法中包含的参数转化为错误处理函数需要的参数格式,调用错误处理函数,错误得到解决,之后被监控程序继续运行。

Claims (10)

1.一种运行时软件故障检测排除系统,其特征在于,包括监控服务器和被监控程序,所述监控服务器包括规则文件、规则转化部件和故障推理部件,所述被监控程序包括函数拦截部件和错误排除部件;
规则文件:用于描述被监控程序正常运行应该遵循的规则,以及当程序违反正常运行规则后应当采取的处理方法;
规则转化部件:用于读取规则文件,并进行语法检查、语义分析,最终转化为有限状态自动机形式;
故障推理部件:用于接收被监控程序函数拦截部件发送的事件信息,并触发自动机进行推理,得到程序故障信息和错误处理方法,将错误处理方法发送到错误排除部件进行错误处理;
函数拦截部件:用于从被监控程序中获得程序运行时函数及其参数信息,将这些信息包装成事件,并将事件发送给监控服务器;
错误排除部件:用于从监控服务器获得错误处理方法,并对被监控程序实施错误处理,调整程序行为。
2.根据权利要求1所述的运行时软件故障检测排除系统,其特征在于,所述的函数拦截部件包括:
函数获取模块,用于从被监控程序中获取函数的名称和函数的参数;
作用域获取模块,用于获取函数作用域的开始和结束;
事件管理模块,用于为函数和作用域事件添加编号和时间戳,以及将函数和作用域以事件方式发送至监控服务器。
3.根据权利要求1所述的运行时软件故障检测排除系统,其特征在于,所述的错误排除部件包括:
错误处理函数模块,用于错误处理函数的注册、匹配和调用;
错误处理方法接收模块,用于从故障推理部件接收错误处理方法,然后将错误处理方法转交给错误处理函数模块。
4.根据权利要求1所述的运行时软件故障检测排除系统,其特征在于,所述的规则文件包括:
规则的作用域,表示规则适用的程序、函数;
规则表达式,使用LTL公式表达程序应当遵循的规则;
处理方法,表示规则被违反后被监控程序应该采取的处理方法,以及监控程序应该采取的监控策略调整方法。
5.根据权利要求1所述的运行时软件故障检测排除系统,其特征在于,所述的规则转化部件包含:
规则分析模块,用于规则文件的读取和语法检查;
语法树转化模块,用于规则的去重与标准化;
自动机生成模块,用于生成与规则相对应的自动机初始状态和推理规则。
6.根据权利要求1所述的运行时软件故障检测排除系统,其特征在于,所述的故障推理部件包含:
事件接收模块,用于从函数拦截模块获取函数和作用域事件;
推理模块,用于根据事件触发自动机状态的转移;
诊断模块,用于根据推理模块自动机的状态,获得当前被监控程序运行状态,参照规则,获得诊断结果和错误处理方法;
推理策略调整模块,用于根据处理方法,调整自动机状态,使自动机能够继续推理经过调整的被监控程序;
处理方法发送模块,用于将错误处理方法发送到错误排除模块。
7.一种运行时软件故障检测排除方法,其特征在于,包含以下步骤:
步骤(1),监控服务器读取规则文件,检查规则语法正确性;
步骤(2),规则转化部件将规则转化为推理自动机,启动故障推理模块,等待被监控程序事件到达;
步骤(3),将需要监控的程序源代码与函数拦截代码、错误排除代码一同编译,生成被监控程序,并执行该程序;
步骤(4),被监控程序在运行过程中不断发送函数事件和作用域事件到监控服务器的事件接收模块;
步骤(5),故障推理模块接收到被监控程序发送的事件后进行推理,并给出诊断结果和错误处理方法,一方面,监控服务器将错误处理方法发送给被监控程序,另一方面,故障推理模块根据诊断结果调整自身状态,并等待被监控程序发来的事件;
步骤(6),被监控程序得到错误处理方法,调用错误处理模块中的错误处理方法,使程序进入可控状态,并继续运行程序,发送函数事件和作用域事件,直到程序运行结束。
8.如权利要求7所述的一种运行时软件故障检测排除方法,其特征在于,所述规则转化部件对规则的语法进行分析检查后,对其进行标准化处理,标准化后转化为自动机,然后再将自动机一般化,即将自动机用命题逻辑表达式描述,并将表达式转化为析取范式形式。
9.如权利要求7所述的一种运行时软件故障检测排除方法,其特征在于,函数事件的生成方法为:当被监控程序拦截到一个函数事件时,将该函数事件插入到事件管理器的事件队列,然后事件管理器与监控服务器通信,将事件发送给监控服务器;对于复杂的事件,例如需要自定义参数的函数事件和嵌套的作用域事件,需要自定义拦截对象。
10.如权利要求7所述的一种运行时软件故障检测排除方法,其特征在于,所述步骤(5)的推理方法包括以下步骤:
步骤(5.1),函数事件到达时,根据函数事件在程序中所处的位置推导出函数事件所处的作用域,然后据此选择与被监控程序相对应的自动机;
步骤(5.2)如果推理没有达到末尾,则将函数事件代入自动机的一般化表达式,得到当前表达式的值,如果表达式的值为错误,则当前函数事件违背了规则;如果推理到达了末尾,则根据在得到结尾作用域事件之前表达式的推理状况,推断出规则有没有被违背;
步骤(5.3)对于规则没有被违背的自动机,得到一个标志为“CORRECT”的处理方法,表示不需要处理错误;对于规则被违背的自动机,根据规则文件中解决方案的描述,生成一个错误处理方法,包括被监控程序需要调用的函数,以及该函数需要的参数,该参数从规则的关键参数和非关键参数中获得。
CN201310136769.1A 2013-04-18 2013-04-18 一种运行时软件故障检测排除系统和方法 Expired - Fee Related CN103257913B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310136769.1A CN103257913B (zh) 2013-04-18 2013-04-18 一种运行时软件故障检测排除系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310136769.1A CN103257913B (zh) 2013-04-18 2013-04-18 一种运行时软件故障检测排除系统和方法

Publications (2)

Publication Number Publication Date
CN103257913A true CN103257913A (zh) 2013-08-21
CN103257913B CN103257913B (zh) 2015-10-28

Family

ID=48961847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310136769.1A Expired - Fee Related CN103257913B (zh) 2013-04-18 2013-04-18 一种运行时软件故障检测排除系统和方法

Country Status (1)

Country Link
CN (1) CN103257913B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528284A (zh) * 2014-09-28 2016-04-27 华为技术有限公司 一种内核故障注入方法及电子设备
CN105677503A (zh) * 2016-01-13 2016-06-15 北京光年无限科技有限公司 一种软件异常处理方法及针对软件的异常自保护系统
CN106254158A (zh) * 2016-09-22 2016-12-21 安徽云图信息技术有限公司 信息系统智能监控管理平台
CN106528403A (zh) * 2016-10-08 2017-03-22 西安电子科技大学 基于二进制代码植入技术的软件运行时监控方法
CN106802853A (zh) * 2017-02-17 2017-06-06 郑州云海信息技术有限公司 一种基于多监控方式的选择方法及装置
CN110245085A (zh) * 2019-04-08 2019-09-17 华东师范大学 利用在线模型检验的嵌入式实时操作系统验证方法及系统
CN112685045A (zh) * 2020-12-28 2021-04-20 北京达佳互联信息技术有限公司 页面源文件的处理方法、装置、电子设备以及存储介质
US11546217B1 (en) * 2021-09-14 2023-01-03 Hewlett Packard Enterprise Development Lp Detecting configuration anomaly in user configuration

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017458A (zh) * 2007-03-02 2007-08-15 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
CN101286132A (zh) * 2008-06-02 2008-10-15 北京邮电大学 一种基于软件缺陷模式的测试方法及系统
CN101847122A (zh) * 2010-06-01 2010-09-29 北京邮电大学 应用异常控制流集的软件测试方法及系统
CN101853205A (zh) * 2010-06-23 2010-10-06 山东中创软件商用中间件股份有限公司 一种监控程序运行的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017458A (zh) * 2007-03-02 2007-08-15 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
CN101286132A (zh) * 2008-06-02 2008-10-15 北京邮电大学 一种基于软件缺陷模式的测试方法及系统
CN101847122A (zh) * 2010-06-01 2010-09-29 北京邮电大学 应用异常控制流集的软件测试方法及系统
CN101853205A (zh) * 2010-06-23 2010-10-06 山东中创软件商用中间件股份有限公司 一种监控程序运行的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘彦斌等: "《基于程序运行形式化分析的软件故障监控技术》", 《计算机工程》 *
张冠楠: "《基于扩展状态机的软件缺陷检测技术的研究与实现》", 《中国优秀硕士学位论文全文数据库》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528284B (zh) * 2014-09-28 2018-09-28 华为技术有限公司 一种内核故障注入方法及电子设备
CN105528284A (zh) * 2014-09-28 2016-04-27 华为技术有限公司 一种内核故障注入方法及电子设备
CN105677503A (zh) * 2016-01-13 2016-06-15 北京光年无限科技有限公司 一种软件异常处理方法及针对软件的异常自保护系统
CN105677503B (zh) * 2016-01-13 2018-10-26 北京光年无限科技有限公司 一种软件异常处理方法及针对软件的异常自保护系统
CN106254158A (zh) * 2016-09-22 2016-12-21 安徽云图信息技术有限公司 信息系统智能监控管理平台
CN106528403A (zh) * 2016-10-08 2017-03-22 西安电子科技大学 基于二进制代码植入技术的软件运行时监控方法
CN106528403B (zh) * 2016-10-08 2018-11-20 西安电子科技大学 基于二进制代码植入技术的软件运行时监控方法
CN106802853A (zh) * 2017-02-17 2017-06-06 郑州云海信息技术有限公司 一种基于多监控方式的选择方法及装置
CN106802853B (zh) * 2017-02-17 2020-08-21 苏州浪潮智能科技有限公司 一种基于多监控方式的选择方法及装置
CN110245085A (zh) * 2019-04-08 2019-09-17 华东师范大学 利用在线模型检验的嵌入式实时操作系统验证方法及系统
CN110245085B (zh) * 2019-04-08 2023-03-31 华东师范大学 利用在线模型检验的嵌入式实时操作系统验证方法及系统
CN112685045A (zh) * 2020-12-28 2021-04-20 北京达佳互联信息技术有限公司 页面源文件的处理方法、装置、电子设备以及存储介质
US11546217B1 (en) * 2021-09-14 2023-01-03 Hewlett Packard Enterprise Development Lp Detecting configuration anomaly in user configuration

Also Published As

Publication number Publication date
CN103257913B (zh) 2015-10-28

Similar Documents

Publication Publication Date Title
CN103257913A (zh) 一种运行时软件故障检测排除系统和方法
US8938421B2 (en) Method and a system for synchronizing data
CN110245035A (zh) 一种链路跟踪方法及装置
US20120101800A1 (en) Model checking for distributed application validation
US20060150163A1 (en) Problem determination using system run-time behavior analysis
CN110134385A (zh) 记录c语言函数调用链的方法及c语言通用日志框架
CN103559123B (zh) 基于VxWorks操作系统的函数调用栈分析方法及装置
CN108255728B (zh) 软件的失效模式的识别方法及装置
CN108897676B (zh) 基于形式化规则的飞行引导控制软件可靠性分析系统与方法
US20200117587A1 (en) Log File Analysis
CN102073588A (zh) 一种基于代码静态分析的多线程死锁检测方法及系统
CN101639803A (zh) 多线程应用系统的异常处理方法和异常处理装置
CN103440196A (zh) 一种新型操作系统资源问题检测方法
CN107517110A (zh) 一种分布式系统中单板配置自恢复方法及装置
CN103200027A (zh) 一种定位网络故障的方法、装置及系统
US10904290B2 (en) Method and system for determining incorrect behavior of components in a distributed IT system generating out-of-order event streams with gaps
CN103200203B (zh) 基于执行轨迹的语义级协议格式推断方法
US8554908B2 (en) Device, method, and storage medium for detecting multiplexed relation of applications
CN103645985B (zh) 一种源代码宏配对检测方法
CN101056210B (zh) 一种网络集中管理平台上的事件处理系统和方法
KR101993635B1 (ko) 지능형 자율 시스템에서의 사고 원인 추적 시스템
Xu et al. Hue: A user-adaptive parser for hybrid logs
US9092563B1 (en) System for discovering bugs using interval algebra query language
CN106844147B (zh) 一种监控系统及方法
Li et al. A framework for self-healing service compositions in cloud computing environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151028

Termination date: 20190418

CF01 Termination of patent right due to non-payment of annual fee