GOTO 指令
GOTO 指令會導致 z/OS® Debugger 在指定的陳述式 ID 回復程式執行。 無法縮寫 GOTO 關鍵字。 如果您想要 z/OS Debugger 在目標位置將控制權傳回給您,請確定該位置有岔斷點。
使用注意事項
- 如果 SET WARNING 設為 OFF ,且執行時期層次容許 GOTO 對下列程式不啟用編譯器,則您可以使用 GOTO 指令:
- 如果您使用 TEST 編譯器選項的 NOEJPD 子選項進行編譯,則是在編譯器未插入連結鉤且具有最佳化的情況下進行編譯的 COBOL 程式
- 使用 Enterprise COBOL for z/OS 第 5 版或更新版本編譯並由 Automatic Binary Optimizer for z/OS 最佳化的程式
- 使用 Open XL C/C++ for z/OS 編譯的程式
- 當 GOTO 或 JUMPTO 指令的目標是段落名稱或區段名稱 (標籤) 時。
- 當 GOTO 或 JUMPTO 指令的目標是段落或區段中的第一個陳述式時。
- 當您對解除組合程式進行除錯時,無法使用
GOTO指令。 - 如果在指令清單中指定
GOTO(例如,作為IF指令或WHEN子句的主旨) ,則會忽略清單中的所有後續指令。 - 如果以最小最佳化來編譯程式,則不會限制陳述式
GOTO。 - 當您使用
PLAYBACK指令重播記錄的陳述式時,無法使用GOTO指令。 - 對於 C、C++ 及 PL/I ,編譯器可以在最佳化期間移除陳述式,請使用可在程式執行期間呼叫到的
GOTO指令來指定參照或陳述式。 您可以發出LIST STATEMENT NUMBERS指令來判斷可呼叫到的陳述式。 - PL/I 容許在
PLITEST或CEETEST呼叫的指令清單中使用GOTO。 - 在 PL/I 中,容許區塊外
GOTO。 不過,可能需要資格。 - 若為 COBOL ,
GOTO指令會遵循GOTO陳述式的 COBOL 語言規則。 在下列情況下,您可以使用GOTO指令:- 利用編譯器所插入的連結鉤來編譯的 COBOL 程式。 如果您使用 Enterprise COBOL for z/OS第 4 版,請使用
TEST編譯器選項的HOOK子選項來編譯您的程式。 如果您使用下列任何編譯器,請使用PATH或ALL子選項及TEST編譯器選項的SYM子選項來編譯您的程式:- Enterprise COBOL for z/OS and OS/390®第 3 版
- COBOL for OS/390 & VM第 2 版
- 由編譯器在未插入連結鉤且未最佳化的情況下進行編譯的 COBOL 程式。 如果您使用 Enterprise COBOL for z/OS第 4 版,請使用
TEST編譯器選項的NOHOOK子選項來編譯您的程式。 如果您使用下列任何編譯器,請使用TEST編譯器選項的NONE子選項來編譯您的程式:- Enterprise COBOL for z/OS and OS/3903.2 版或更新版本
- Enterprise COBOL for z/OS and OS/3903.1 版,已安裝 APAR PQ63235
- COBOL for OS/390 & VM2.2 版
- COBOL for OS/390 & VM2.1 版,已安裝 APAR PQ63234
- 由編譯器插入且具有最佳化的不含連結鉤編譯的 COBOL 程式。 您必須使用 Enterprise COBOL for z/OS第 4 版來編譯您的程式,並指定
TEST編譯器選項的EJPD和NOHOOK子選項。 指定EJPD子選項可能會導致失去一些最佳化。 - 若為 Enterprise COBOL for z/OS 第 5 版,程式一律在沒有編譯器插入連結鉤的情況下進行編譯。 如果您將 TEST 編譯器選項與 OPT 編譯器選項的任何層次一起使用,建議您使用 TEST 編譯器選項的 EJPD 子選項。
- 利用編譯器所插入的連結鉤來編譯的 COBOL 程式。 如果您使用 Enterprise COBOL for z/OS第 4 版,請使用
- 如果您在 AT 外觀岔斷點、AT LOAD 岔斷點或 AT DELETE 岔斷點停止,則無法使用此指令。
範例
- 在陳述式 23 回復執行,其中陳述式 23 位於目前作用中的區塊中。
如果陳述式 23 沒有岔斷點,則 z/OS Debugger 會從陳述式 23 執行,直到命中岔斷點為止。GOTO 23; - 在陳述式 45 中回復執行,其中陳述式 45 位於目前作用中的區塊中。
AT 45 GOTO 45
如需本主題所討論資料的相關資訊,請參閱下列主題。
- 相關作業
- IBM® z/OS Debugger 使用手冊
- 相關參照
- 陳述式 ID
