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.
- 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 LABELy 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
Un programa compilado con Enterprise COBOL para z/OS Versión 5 o posterior y optimizado por Optimizador binario automático para z/OS
- 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.
- 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
GOTOfuera de bloque. Sin embargo, puede que necesite una calificación. - La palabra clave
LABELes 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:
nameEste 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 name2oname1 IN name2Este 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 especificarOFoIN, pero z/OS Debugger siempre utilizaOFpara 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
PATHoALLy la subopciónSYMde la opción del compiladorTEST. - Con la subopción
PATHoALLy la subopciónSYMde la opción del compiladorDEBUG.
GOTO LABEL. - Con la subopción
- 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
PATHoALLy la subopciónSYMde la opción del compiladorDEBUG.
GOTO LABEL. - Con la opción del compilador
- Para programas COBOL, puede utilizar el mandato
GOTO LABELsi compila el programa con las subopciones y los compiladores siguientes:- La subopción
HOOKde la opción del compiladorTESTcon Enterprise COBOL for z/OS, versión 4 - La subopción
PATHoALLy la subopciónSYMde la opción del compiladorTESTcon 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.
name, dondenamees 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 name2oname1 IN name2, siendoname1un duplicado de uno o más párrafos en una o más secciones del bloque. Puede utilizarOFoIN, pero z/OS Debugger siempre mostraráOFen el registro.
- La subopción
- Para PL/I, puede utilizar
GOTO LABELsolamente si ha compilado el programa con la subopciónPATHoALLy la subopciónSYMde la opción del compiladorTEST. No hay restricciones para utilizar etiquetas conGOTO LABELy las variables de etiqueta están soportadas. GOTO LABELno está disponible al depurar programas Enterprise PL/I.- No se puede utilizar el mandato
GOTO LABELmientras se reproducen los pasos registrados utilizando los mandatosPLAYBACK. - No puede utilizar el mandato
GOTO LABELmientras 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
labaen el bloquesubadel programaprog1.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
