GOTO 命令

GOTO 命令使 z/OS® Debugger 以指定的语句标识恢复程序执行。 GOTO 关键字不能缩写。 如果您希望 z/OS Debugger 在目标位置向您返回控制权,请确保该位置存在断点。

读取语法图跳过可视语法图GOTOGOTOstatement_id;

使用说明

  • 如果 SET WARNING 设置为 OFF ,并且运行时级别允许 GOTO 而不启用以下程序的编译器,那么可以使用 GOTO 命令:
    • 如果使用 TEST 编译器选项的 NOEJPD 子选项进行了编译,那么将编译 COBOL 程序,而不会由编译器插入挂钩并进行优化
    • 使用 Enterprise COBOL for z/OS V 5 或更高版本编译并由 Automatic Binary Optimizer for z/OS 优化的程序
    • 使用 Open XL C/C++ for z/OS 编译的程序
    在这种情况下使用 GOTO 可能会导致在执行或遵循 GOTO 命令时发生不可预测的行为 (包括异常终止)。 在以下任一情况下,可以在使用 OPT 和 TEST (NOEJPD) 选项编译的程序中获取 GOTO 命令的最佳行为:
    • 当 GOTO 或 JUMPTO 命令的目标是段名称或节名称(标号)时。
    • 当 GOTO 或 JUMPTO 命令的目标是段或节中的第一个语句时。
    您可以获得最佳行为,尤其是当这些语句是 COBOL 程序中的 COBOL 语句 PERFORM 或 GOTO 的目标时。 请参阅 SET WARNING 命令 (C , C + + , COBOL 和 PL/I)
  • 在调试已拆解的程序时,不能使用 GOTO 命令。
  • 如果在命令列表中指定了 GOTO(例如,作为 IF 命令或 WHEN 子句的主题),那么将忽略该列表中的所有后续命令。
  • 如果使用最小优化编译程序,那么语句 GOTO不受限制。
  • 当您使用 PLAYBACK 命令重放记录的语句时,无法使用 GOTO 命令。
  • 对于 C , C++ 和 PL/I ,编译器可以在优化期间除去语句,使用 GOTO 命令指定可以在程序执行期间访问的引用或语句。 您可以发出 LIST STATEMENT NUMBERS 命令以确定可访问的语句。
  • PL/I 允许在调用 PLITESTCEETEST时在命令列表中使用 GOTO
  • 在 PL/I 中,允许块外 GOTO。 但是,可能需要资格。
  • 对于 COBOL , GOTO 命令遵循 GOTO 语句的 COBOL 语言规则。 在以下情况下,可以使用 GOTO 命令:
    • 编译器在编译时插入了挂钩的 COBOL 程序。 如果要使用 Enterprise COBOL for z/OSV 4 ,请使用 TEST 编译器选项的 HOOK 子选项来编译程序。 如果要使用以下任何编译器,请使用 PATHALL 子选项以及 TEST 编译器选项的 SYM 子选项来编译程序:
      • Enterprise COBOL for z/OS and OS/390®V 3
      • COBOL for OS/390 & VM,版本 2
    • 编译器在编译时未插入挂钩且未进行优化的 COBOL 程序。 如果要使用 Enterprise COBOL for z/OSV 4 ,请使用 TEST 编译器选项的 NOHOOK 子选项来编译程序。 如果您正在使用以下任何编译器,请使用 TEST 编译器选项的 NONE 子选项来编译程序:
      • Enterprise COBOL for z/OS and OS/390V 3 Release 2 或更高版本
      • Enterprise COBOL for z/OS and OS/390V 3 Release 1 ,已安装 APAR PQ63235
      • COBOL for OS/390 & VMV 2 Release 2
      • COBOL for OS/390 & VMV 2 Release 1 ,已安装 APAR PQ63234
    • 编译器在编译时未插入挂钩但进行了优化的 COBOL 程序。 必须使用 Enterprise COBOL for z/OSV 4 编译程序,并指定 TEST 编译器选项的 EJPDNOHOOK 子选项。 指定 EJPD 子选项可能会导致优化有一些损失。
    • 对于 Enterprise COBOL for z/OS 版本 5 ,程序始终在不由编译器插入挂钩的情况下进行编译。 如果将 TEST 编译器选项与任何级别的 OPT 编译器选项结合使用,那么建议使用 TEST 编译器选项的 EJPD 子选项。
  • 如果在 AT APPEARANCE 断点、AT LOAD 断点或 AT DELETE 断点处停止,那么无法使用此命令。

示例

  • 在语句 23 处恢复执行,其中语句 23 位于当前活动块中。
    GOTO 23;
    如果语句 23 没有断点,那么 z/OS Debugger 将从语句 23 运行,直到命中断点为止。
  • 在语句 45 处恢复执行,其中语句 45 位于当前活动块中。
    AT 45
    GOTO 45

请参阅以下主题,以获取与本主题中讨论的材料相关的更多信息。

  • 相关任务
  • IBM® z/OS Debugger 用户指南
  • 相关参考
  • statement_id