前页 后页

调试可执行状态机的执行

即使在生成代码之后,创建可执行StateMachines也会带来好处。使用执行分析器, Enterprise Architect可以连接到生成的代码。结果,您可以直观地调试和验证代码的正确行为。由StateMachines生成的完全相同的代码,由仿真演示,并最终并入现实系统中。

调试StateMachine

能够调试可执行状态机具有其他好处,例如能够:

  • 中断模拟的执行以及所有正在执行的StateMachines
  • 查看模拟中涉及的每个StateMachine实例的原始状态
  • 在任何时间查看源代码和调用堆栈
  • 通过在源代码行上放置跟踪点来跟踪有关执行状态的其他信息
  • 通过使用动作点和断点(例如,出错时中断)来控制执行
  • 诊断由于代码或建模更改引起的行为更改
如果成功生成,构建并运行了一个可执行状态机,则可以对其进行调试!在生成过程中创建的分析器脚本已经配置为提供调试。要开始调试,只需使用Simulation Control开始运行Executable StateMachine。但是,根据所调试行为的性质,我们可能会首先设置一些断点。

在状态转换时中断执行

像任何调试器一样,我们可以使用断点在代码的某个点检查执行中的StateMachine。在图表或浏览器窗口中找到感兴趣的类,然后按F12键查看源代码。根据生成期间使用的命名约定,很容易找到用于状态转换的代码。如果要在特定的过渡处中断,请在编辑器中找到过渡功能,并通过单击函数中某行的左空白处来放置断点标记。当您运行Executable StateMachine时,调试器将在此过渡时停止,您将能够查看所涉及的任何StateMachines的变量的原始状态。

有条件地中断执行

每个断点可以包含一个条件和一个trace语句。当遇到断点并且条件评估为True时,执行将停止。否则,执行将照常继续。您可以使用原始变量的名称组成条件,并使用标准的相等操作数对其进行比较:<> => = <=。例如:

(this.m_nCount> 100)和(this.m_ntype == 1)

要将条件添加到已设置的断点,请在断点上单击鼠标右键,然后选择“属性”。通过在按住Ctrl键的同时单击断点,可以快速编辑属性。

追踪辅助信息

例如,在effect中,可以使用TRACE子句从StateMachine自身中跟踪信息。调试还提供了称为跟踪点的跟踪功能。这些只是断点,遇到断点时不会打印中断语句,而不会中断它们。输出显示在“模拟控制”窗口中。它们可以用作诊断辅助工具,以显示和证明事件的顺序以及实例更改状态的顺序。

查看呼叫堆栈

每当遇到断点时,都可以从分析器菜单中使用“调用堆栈”。使用它来确定执行执行的顺序。