简体中文
English 简体中文 繁體中文
Methodox 首页

调试

Routine 或 Events 图的运行可以在任何语句之前停下来,供你查看,然后逐条语句地执行。这仅适用于分步运行的图;Flows 或 Function 图没有可以在其间停下的步骤,它们的运行从不会暂停。

设置断点

选中一条语句(带有执行引脚的节点,例如 Print Line),然后按 F9。其标题左侧会出现一个红点,状态栏显示 Set breakpoint on Print Line。再按一次 F9 即可清除断点。节点 Properties 中的 Breakpoint 开关作用相同。断点会随文档一起保存,与任何编辑一样,设置断点也是撤消历史中的一步。

运行到断点

按 F5。当运行可以暂停时,画布周围会出现一个红框。运行会在带断点的节点之前停止(该节点尚未运行),并且:

  • 该节点带有粗的琥珀色边框,显示 paused,并被移到视图中央并选中;
  • 工具栏上的 Run 显示为 Stop,Properties 面板切换到 Debug 视图;
  • 状态栏会显示该节点及其所在的图:Paused at Print Line in Graph - F5 continues, F10 steps over, F11 steps into, Shift+F11 steps out, Shift+F5 stops。

在断点处暂停的运行:画布周围的红框、琥珀色的已暂停节点,以及显示调用堆栈和值的 Debug 视图

查看当前位置

Debug 视图从上到下依次为:

  • Continue、Pause、Stop、Step over、Step into 和 Step out。
  • Paused,以及节点和图,并提醒该节点尚未运行。
  • Call stack(调用堆栈):运行当前所在的每个图各占一行,最内层的排在最前,例如 Graph · Print Line, inside For。单击某一行可查看该图,其中运行所在的语句会被标出。
  • Locals:本轮已运行的每个节点,每个引脚占一行:[In] 表示传入的内容,[Out] 表示传出的内容,例如 For 的 [In] End 2 和 [Out] Current Value 0。值尚未计算出来的引脚显示 no value yet。单击某一行可查看完整的值:图像显示为图像,表格显示为表格。
  • Data members:图可以访问的每个数据成员的当前值,例如 [Number] Total 2。

控制台停靠栏的 Locals 和 Call stack 标签页列出相同的内容,运行到目前为止打印的内容也已显示在其 Console 标签页中。

继续执行

按键 作用
F5 继续运行到下一个断点或结束
F10 单步跳过:运行当前语句,并在同一个图中的下一条语句之前停止;对另一个 Routine 或 Function 的调用会完整运行
F11 单步进入:在下一条语句之前停止(无论在哪里),会进入该语句调用的 Routine
Shift+F11 单步跳出:执行完当前图,并在调用它的图中停下
Shift+F5 停止运行

Debug 视图上的 Pause 会在正在进行的运行的下一条语句之前将其停下,这是在没有断点的情况下进入长循环的方法。暂停时按 F9,可以为本次运行的剩余部分设置或清除断点。

语句失败时

失败的语句(例如文件不存在、截取文本超出了末尾)会使运行在该处暂停,无论是否有断点。Debug 视图和状态栏会说明失败的原因:Paused at Print Line in Graph, which failed: … - F5 ends the run。查看导致失败的值,然后按 F5 结束运行(控制台会打开并显示该失败,即其最后一行),或按 Shift+F5 停止运行。