CICS本身提供了一些交易来帮助程序员调试CICS应用程序,如CEDF, CEDX和CECI.
1. CEDF
CEDF使用CICS提供的 Execution Diagnostic Facility(EDF)来调试应用程序。EDF截获在程序运行时各个CICS命令的执行,向用户展示CICS命令执行前和执行后的具体信息。EDF允许用户与应用程序进行交互,例如在命令执行前对命令的参数进行修改,在命令执行后对命令的返回码进行修改。下面列出在应用执行过程中,EDF的截获点:
(1) 程序开始
EDF的第一个截获点是程序开始,显示了COMMAREA(如果有)以及初始EIB的值。
(2) 每个CICS命令执行前
EDF显示了将要执行的命令,包括关键字,选项和参数值。
可以使用PF9来设置stop conditions, 设置之后使用PF4来继续执行EDF,在遇到stop conditions之前的命令都不会被EDF截获。用户还可以阻止当前命令的执行,例如可以清除命令本身,或使用NOOP(或者NOP)覆盖掉当前的命令。另: 行数(LINE)是由 compiler的DEBUG选项生成的,例如LINE:00673表示SEND MAP这个命令在compiler listing的第673行。可使用PF2在十六进制和字符两种展示之间进行切换。
十六进制的展示还提供了地址信息。可以使用PF5查看working storage,如下所示。包含了实际地址,相对位移,十六进制格式和字符格式。用户可以改变Working Storage的内容(十六进制格式和字符格式下都可以修改,当两者同时被修改时,十六进制下的修改生效。)Working Storage Area之外的storage不能被修改。注意在这个界面中PF键的定义和之前不同,例如可使用PF2调用一个交易来显示临时存储队列; PF5可以调用CECI。
(3) 每个CICS命令执行后
此时,用户可以看到命令执行后的结果:变量值以及返回码。用户还可以改变返回码帮助测试一些不常被执行的routine.
(4) 程序结束,任务正常结束
程序结束时:
任务正常结束时:
(4) Abend产生时以及任务异常结束之后
2. CEDX
CEDX用于non-terminal task的调试,需要指定待调试的交易名:CEDX transid。
3. CECI
CECI可以直接执行CICS命令,无需程序员编写程序,CECI支持的命令如下: