使用 CEETEST 启动 z/OS Debugger

通过使用 CEETEST,您可以从程序中启动 z/OS® Debugger ,并向其发送一串命令。 如果未指定命令字符串,或者命令字符串不足,那么 z/OS Debugger 会提示您输入来自终端的命令或从命令文件中读取这些命令。 此外,您还可以选择接收反馈代码,以指示调用过程是否成功。

如果不想使用挂钩编译程序,那么可以使用 CEETEST 调用在程序中的策略点启动 z/OS Debugger 。 如果您决定使用此方法,那么仍需要编译应用程序,以便创建符号信息。

当已初始化 z/OS Debugger 时使用 CEETEST 会导致返回类似于断点的条目。

下图描述了 CEETEST的语法:

对于 C 和 C++

C 和 C++ CEETEST 编译器选项的语法图

对于 COBOL

COBOL CEETEST 编译器选项的语法图

对于 PL/I

PL/I CEETEST 编译器选项的语法图
string_of_commands (输入)
包含 z/OS Debugger 命令列表的半字长度前缀字符串。 命令字符串 string_of_commands 是可选的。

如果 z/OS Debugger 可用,那么列表中的命令将传递到调试器并执行。

如果省略了 string_of_commands ,那么 z/OS Debugger 将以交互方式提示输入命令。

对于 z/OS Debugger,如果命令超过 72 个字符,请记住使用连续字符。

命令字符串中的第一个命令可指示您要以下列其中一种调试方式启动 z/OS Debugger :

  • 使用 Terminal Interface Manager 的全屏幕方式
  • 远程调试 方式

要指示您要在 使用不带终端接口管理器的专用终端的全屏方式中启动 z/OS 调试器 ,请使用专用终端的 LU 名指定 TEST 运行时选项的 MFI 子选项。 例如,可以在 PL/I 程序中对以下调用进行编码:

Call CEETEST('MFI%TRMLU001:*;Query Location;Describe CUS;',*);

对于 COBOL 程序,您可以对以下调用进行编码:

01 PARMS.
05 LEN PIC S9(4) BINARY Value 43.
05 PARM PIC X(43) Value 'MFI%TRMLU001:*;Query Location;Describe CUS;'.

CALL "CEETEST" USING PARMS FC.

要指示您要在 使用终端接口管理器的全屏幕方式中启动 z/OS 调试器 ,请使用提供给终端接口管理器的用户标识指定 TEST 运行时选项的 VTAM ® 子选项。 例如,可以在 PL/I 程序中对以下调用进行编码:

Call CEETEST(VTAM%USERABCD:*;Query Location;Describe CUS;,*);

在这些示例中,可以将子选项 :* 替换为首选项文件的名称。 如果启动了 z/OS Debugger TEST 运行时选项并指定了首选项文件,并且在 CEETEST 调用中指定了另一个首选项文件,那么 CEETEST 调用中的首选项文件将替换使用 TEST 运行时选项指定的首选项文件。

要指示要以远程调试方式启动 z/OS Debugger请使用您使用 RSE (DBMDT) 登录的用户标识或远程调试器正在侦听的 IP 地址和端口号 (TCPIP) 指定 TEST 运行时选项的 DBMDT 或 TCPIP 子选项。
  • 要通过将 "调试管理器" 与您在 RSE 上登录时使用的用户标识配合使用来启动 z/OS Debugger ,请对以下调用进行编码:
    Call CEETEST(’DBMDT%userid:*;’,*);
  • 要使用工作站的 TCP/IP 地址启动 z/OS Debugger ,请对以下调用进行编码:
    Call CEETEST(’DBMDT%userid:*;’,*);

这些调用必须包含尾部分号 (;)。

fc (输出)
指示此服务结果的 12 字节 反馈 代码 (在某些语言中是可选的)。
CEE000
严重性 = 0
消息号 = 不适用
消息 = 服务已成功完成
CEE2F2
严重性 = 3
Msg_No = 2530
消息 = 调试器不可用
注: CEE2F2 反馈代码也可以由 MVS/JES 批处理应用程序获取。 例如, z/OS Debugger 环境已损坏或无法装入调试事件处理程序。

Language Environment ® 提供名为 CEEDCOD 的可调用服务,以帮助您对反馈代码中的字段进行解码。 建议请求返回反馈代码。

对于 C 和 C++ 以及 COBOL ,如果 z/OS Debugger 是通过 CALL CEETEST启动的,那么仅当 z/OS Debugger 通过 STEPGO将控制权返回给程序后,才允许使用 GOTO 命令。