CN102096634A - 基于事件级的机载分布式节点调试方法 - Google Patents
基于事件级的机载分布式节点调试方法 Download PDFInfo
- Publication number
- CN102096634A CN102096634A CN2010106200412A CN201010620041A CN102096634A CN 102096634 A CN102096634 A CN 102096634A CN 2010106200412 A CN2010106200412 A CN 2010106200412A CN 201010620041 A CN201010620041 A CN 201010620041A CN 102096634 A CN102096634 A CN 102096634A
- Authority
- CN
- China
- Prior art keywords
- incident
- debugging
- node
- breakpoint
- message
- 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.)
- Pending
Links
Images
Abstract
本发明基于事件级的机载分布式节点调试方法,包括以下步骤:1)构建事件断点;2)调试式启动系统;3)将系统切换到传统调试模式下进行问题源诊断;4)监测式调试;5)重演调试:如果故障不是由传播引起,则结束重演调试。本发明解决了传统的调试系统复杂、缺少故障重演、系统的空间和时间开销较大的技术问题,本发明这种基于事件的调试方式更加注重各个节点之间的交互行为而减少了对程序内部状态的关注。
Description
技术领域
本发明涉及航电系统机载分布式节点的综合化集成调试和重演,为用户提供针对于特定系统事件的调试方法。
技术背景
基于符号模型的传统调试方法,在对分布式软件进行调试的过程中,存在以下明显不足:首先缺少事件级单步调试方法,传统调试方法在单步执行时仍采用指令级单步操作,粒度较细会浪费用户的大量时间,增加了系统调试的复杂性;其次缺少故障重演手段,对不易复现的错误,系统执行过程将不可复现,无法进行故障诊断;最后基于事件模型的传统调试方法在实现监测的过程中,对系统的空间和时间的开销较大,会影响系统内各任务正常的执行时序,产生严重的探针效应。目前综合化航电系统机载分布式软件调试技术还未成熟,缺少帮助用户有效掌握系统运行行为的调试方法。
发明内容
为了解决传统的调试系统复杂、缺少故障重演、系统的空间和时间开销较大的技术问题,本发明提供一种基于事件级机载分布式节点调试方法。
本发明的技术解决方案:
基于事件级的机载分布式节点调试方法,其特殊之处在于:包括以下步骤:
1】构建事件断点:
在节点通信事件发生时,构建事件断点,所述事件断点为N个,事件断点依照事件断点发生的先后顺序依次排序,其中最早发生的事件断点记为1;
2】调试式启动系统:
2.1】设置调试模式为事件级调试;
2.2】当系统运行至事发断点时,调试器将系统中的事发断点的相关节点挂起;所述事发断点属于事件断点中一个,依次为1-N,
2.3】通过调试器获取步骤2.2】中挂起节点的节点调试信息,所述调试信息包括节点内存、节点内变量信息;
2.4】根据节点调试信息,进行故障诊断:
如果节点调试信息没有问题,则执行步骤2.1】,事发断点依次加1;
如果节点调试信息存在问题,则执行步骤3】;
3】将系统切换到传统调试模式下进行问题源诊断:
如果问题源不是因为故障传播引起的,则结束调试;
如果问题源是由于故障传播引起的,则执行步骤4】;
4】监测式调试:
4.1】设置调试模式为监测模式,控制被调试程序进入监测调试模式。
4.2】通知各节点上的监测模块启动监测,以分布式启动调试系统;
4.3】通知各节点开始记录接收通信事件,所述接收通信事件包括消息的时间戳、消息源名称以及消息内容;
4.4】当步骤4.3】中接收通信事件为步骤2.2】中的事发断点时,则执行步骤5】
5】重演调试:
5.1】选择步骤4.4】中接收通信事件所对应的相关节点进行重演调试:
5.2】根据步骤5.1】中所选择的相关节点,构建重演事件断点;所述重演事件断点为M个,M小于等于N;
5.3】在脱机内核上启动被重演调试节点,开始事件级调试;
5.3】当系统运行至重演事发断点时,调试器将系统中的事发断点的相关节点挂起;所述重演事发断点记为j,j=1……M;所述重演事发断点为最早发生的重演事发断点;
5.4】通过调试器获取步骤5.3】中挂起节点的节点调试信息,所述调试信息包括节点内存、节点内变量信息;
5.5】根据节点调试信息判断故障发生原因:
如果故障是由传播引起,则执行步骤5.1】,此时重演事发断点加1;
如果故障不是由传播引起,则结束重演调试。
本发明所具有的优点:
1、当调试机载分布式软件时,可以使用上述步骤进行事件级的调试,而不是传统的语句级别的调试。每一个事件的运行相当于传统调试器中每一个语句的运行,但其粒度相比传统调试器要粗,时间更加精确。被调试程序的每一次单步调试相当于一个事件的运行完毕。这种基于事件的调试方式更加注重各个节点之间的交互行为而减少了对程序内部状态的关注。这样也更符合机载分布式软件在集成过程中的调试需求。通过基于事件级的调试和重演方法,可以准确发现可能存在问题的根源,并且定位到该节点,之后该出错节点的调试任务就可以通过对它使用传统调试器单独调试来完成。
2、本发明的目的是提供一个基于事件级的机载分布式节点调试方法。该方法不同于传统的符号级调试方法,重点不是节点内部的进程和进程间的功能正确性的调试,而是机载分布式节点间(即为各模块间或模块内节点间相互作用)正确性的调试。本发明以事件为单位调试机载分布式软件,调试时采用事件断点及事件单步的方式,并提供提高调试效率。
附图说明
图1是本发明整个调试方法流程示意;
图2是本发明事件调试过程流程图;
图3是本发明重演调试过程流程图;
图4是本发明目标机节点通信关系图;
图5是本发明通信时间序列图;
图6是本发明目标机节点调度图;
图7是本发明事件序列图。
具体实施方式
基于事件级的机载分布式软件调试方法实施步骤如下:
步骤A:分布式调试器主控平台部分会建立同各个节点机上的非主控平台的连接,连接后由调试人员启动被调试的分布式应用程序运行,同时各个节点机中的非主控平台将开始接管被调试程序的运行。
步骤B:监测模式运行。
本步骤的实现流程按如下步骤进行:
B1)启动被调试程序,打开监测模块在操作系统中的桩代码监测开关启动监测。
B2)被调试程序在运行过程中发生节点事件时,监测工具对事件类型进行判断,当类型为通信事件或调度事件时,标记并记录该事件。这样的原始事件数据包括:事件发生所在节点,事件发生时间戳以及事件相关详细信息。
B3)监测工具收到主控平台发来的停止监测命令,则停止监测;否则,继续监测。
步骤C:事后分析。
本步骤的实现流程按如下步骤进行:
C1)通过主控平台与非主控平台的代理模块,将B2)步骤中监测工具记录的原始事件数据收集至事后分析工具;
C2)将原始数据重新组织,过滤掉无用信息,最终形成以事件为单位的数据集;
C3)对以事件为单位的数据集在事件历史层次上,分别根据通信事件和调度事件形成节点间通信图和节点调度图,同时形成事件统计表。通信关系图展示各个节点间的通信交互情况,节点运行状态图展示节点的具体调度情况,二者以可视化的方式帮助调试人员理解分布式程序的运行和交互情况,事件统计表则以表格的形式,按时间详细罗列具体的事件信息供调试人员参考;
步骤D:重演调试。
本步骤的实现流程按照如下步骤进行:
D1)监测模式运行完毕之后,根据步骤C的分析,设置需要重演的单个节点;
D2)选择合适的事件记录,设置事件断点;
D3)启动虚拟内核,在仿真环境下进行事件级别调试。重演模块控制下,被调试程序允许以事件为单位进行单步执行,系统运行至第一个事件断点处;
D4)单步执行,查看节点堆栈等调试信息诊断错误,在系统执行过程中,按照时序依次读取C)中记录的该节点输入,模拟分布式系统其它节点对此节点的激励指令;
D5)若在D4)发现是由故障传播引起的故障,则根据C)步骤的分析结果,选择故障传播源节点进行重演调试,然后跳至D1)。
步骤E:若在D4)发现错误,则结束重演调试。
为了充分验证本方法的有效性,实现上述目的,本发明提供了机载分布式软件调试工具重演示例,并以发送目标机节点和接收目标机节点为调试对象:发送目标机节点和接收目标机节点内部功能均已单独完成调试,目标机节点定时向接收目标机节点发送消息。对于调试人员而言,其关注内容为这两个节点的交互行为而不是节点内部行为。首先,启动监测调试模式,收集节点间的事件信息,当节点发生执行序列事件如通信和调度时,事件信息被记录下来。被调试程序在实际运行时和调试阶段时所在平台的操作系统均被插桩,因此在很大程度上消除了探针效应;其次,在监测阶段结束之后,进行事后分析,将收集的数据进行事件历史层次提升为节点间通信图和节点调度图以及事件统计表,对调试人员提供了可视化的辅助信息,调试人员更容易发现隐藏的错误;最后,在重演模式下,对于发送目标机节点和接收目标机节点的通信行为进行单步调试时,以一次通信事件为单位,每次单步的结果是完成了一次通信行为;也可以切换到符号级调试。同时,通过逐个重演各问题节点,将定位真实故障源,大大提高了机载分布式调试的真确性。
在基于ARINC653标准和IMA架构的分布式实时航电系统中,并发、同步以及通信延迟都为系统的执行带来了的不确定性因素,不确定性的出现使原本用于顺序程序的循环调试的传统调试技术如断点、查看、和单步失去了部分确定性和可重复性,分布式系统的故障的准确诊断和调试成为了难题。
本方法通过事件断点提高了对系统调试能力的抽象层次,使系统设计和集成人员摆脱了传统调试只负责各节点内部功能正确性的局限性,能够将所有精力关注机载分布式系统整体的运行过程和关键动作,即系统各节点之间通过的相互作用,共同完成一个系统功能的正确性;另外还通过重演调试,使对那些不易跟踪错误或者因故障传播引起的错误称为可能,同时本方法还提供了与传统调试模式之间的模式切换,很好了兼容了传统调试模式的优点。
Claims (1)
1.基于事件级的机载分布式节点调试方法,其特征在于:包括以下步骤:
1】构建事件断点:
在节点通信事件发生时,构建事件断点,所述事件断点为N个,事件断点依照事件断点发生的先后顺序依次排序,其中最早发生的事件断点记为1;
2】调试式启动系统:
2.1】设置调试模式为事件级调试;
2.2】当系统运行至事发断点时,调试器将系统中的事发断点的相关节点挂起;所述事发断点属于事件断点中一个,依次为1-N,
2.3】通过调试器获取步骤2.2】中挂起节点的节点调试信息,所述调试信息包括节点内存、节点内变量信息;
2.4】根据节点调试信息,进行故障诊断:
如果节点调试信息没有问题,则执行步骤2.1】,事发断点依次加1;
如果节点调试信息存在问题,则执行步骤3】;
3】将系统切换到传统调试模式下进行问题源诊断:
如果问题源不是因为故障传播引起的,则结束调试;
如果问题源是由于故障传播引起的,则执行步骤4】;
4】监测式调试:
4.1】设置调试模式为监测模式,控制被调试程序进入监测调试模式。
4.2】通知各节点上的监测模块启动监测,以分布式启动调试系统;
4.3】通知各节点开始记录接收通信事件,所述接收通信事件包括消息的时间戳、消息源名称以及消息内容;
4.4】当步骤4.3】中接收通信事件为步骤2.2】中的事发断点时,则执行步骤5】
5】重演调试:
5.1】选择步骤4.4】中接收通信事件所对应的相关节点进行重演调试:
5.2】根据步骤5.1】中所选择的相关节点,构建重演事件断点;所述重演事件断点为M个,M小于等于N;
5.3】在脱机内核上启动被重演调试节点,开始事件级调试;
5.3】当系统运行至重演事发断点时,调试器将系统中的事发断点的相关节点挂起;所述重演事发断点记为j,j=1……M;所述重演事发断点为最早发生的重演事发断点;
5.4】通过调试器获取步骤5.3】中挂起节点的节点调试信息,所述调试信息包括节点内存、节点内变量信息;
5.5】根据节点调试信息判断故障发生原因:
如果故障是由传播引起,则执行步骤5.1】,此时重演事发断点加1;
如果故障不是由传播引起,则结束重演调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106200412A CN102096634A (zh) | 2010-12-31 | 2010-12-31 | 基于事件级的机载分布式节点调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106200412A CN102096634A (zh) | 2010-12-31 | 2010-12-31 | 基于事件级的机载分布式节点调试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102096634A true CN102096634A (zh) | 2011-06-15 |
Family
ID=44129736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106200412A Pending CN102096634A (zh) | 2010-12-31 | 2010-12-31 | 基于事件级的机载分布式节点调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102096634A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461521A (zh) * | 2014-11-26 | 2015-03-25 | 北京航空航天大学 | 一种应用程序重放方法及系统 |
CN105553758A (zh) * | 2014-12-15 | 2016-05-04 | 成都科来软件有限公司 | 一种网络性能的监测方法及装置 |
CN106291312A (zh) * | 2015-06-12 | 2017-01-04 | 超威半导体(上海)有限公司 | 一种用于加速芯片仿真和调试的方法和芯片测试系统 |
CN111814951A (zh) * | 2019-04-10 | 2020-10-23 | 国际商业机器公司 | 调试深度神经网络 |
CN113157519A (zh) * | 2021-03-04 | 2021-07-23 | 中国航空工业集团公司西安航空计算技术研究所 | 一种嵌入式计算机系统故障辅助定位架构及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959652A (zh) * | 2005-11-03 | 2007-05-09 | 国际商业机器公司 | 在分布式调试器中调试计算机程序的方法和装置 |
-
2010
- 2010-12-31 CN CN2010106200412A patent/CN102096634A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959652A (zh) * | 2005-11-03 | 2007-05-09 | 国际商业机器公司 | 在分布式调试器中调试计算机程序的方法和装置 |
Non-Patent Citations (2)
Title |
---|
张旻等: "分布式系统监视器的设计与实现", 《微处理机》 * |
李青山等: "分布式调试中基于事件模型的确定性重演策略", 《西安电子科技大学学报》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461521A (zh) * | 2014-11-26 | 2015-03-25 | 北京航空航天大学 | 一种应用程序重放方法及系统 |
CN104461521B (zh) * | 2014-11-26 | 2018-11-13 | 北京航空航天大学 | 一种应用程序重放方法及系统 |
CN105553758A (zh) * | 2014-12-15 | 2016-05-04 | 成都科来软件有限公司 | 一种网络性能的监测方法及装置 |
CN105553758B (zh) * | 2014-12-15 | 2019-01-29 | 成都科来软件有限公司 | 一种网络性能的监测方法及装置 |
CN106291312A (zh) * | 2015-06-12 | 2017-01-04 | 超威半导体(上海)有限公司 | 一种用于加速芯片仿真和调试的方法和芯片测试系统 |
CN111814951A (zh) * | 2019-04-10 | 2020-10-23 | 国际商业机器公司 | 调试深度神经网络 |
CN111814951B (zh) * | 2019-04-10 | 2024-03-26 | 国际商业机器公司 | 调试深度神经网络 |
CN113157519A (zh) * | 2021-03-04 | 2021-07-23 | 中国航空工业集团公司西安航空计算技术研究所 | 一种嵌入式计算机系统故障辅助定位架构及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102175940B (zh) | 一种带保护测试用故障数据模型库的数字化保护测试仪的测试方法 | |
CN102141962B (zh) | 一种安全性分布式测试框架系统及其测试方法 | |
CN107368408A (zh) | 一种面向接口的软件故障注入自动化测试方法 | |
CN102768642B (zh) | 一种基于源码分析的linux内核可靠性评测系统及其方法 | |
CN102096634A (zh) | 基于事件级的机载分布式节点调试方法 | |
CN109541353B (zh) | 配电自动化检测系统 | |
CN101859145B (zh) | 一种快速模拟量/开关量记录测试装置及其测试方法 | |
CN109324601A (zh) | 基于硬件在环的机器人控制器或控制系统的测试平台 | |
zu Hörste et al. | Modelling and simulation of train control systems using Petri nets | |
CN102092477A (zh) | 飞机音频综合系统自动测试与故障诊断装置及方法 | |
CN106327355A (zh) | 一种变电站改扩建工程二次设备仿真调试系统及实现方法 | |
CN108460199B (zh) | Cni建模系统 | |
CN102184749A (zh) | 一种dcs控制柜的自动测试方法 | |
CN104391190A (zh) | 一种用于测量仪器的远程诊断系统及诊断方法 | |
CN105223897A (zh) | 一种铁路车辆电气控制柜测试装置及测试方法 | |
CN112036023B (zh) | 一种发电机变压器组保护装置软件一体化生成系统 | |
CN102541725B (zh) | 一种数控系统功能模块的仿真测试方法 | |
CN111782539A (zh) | 一种基于国产操作系统的测试诊断一体化开发平台 | |
RU2678717C1 (ru) | Способ построения программного комплекса автоматизации и визуализации тестирования встроенного программного обеспечения электронных устройств | |
CN201707604U (zh) | 一种快速模拟量/开关量记录测试装置 | |
CN109710513B (zh) | 一种用于cbtc系统自动化测试的引擎 | |
CN108847714B (zh) | 一种高压直流输电暂态数据录波装置及控制保护装置 | |
CN103425055A (zh) | 一种半虚拟式的控制系统功能测试装置及方法 | |
zu Hörste et al. | Modelling functionality of train control systems using petri nets | |
CN116388381A (zh) | 一种智能变电站监控系统仿真测试装置及测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110615 |