一种程序故障的监控方法及系统技术方案

技术编号:14517293 阅读:88 留言:0更新日期:2017-02-01 19:45
本发明专利技术提供一种程序故障的监控方法及系统,包括:预先按照功能模块化方式将程序划分为多个函数,为每个函数中的关键位置定义不同的全局监控标识并在每个函数中的关键位置添加相应的全局监控标识;在所述程序的运行过程中,检测执行到函数的关键位置时确定是否获取到全局监控标识;若获取到全局监控标识,则根据获取的全局监控标识和所述函数的关键位置处定义的全局监控标识,确定所述函数的关键位置处是否出现故障;若未获取到全局监控标识,则确定所述函数的关键位置处出现故障。如此,本发明专利技术实施例能够及时、准确地确定函数的关键位置处是否出现故障,从而快速地进行故障处理,以避免程序故障而导致严重的后果。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种程序故障的监控方法及系统。
技术介绍
在微处理器中,程序计数器即PC,用于存放下一条指令地址。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为取指令,与此同时,PC中的指令地址或自动加1或由转移指针给出下一条指令地址。此后经过分析指令及执行指令以完成一条指令的执行,而后根据PC取出下一条指令地址,如此循环,执行每一条指令。由于现场仪表通常工作在环境恶劣的地方,对仪表的抗干扰能力提出了很高的要求。现场仪表中的PC控制着程序执行的流程,一旦受到干扰,程序就会脱离正常轨道而跑飞,带来不可预料的后果。通常会出现下面的现象:跳过部分指令或程序段继续执行;跳到数据区,把数据当指令执行;跳到使用的代码区将指令拆分了执行;跳到未使用的代码区等现象。针对上述现象,传统的处理方法是使用看门狗技术监控、指令冗余技术或在未使用的ROM区加软件陷阱来拦截等技术,或者这几种技术共同使用。传统的处理方法综合使用以上几种方法尽管最终能够监控到PC跑飞的情况,但由于从PC跑飞到发现PC跑飞的这段时间间隔有可能比较长,因此不能做到及时、准确的探测到程序故障位置,在这期间现场仪表可能会做出一些错误的动作,而导致严重的后果。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种程序故障的监控方法及系统,用以解决现有技术中不能及时准确地检测到程序故障的问题。为实现上述目的及其他相关目的,本专利技术实施例提供一种程序故障的监控方法,包括:预先按照功能模块化方式将程序划分为多个函数,为每个函数中的关键位置定义不同的全局监控标识并在每个函数中的关键位置添加相应的全局监控标识;所述方法还包括:在所述程序的运行过程中,检测执行到函数的关键位置时确定是否获取到全局监控标识;若获取到全局监控标识,则根据获取的全局监控标识和所述函数的关键位置处定义的全局监控标识,确定所述函数的关键位置处是否出现故障;若未获取到全局监控标识,则确定所述函数的关键位置处出现故障。优选地,所述根据获取的全局监控标识和所述函数的关键位置处定义的全局监控标识,确定所述函数的关键位置处是否出现故障,包括:将获取的全局监控标识和所述函数的关键位置处定义的全局监控标识进行对比;若获取的全局监控标识和所述函数的关键位置处定义的全局监控标识相同,则确定所述函数的关键位置处未出现故障;若获取的全局监控标识和所述函数的关键位置处定义的全局监控标识不相同,则确定所述函数的关键位置处出现故障。优选地,所述关键位置为入口位置、出口位置或重要指令位置。优选地,所述函数的嵌套层数在预设的层数范围内,且所述每个函数中的指令行数在预设的指令行数范围内。优选地,所述方法还包括:确定所述函数的关键位置处出现故障后,进行程序初始化、复位或报警操作。根据上述方法,本专利技术实施例提供了一种程序故障的监控系统,该系统包括:定义及添加模块、第一确定模块、第二确定模块;其中,所述定义及添加模块,用于预先按照功能模块化方式将程序划分为多个函数,为每个函数中的关键位置定义不同的全局监控标识并在每个函数中的关键位置添加相应的全局监控标识;所述第一确定模块,用于在所述程序的运行过程中,检测执行到函数的关键位置时确定是否获取到全局监控标识;所述第二确定模块,用于在所述第一确定模块确定获取到全局监控标识时,根据获取的全局监控标识和所述函数的关键位置处定义的全局监控标识,确定所述函数的关键位置处是否出现故障;在所述第一确定模块确定未获取到全局监控标识时,确定所述函数的关键位置处出现故障。优选地,所述第二确定模块具体用于:将获取的全局监控标识和所述函数的关键位置处定义的全局监控标识进行对比;若获取的全局监控标识和所述函数的关键位置处定义的全局监控标识相同,则确定所述函数的关键位置处未出现故障;若获取的全局监控标识和所述函数的关键位置处定义的全局监控标识不相同,则确定所述函数的关键位置处出现故障。优选地,所述关键位置为入口位置、出口位置或重要指令位置。优选地,所述函数的嵌套层数在预设的层数范围内,且所述每个函数中的指令行数在预设的指令行数范围内。优选地,所述系统还包括:故障处理模块,用于在所述第二确定模块确定所述函数的关键位置处出现故障后,进行程序初始化、复位或报警操作。综上所述,本专利技术提供的程序故障的监控方法及系统,包括:预先按照功能模块化方式将程序划分为多个函数,为每个函数中的关键位置定义不同的全局监控标识并在每个函数中的关键位置添加相应的全局监控标识;在所述程序的运行过程中,检测执行到函数的关键位置时确定是否获取到全局监控标识;若获取到全局监控标识,则根据获取的全局监控标识和所述函数的关键位置处定义的全局监控标识,确定所述函数的关键位置处是否出现故障;若未获取到全局监控标识,则确定所述函数的关键位置处出现故障。如此,本专利技术实施例中预先为每个函数中的关键位置定义不同的全局监控标识并在每个函数中的关键位置添加相应的全局监控标识;在所述程序的运行过程中,检测执行到函数的关键位置时根据获取的全局监控标识及所述函数的关键位置处定义的全局监控标识,能够及时、准确地确定所述函数的关键位置处是否出现故障,从而快速地进行故障处理,以避免程序故障而导致严重的后果。附图说明图1显示为本专利技术的程序故障的监控方法的流程示意图;图2显示为本专利技术的程序故障的监控系统的组成结构示意图;图3显示为本专利技术的实施例一中程序故障的监控示意图;图4显示为本专利技术的实施例二中程序故障的监控示意图;图5显示为本专利技术的实施例三中程序故障的监控示意图。具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。本专利技术实施例中,预先按照功能模块化方式将程序划分为多个函数,为每个函数中的关键位置定义不同的全局监控标识并在每个函数中的关键位置添加相应的全局监控标识;在所述程序的运行过程中,检测执行到函数的关键位置时确定是否获取到全局监控标识;若获取到全局监控标识,则根据获取的全局监控标识和所述函数的关键位置处定义的全局监控标识,确定所述函数的关键位置处是否出现故障;若未获取到全局监控标识,则确定所述函数的关键位置处出现故障。下面结合附图及具体实施例对本专利技术做进一步详细的说明。本专利技术实施例提出了一种程序故障的监控方法,如图1所示,该方法包括:步骤S100:预先按照功能模块化方式将程序划分为多个函数,为每个函数中的关键位置定义不同的全局监控标识并在每个函数中的关键位置添加相应的全局监控标识。具体的,预先按照功能模块化方式将程序划分为多个函数,即每个函数实现的功能不同,具体可以按照功能模本文档来自技高网...

