[发明专利]一种程序执行顺序诊断方法与系统有效
申请号: | 201510043430.6 | 申请日: | 2015-01-28 |
公开(公告)号: | CN104572472B | 公开(公告)日: | 2018-03-06 |
发明(设计)人: | 吕晓昱;谢之波;姚琥;张虎;叶馥郁 | 申请(专利权)人: | 中国农业银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 王宝筠 |
地址: | 100005 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 执行 顺序 诊断 方法 系统 | ||
技术领域
本发明涉及故障诊断技术领域,特别是涉及一种程序执行顺序诊断方法与系统。
背景技术
软件程序在运行的过程中可能会出现内部程序执行顺序异常的问题,当软件程序的程序执行顺序异常时,可能会造成系统不受外界电磁场干扰而使程序跑飞,使程序的正常运行被打断,或者由于软件自身设计问题出现内部越界、堆栈溢出、死锁等因素造成程序崩溃,这些都将可能导致软件程序在运行期出现不可预知的结果,对系统的确定性和安全性产生危害,为了避免这一危害的产生,需要系统能够诊断出程序的程序执行顺序是否异常。
目前,通常采用软件来对被诊断程序的程序执行顺序实施诊断,通过诊断软件监视被诊断程序的程序执行顺序,来判断被诊断程序的程序执行顺序是否异常,诊断软件可以检测到被诊断程序目前的执行顺序,通过检测得到的被诊断程序目前的执行顺序与正确的程序执行顺序相对比,来诊断被诊断程序各个阶段的运行顺序是否正确。如,诊断软件可检测到被诊断程序目前的执行顺序为启动后先运行第一阶段,第一阶段后运行第三阶段,而正确的程序执行顺序应该为启动后先运行第一阶段,第一阶段后运行第二阶段,由此,可以判断被诊断程序执行顺序出现问题。
由诊断软件监视被诊断程序的执行逻辑,来判断被诊断程序的程序执行顺序是否异常,虽然功能灵活,但是,由于诊断软件依赖系统主时钟,当系统主时钟出现错误的情况下,诊断软件将出现共因故障;另一方面,由于诊断软件其自身也为软件,其在处理器内运行时,也可能会出现内部程序执行顺序异常、程序崩溃等问题,若诊断软件自身出现异常,则无法正确地诊断出被诊断软件的程序顺序是否异常,使得程序执行顺序的诊断结果可靠性较低。
发明内容
有鉴于此,本发明实施例提供一种软硬件相结合的程序执行顺序诊断方法及系统,以解决现有技术中采用诊断软件来对被诊断程序的程序执行顺序进行诊断,而造成的诊断结果的可靠性较低的问题。
为实现上述目的,本发明实施例提供如下技术方案:
一种程序执行顺序诊断方法,基于独立时钟的可编程逻辑器件,包括:
获取处理器检测到的被诊断程序的下一程序阶段标志;
判断是否在预定的时间窗内获取正确的下一程序阶段标志,若不是,判定被诊断程序执行顺序异常。
其中,所述判断是否在预定时间窗内获取正确的下一程序阶段标志包括:
根据预先设置的各个程序阶段对应的执行时间窗判断是否为在下一程序阶段对应的执行时间窗内获取到下一程序阶段标志,若不是,则被诊断程序执行顺序异常。
和/或,根据预先设置的程序执行顺序逻辑关系判断程序执行顺序逻辑是否正确,若不正确,则判定被诊断程序执行顺序异常。
其中,所述根据预先设置的程序执行顺序逻辑关系判断程序执行顺序逻辑是否正确包括:
确定当前程序阶段标志,根据当前程序阶段标志和预先设置的程序执行顺序逻辑关系,确定正确的下一程序阶段标志;
判断获取的下一程序阶段标志和正确的下一程序阶段标志是否相同,若不同,则判定程序执行顺序逻辑不正确。
其中,所述程序执行顺序诊断方法还包括:
获取处理器检测到的被诊断程序的终止标志;若获取到终止标志,则停止诊断。
其中,获取系统处理器检测到的下一程序阶段标志后还包括:
确定已获取的程序阶段标志的数目;
判断已获取的程序阶段标志的数目是否大于预先设置的需检测的总阶段数,若大于,则停止诊断。
一种程序执行顺序诊断系统,包括获取模块和判断模块,其中,
所述获取模块,用于获取处理器检测到的被诊断程序的下一程序阶段标志;
所述判断模块,用于判断是否在预定时间窗内获取正确的下一程序阶段标志,若不是,判定被诊断程序执行顺序异常。
其中,所述程序执行顺序诊断系统还包括:
执行时间窗设置模块,用于设置各个程序阶段对应的执行时间窗;
其中,所述判断模块包括:
执行时间检测单元,用于根据预先设置的各个程序阶段对应的执行时间窗判断是否为在下一程序阶段对应的执行时间窗内获取到下一程序阶段标志,若不是,则判定被诊断程序执行顺序异常。
其中,所述程序执行顺序诊断系统还包括:
逻辑设置模块,用于设置程序执行顺序逻辑关系;
其中,所述判断模块包括:
逻辑检测单元,用于根据预先设置的程序执行顺序逻辑关系判断程序执行顺序逻辑是否正确,若不正确,则判定被诊断程序执行顺序异常。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业银行股份有限公司,未经中国农业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510043430.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据存取方法和数据存取装置
- 下一篇:移动终端的诊断方法、装置和系统