이 주제에서는 CICS® 프로그램을 디버깅하는 동안 수행할 수 있는 태스크 및 몇 가지 제한사항에 대해 설명합니다.
CICS에서 프로그램을 디버깅하려면 우선 다음 태스크가 완료되었는지 확인해야 합니다.
DESCRIBE CHANNEL 명령을 사용하여 CICS 채널 컨텐츠를 표시하고 LIST CONTAINER 명령을 사용하여 컨테이너 컨텐츠를 표시할 수 있습니다.
CICS Application Programming Guide의 "Enhanced inter-program data transfer: channels as modern-day COMMAREAs" 섹션에서는 컨테이너 및 채널의 이점 및 프로그램에서 이를 사용하는 방법에 대해 설명합니다.
현재 패널에 컨테이너 목록을 표시하려면 DESCRIBE CHANNEL 명령을 입력하십시오. 다른 채널의 컨테이너 목록을 표시하려면 DESCRIBE CHANNEL channel_name을 실행하십시오. 여기서 channel_name은 특정 채널명입니다. 두 경우 모두에서 Debug Tool은 다음 목록과 유사한 목록을 표시합니다.
COBOL LOCATION: ZCONPRGA :> 274.1
Command ===> Scroll ===> PAGE
모니터 -+----1----+----2----+----3----+----4----+----5----+----6- 행: 1 / 2
****************************** 모니터 맨 위 ********************************
----+----1----+----2----+----3----+----4----
0001 1 ********** 자동 모니터 **********
0002 01 DFHC0160 'PrgA-ChanB-ContC'
******************************** 모니터의 끝 ********************************
SOURCE: ZCONPRGA -1----+----2----+----3----+----4----+----5--- 행: 272 / 307
272 * FLENGTH(LENGTH OF PrgA-ChanB-XXXXX) .
273 * END-EXEC .
274 'PrgA-ChanB-ContC'를 dfhc0160으로 이동 .
275 'PrgA-CHANB'를 dfhc0161로 이동 .
276 x'341670000720000002000000 컨텐츠를 사용하여 'DFHEI1' 호출.
277 - x'0000' 컨텐츠를 참조하여 '00f0f0f0f5f3404040' .
278 LENGTH 컨텐츠로 dfhc0160을 참조하여 PrgA-ChanB-XXXXX .
279 x'0000' 컨텐츠로 x'0000' 컨텐츠로 PrgA-ChanB-XXXXX .
280 컨텐츠 x'0000' 컨텐츠 x'0000' 컨텐츠 x'0000' .
281 컨텐츠 x'0000' 컨텐츠 x'0000' 컨텐츠 x'0000' .
282 컨텐츠 x'0000' 컨텐츠 x'0000' 컨텐츠 x'0000' .
283 컨텐츠 x'0000' 컨텐츠 x'0000' 컨텐츠 x'0000' .
로그 0----+----1----+----2----+----3----+----4----+----5----+-- 행: 147 / 289
0147 설명 채널 * ;
0148 채널 PrgA-ChanB
0149 컨테이너명 크기
0150 ------------------------------------
0151 PrgA-ChanB-ContC 21
0152 PrgA-ChanB-ContB 21
0153 PrgA-ChanB-ContA 21
0154 채널 PRGA-CHANA
0155 CONTAINER NAME SIZE
0156 ------------------------------------
0157 PRGA-CHANA-CONTC 21
PF 1:? 2:STEP 3:QUIT 4:LIST 5:FIND 6:AT/CLEAR
PF 7:UP 8:DOWN 9:GO 10:ZOOM 11:ZOOM LOG 12:RETRIEVE
현재 패널에 컨테이너 컨텐츠를 표시하려면 LIST CONTAINER container_name 명령을 입력하십시오. 여기서 container_name은 특정 채널명입니다. 다른 채널의 컨테이너 컨텐츠를 표시하려면 LIST CONTAINER channel_name container_name 명령을 입력하십시오. 여기서 channel_name은 다른 채널명입니다. 두 경우 모두에서 Debug Tool은 다음 다이어그램과 유사한 형식으로 컨테이너 컨텐츠를 표시합니다.
COBOL LOCATION: ZCONPRGA :> 211.1
Command ===> Scroll ===> PAGE
모니터 -+----1----+----2----+----3----+----4----+----5----+----6- 행: 1 / 2
****************************** 모니터 맨 위 ********************************
----+----1----+----2----+----3----+----4----
0001 1 ********** 자동 모니터 **********
0002 01 DFHC0160 'PRGA-CHANA-CONTC'
******************************** 모니터의 끝 ********************************
소스: ZCONPRGA -1----+----2----+----3----+----4----+----5--- 행: 209 / 307
209 * FLENGTH(LENGTH OF PrgA-ChanB-ContA) .
210 * END-EXEC .
211 'PrgA-ChanB-ContA'를 dfhc0160으로 이동 .
212 'PrgA-ChanB'를 dfhc0161로 이동 .
213 x'341670000720000002000000 컨텐츠를 사용하여 'DFHEI1' 호출.
214 - x'0000'를 참조하여 '00f0f0f0f3f5404040' .
215 LENGTH 컨텐츠로 dfhc0160을 참조하여 PrgA-ChanB-ContA .
216 x'0000' 컨텐츠로 x'0000' 컨텐츠로 PrgA-ChanB-ContA .
217 컨텐츠 x'0000' 컨텐츠 x'0000' 컨텐츠 x'0000' .
218 컨텐츠 x'0000' 컨텐츠 x'0000' 컨텐츠 x'0000' .
219 컨텐츠 x'0000' 컨텐츠 x'0000' 컨텐츠 x'0000' .
220 컨텐츠 x'0000' 컨텐츠 x'0000' 컨텐츠 x'0000' .
로그 0----+----1----+----2----+----3----+----4----+----5----+---- 행: 15 / 25
0015 단계 ;
0016 설명 채널 * ;
0017 채널 PRGA-CHANA
0018 컨테이너명 크기
0019 ------------------------------------
0020 PRGA-CHANA-CONTC 21
0021 PRGA-CHANA-CONTB 21
0022 PRGA-CHANA-CONTA 21
0023 LIST CONTAINER PRGA-CHANA PRGA-CHANA-CONTC ;
0024 000C7F78 D7D9C7C1 60C3C8C1 D5C160C3 D6D5E3C3 *PRGA-CHANA-CONTC*
0025 000C7F88 60C4C1E3 C1 *-DATA *
PF 1:? 2:STEP 3:QUIT 4:LIST 5:FIND 6:AT/CLEAR
PF 7:UP 8:DOWN 9:GO 10:ZOOM 11:ZOOM LOG 12:RETRIEVE
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
이 주제에서는 DISABLE 및 ENABLE 명령을 사용하여 패턴 일치 중단점을 제어하는 방법에 대해 설명합니다. 패턴 일치 중단점은 DTCN 또는 CADP 프로파일에 지정된 로드 모듈이나 컴파일 단위의 이름 또는 이름 일부로 식별되는 중단점입니다.
DISABLE 명령은 프로그램이 디버그되지 않도록 하기 위해 현재 디버깅 세션을 시작한 디버깅 프로파일과 같이 사용하는 경우에만 작동합니다. DISABLE 명령을 입력할 때 디버그하지 않으려는 로드 모듈이나 컴파일 단위 또는 두 가지 모두의 이름 또는 이름 일부를 지정합니다. Debug Tool이 사용자가 지정한 이름 또는 이름 일부(패턴)와 일치하는 이름의 로드 모듈이나 컴파일 단위 또는 두 가지 모두를 찾으면 Debug Tool이 해당 프로그램을 디버그하지 않습니다. ENABLE 명령을 입력할 때 디버그할 패턴(로드 모듈, 컴파일 단위 또는 두 가지 모두의 전체 이름 또는 이름 일부)을 지정합니다. 이전에 입력한 DISABLE 명령에 지정한 로드 모듈이나 컴파일 단위 또는 두 가지 모두의 이름과 패턴이 일치해야 합니다.
시작하기 전에 Debug Tool(DTCN 또는 CADP)을 시작한 디버깅 프로파일 및 LoadMod::>CU 필드(DTCN용), 프로그램 필드, 컴파일 단위 필드 또는 둘 모두(CADP용)에 지정한 이름을 알고 있는지 확인하십시오.
Debug Tool이 프로그램을 디버깅하는 것을 방지하는 데 DISABLE 명령을 사용하려면 다음 단계를 수행하십시오.
예를 들어 다음과 같은 경우에는 DISABLE CADP PROGRAM ABD2 명령을 입력하여 Debug Tool이 프로그램 ABD2를 디버깅하지 못하도록 하십시오.
예를 들어 다음과 같은 경우에는 DISABLE DTCN CU STAR2 명령을 입력하여 Debug Tool이 컴파일 단위 STAR2를 디버그하지 못하도록 하십시오.
ENABLE 명령을 사용하여 이전에 사용 불가능하게 설정한 프로그램을 디버깅하려면 다음 단계를 수행하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool은 EXEC CICS RETURN에서 중지하고 다음 메시지를 표시합니다.
CEE0199W 스레드의 종료는 STOP 명령문으로 인해 신호되었습니다.
Debug Tool이 애플리케이션 내에 EXEC CICS RETURN문이 있을 때마다 중지하고 이 메시지를 표시하는 것을 방지하려면 SET TEST ERROR 명령을 사용하여 TEST 레벨을 ERROR로 설정하십시오.
CICS는 다양한 유형의 스토리지 위반을 발견할 수 있습니다. CICS Problem Determination Guide에서 CICS가 발견할 수 있는 스토리지 위반 유형 및 CICS가 이를 자동으로 발견하는 시기에 대해 설명합니다. 한 가지 유형의 스토리지 위반을 Debug Tool이 발견하도록 요청할 수 있습니다(사용자 스토리지 요소의 스토리지 확인 존 중첩 여부에 따라). 이 요청은 항상 가능합니다.
Debug Tool이 스토리지 위반을 확인하도록 하려면 CHKSTGV 명령을 입력하십시오. Debug Tool은 스토리지 위반용으로 디버깅 중인 태스크를 확인합니다.
중단점 일부로 명령을 포함시켜서 Debug Tool이 스토리지 위반 확인을 더 자주 확인하도록 설정할 수도 있습니다. 예를 들어 다음 명령은 COBOL 프로그램의 각 명령문에서 스토리지 위반을 확인하고 현재 프로시저에서 위반이 발견되면 Debug Tool을 중지시킵니다.
AT STATEMENT *
PERFORM
CHKSTGV ;
IF %RC = 0 THEN
GO ;
END-IF;
END-PERFORM;
확인하면 성능에 영향을 주는 오버헤드를 발생시키기 때문에 모든 명령문에서 확인을 실행하려면 가능한 한 일부 명령문에서만 실행하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
의사 대화식 CICS 프로그램을 디버깅하는 중에 색상 설정과 같은 Debug Tool 표시 설정을 변경하면 Debug Tool이 설정을 복원할 수 있습니다. 프로그램이 Debug Tool을 시작할 때마다 변경사항이 적용되도록 하려면 표시 설정을 환경 설정 파일이나 명령 파일에 저장하십시오.
다음 스펙 중 임의의 스펙을 AUTO로 설정하면 Debug Tool 설정 사이의 중단점 및 LOADDEBUGDATA 스펙 저장 및 복원에 해당 스펙이 사용됩니다.
SET 명령을 사용하여 전환을 설정할 수 있습니다. SAVE BPS 및 SAVE MONITORS 전환을 사용하면 디버그 세션 간에 중단점 및 모니터 스펙을 저장할 수 있습니다. RESTORE BPS 및 RESTORE MONITORS 전환은 후속 디버그 세션을 시작할 때 중단점 및 모니터 스펙 복원을 제어합니다. 전환을 AUTO로 설정하면 자동 저장 및 해당 정보의 복원을 사용할 수 있습니다. 또한 이러한 설정이 후속 디버그 세션을 시작할 때 적용되도록 하려면 SAVE SETTING AUTO 전환을 사용할 수 있어야 합니다.
CICS에서 실행하는 동안 다음 요구사항을 고려하십시오.
전체 화면 디버깅 세션에 대해 DTCN 프로파일을 활성화하고 SAVE BPS, SAVE MONITORS, RESTORE BPS 및 RESTORE MONITORS가 모두 NOAUTO를 지정하는 경우 Debug Tool이 해당 세션에 대한 대부분의 중단점 및 LOADDEBUGDATA 정보를 프로파일에 저장합니다. DTCN 프로파일이 삭제되면 중단점 및 LOADDEBUGDATA 정보가 삭제됩니다.
CICS에서 설정값, 중단점 및 모니터의 저장 및 복원 성능에 대해서는 다중 enclave 환경에서 성능 고려사항을 참조하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
다음은 Debug Tool을 사용하여 CICS 환경에서 프로그램을 디버깅할 때 적용되는 제한사항입니다.
EQAOPTS LOGDSN 명령이 이름 지정 패턴을 지정하는 경우, Debug Tool은 SET LOG ON fileid 명령을 실행해서 자동적으로 로그 파일을 시작합니다.
CICS에 로그인하지 않거나 기본 사용자 ID로 로그인하는 경우, Debug Tool이 EQAOPTS LOGDSN 명령을 실행하지 않으므로 Debug Tool이 자동적으로 로그 파일을 시작하지 않습니다.
CICS 리젼에 로그 파일에 대한 갱신 승인이 있어야 합니다.
CALL %CEBR 명령을 사용하면 디버그 세션 중에 CICS 임시 스토리지 및 임시 데이터 대기열에 액세스할 수 있습니다. 지금 수행할 수 있는 모든 작업을 CICS 제공 CEBR 트랜잭션 중에 수행할 수 있습니다. 일반 CICS 자원(디버깅하고 있는 CICS 시스템에 관한 정보 또는 VSAM 파일 열기 및 읽기 등)에 액세스하려면 CALL %CECI 명령을 사용하십시오. 이 명령을 사용하면 CICS 제공 CECI 트랜잭션을 제어할 수 있습니다. 디버그 세션으로 돌아오려면 CEBR 또는 CECI 내의 PF3을 누르십시오. CEBR 및 CECI에 대한 자세한 정보는 CICS Supplied Transactions을 참조하십시오.
DTST 트랜잭션을 사용하여 CICS 스토리지를 표시하고 수정할 수 있습니다. 자세한 정보는 부록F. DTST로 CICS 스토리지 표시 및 수정을 참조하십시오.