Mandato GOTO LABEL

El mandato GOTO LABEL hace que z/OS Debugger reanude la ejecución del programa en la etiqueta de sentencia especificada. La etiqueta especificada debe estar en el mismo bloque. Si desea que z/OS Debugger le devuelva el control en la ubicación de destino, asegúrese de que haya un punto de interrupción en esa ubicación.

Leer el esquema de sintaxisOmitir el esquema de sintaxis visualGOTOGOTOLABELstatement_label'statement_label';
etiqueta_sentencia
Una etiqueta de sentencia válida en el programa de ejecución actual o, en PL/I, una variable de etiqueta.

Notas de uso

  • Para COBOL, si se ha emitido un mandato GOTO LABEL y la etiqueta especificada contiene una sentencia EXIT, los resultados pueden ser impredecibles como una terminación anómala debido a que puede que no se haya especificado la sentencia EXIT en una ubicación de retorno.
  • Puede utilizar el mandato GOTO si SET WARNING se establece en OFF y el nivel de tiempo de ejecución permite GOTO sin la habilitación del compilador para los programas siguientes:
    • Un programa COBOL compilado sin enganches insertados por el compilador y con optimización, si ha compilado con las subopciones NOEJPD de la opción de compilador TEST
    • Inicio del cambioUn programa compilado con Enterprise COBOL para z/OS Versión 5 o posterior y optimizado por Optimizador binario automático para z/OSFin del cambio
    El uso de GOTO en este caso puede provocar comportamientos impredecibles, incluidas las terminaciones anómalas, cuando se ejecuta o se sigue el mandato GOTO. Puede obtener el mejor comportamiento del mandato GOTO en programas que se compilan con las opciones OPT y TEST(NOEJPD) en cualquiera de las situaciones siguientes:
    • Cuando el destino del mandato GOTO o JUMPTO es un nombre de párrafo o un nombre de sección (etiqueta).
    • Cuando el destino del mandato GOTO o JUMPTO es la primera sentencia del párrafo o sección.
    Puede obtener el mejor comportamiento, especialmente si las sentencias son destinos de sentencias COBOL PERFORM o GOTO en el programa COBOL. Consulte Mandato SET WARNING (C, C++, COBOL y PL/I).
  • Utilice la sintaxis de etiqueta_sentencia escrita entre apóstrofos (') solamente para programas LangX COBOL. No está soportada en ningún otro lenguaje de programación.
  • En PL/I, se permiten las acciones GOTO fuera de bloque. Sin embargo, puede que necesite una calificación.
  • La palabra clave LABEL es opcional cuando el destino etiqueta_sentencia no es numérico o si se ha calificado (si la etiqueta real era o no un valor no numérico).
  • Una etiqueta_sentencia COBOL puede tener una de las formas siguientes:
    • name

      Este formato se puede utilizar en COBOL para hacer referencia a un nombre de sección o para un nombre de párrafo COBOL que no esté en una sección o que esté sólo en una sección del bloque.

    • name1 OF name2 o name1 IN name2

      Este formato se tiene que utilizar para cualquier referencia a un párrafo COBOL (name1) que esté dentro de una sección (name2), si el mismo nombre también está en otras secciones del mismo bloque. Puede especificar OF o IN, pero z/OS Debugger siempre utiliza OF para la salida.

    Cualquiera de los dos formatos puede llevar como prefijo el bloque habitual, la unidad de compilación y los calificadores del módulo de carga.

  • Para C, para poder utilizar el mandato GOTO LABEL, debe compilar el programa de una de estas formas:
    • Con la subopción PATH o ALL y la subopción SYM de la opción del compilador TEST.
    • Con la subopción PATH o ALL y la subopción SYM de la opción del compilador DEBUG.
    No hay restricciones para la utilización de etiquetas con el mandato GOTO LABEL.
  • Para C++, para poder utilizar el mandato GOTO LABEL, debe compilar el programa de una de estas formas:
    • Con la opción del compilador TEST.
    • Con la subopción PATH o ALL y la subopción SYM de la opción del compilador DEBUG.
    No hay restricciones para la utilización de etiquetas con el mandato GOTO LABEL.
  • Para programas COBOL, puede utilizar el mandato GOTO LABEL si compila el programa con las subopciones y los compiladores siguientes:
    • La subopción HOOK de la opción del compilador TEST con Enterprise COBOL for z/OS, versión 4
    • La subopción PATH o ALL y la subopción SYM de la opción del compilador TEST con los compiladores siguientes:
      • Enterprise COBOL para z/OS y OS/390, Versión 3
      • COBOL for OS/390 & VM, Versión 2
    • Para Enterprise COBOL for z/OS versión 5, los programas siempre se compilan sin ganchos insertados por el compilador. Si está utilizando la opción de compilador TEST en combinación con cualquier nivel de la opción de compilador OPT, se recomienda utilizar la subopción EJPD de la opción de compilador TEST.
    La etiqueta puede adoptar una de estas formas:
    • name, donde name es un nombre de sección, o el nombre de un párrafo que no está en una sección o que está en una sola sección del bloque.
    • name1 OF name2 o name1 IN name2, siendo name1 un duplicado de uno o más párrafos en una o más secciones del bloque. Puede utilizar OF o IN, pero z/OS Debugger siempre mostrará OF en el registro.
  • Para PL/I, puede utilizar GOTO LABEL solamente si ha compilado el programa con la subopción PATH o ALL y la subopción SYM de la opción del compilador TEST. No hay restricciones para utilizar etiquetas con GOTO LABEL y las variables de etiqueta están soportadas.
  • GOTO LABEL no está disponible al depurar programas Enterprise PL/I.
  • No se puede utilizar el mandato GOTO LABEL mientras se reproducen los pasos registrados utilizando los mandatos PLAYBACK.
  • No puede utilizar el mandato GOTO LABEL mientras depura un programa COBOL optimizado.
  • Este mandato no se puede utilizar si se ha detenido en un punto de interrupción APPEARANCE, un punto de interrupción AT LOAD o un punto de interrupción AT DELETE.

Ejemplos

  • Ir a la constante de etiqueta laba en el bloque suba del programa prog1.
    GOTO prog1:>suba:>laba;
  • Ir a la constante de etiqueta para OF sect1. El valor de lenguaje de programación actual es COBOL.
    GOTO LABEL para OF sect1;

Consulte los temas siguientes para obtener más información relacionada con el material descrito en este tema.

  • Tareas relacionadas
  • IBM® z/OS Debugger User's Guide
  • Referencias relacionadas
  • etiqueta_sentencia