前页 | 后页 |
调试可执行状态机的执行
即使在生成代码之后,创建可执行StateMachines也会带来好处。使用执行分析器, Enterprise Architect可以连接到生成的代码。结果,您可以直观地调试和验证代码的正确行为。由StateMachines生成的完全相同的代码,由仿真演示,并最终并入现实系统中。
调试StateMachine
能够调试可执行状态机具有其他好处,例如能够:
- 中断模拟的执行以及所有正在执行的StateMachines
- 查看模拟中涉及的每个StateMachine实例的原始状态
- 在任何时间查看源代码和调用堆栈
- 通过在源代码行上放置跟踪点来跟踪有关执行状态的其他信息
- 通过使用动作点和断点(例如,出错时中断)来控制执行
- 诊断由于代码或建模更改引起的行为更改
在状态转换时中断执行
像任何调试器一样,我们可以使用断点在代码的某个点检查执行中的StateMachine。在图表或浏览器窗口中找到感兴趣的类,然后按F12键查看源代码。根据生成期间使用的命名约定,很容易找到用于状态转换的代码。如果要在特定的过渡处中断,请在编辑器中找到过渡功能,并通过单击函数中某行的左空白处来放置断点标记。当您运行Executable StateMachine时,调试器将在此过渡时停止,您将能够查看所涉及的任何StateMachines的变量的原始状态。
有条件地中断执行
每个断点可以包含一个条件和一个trace语句。当遇到断点并且条件评估为True时,执行将停止。否则,执行将照常继续。您可以使用原始变量的名称组成条件,并使用标准的相等操作数对其进行比较:<> => = <=。例如:
(this.m_nCount> 100)和(this.m_ntype == 1)
要将条件添加到已设置的断点,请在断点上单击鼠标右键,然后选择“属性”。通过在按住Ctrl键的同时单击断点,可以快速编辑属性。
追踪辅助信息
例如,在effect中,可以使用TRACE子句从StateMachine自身中跟踪信息。调试还提供了称为跟踪点的跟踪功能。这些只是断点,遇到断点时不会打印中断语句,而不会中断它们。输出显示在“模拟控制”窗口中。它们可以用作诊断辅助工具,以显示和证明事件的顺序以及实例更改状态的顺序。
查看呼叫堆栈
每当遇到断点时,都可以从分析器菜单中使用“调用堆栈”。使用它来确定执行执行的顺序。