【技术保护点】
一种程序故障的监控方法,其特征在于,预先按照功能模块化方式将程序划分为多个函数,为每个函数中的关键位置定义不同的全局监控标识并在每个函数中的关键位置添加相应的全局监控标识;所述方法还包括:在所述程序的运行过程中,检测执行到函数的关键位置时确定是否获取到全局监控标识;若获取到全局监控标识,则根据获取的全局监控标识和所述函数的关键位置处定义的全局监控标识,确定所述函数的关键位置处是否出现故障;若未获取到全局监控标识,则确定所述函数的关键位置处出现故障。

【技术特征摘要】
1.一种程序故障的监控方法,其特征在于,预先按照功能模块化方式将程序划分为多个函数,为每个函数中的关键位置定义不同的全局监控标识并在每个函数中的关键位置添加相应的全局监控标识;所述方法还包括:在所述程序的运行过程中,检测执行到函数的关键位置时确定是否获取到全局监控标识;若获取到全局监控标识,则根据获取的全局监控标识和所述函数的关键位置处定义的全局监控标识,确定所述函数的关键位置处是否出现故障;若未获取到全局监控标识,则确定所述函数的关键位置处出现故障。2.根据权利要求1所述的方法,其特征在于,所述根据获取的全局监控标识和所述函数的关键位置处定义的全局监控标识,确定所述函数的关键位置处是否出现故障,包括:将获取的全局监控标识和所述函数的关键位置处定义的全局监控标识进行对比;若获取的全局监控标识和所述函数的关键位置处定义的全局监控标识相同,则确定所述函数的关键位置处未出现故障;若获取的全局监控标识和所述函数的关键位置处定义的全局监控标识不相同,则确定所述函数的关键位置处出现故障。3.根据权利要求1所述的方法,其特征在于,所述关键位置为入口位置、出口位置或重要指令位置。4.根据权利要求1至3任一项所述的方法,其特征在于,所述函数的嵌套层数在预设的层数范围内,且所述每个函数中的指令行数在预设的指令行数范围内。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:确定所述函数的关键位置处出现故障后,进行程序初始化、复位或报警操作。6.一种程序故障的监控系统,其特征在于,所述系统包括:...

【专利技术属性】
技术研发人员:梁伟成黄云彪聂绍忠
申请(专利权)人:重庆四联测控技术有限公司
类型:发明
国别省市:重庆;50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1