아래 주제에서는 Debug Tool 전체 화면 인터페이스와 이 인터페이스를 사용하여 일반적인 디버깅 태스크를 수행하는 방법을 설명합니다.
나중에 Batch 모드나 행 모드를 사용할 계획이 있더라도 먼저 전체 화면 모드로 프로그램을 디버깅하면 Debug Tool 사용 방법을 가장 쉽게 배울 수 있습니다.
다음 목록은 특정 유형의 터미널에 대해 Debug Tool이 지원하는 최대 화면 크기를 설명합니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool 세션 패널에는 디버깅하고 있는 프로그램에 대한 정보가 포함된 헤더, 명령행 및 최대 3개의 실제 창이 포함됩니다. 실제 창은 특정 유형의 디버깅 정보만 표시하는 화면 공간입니다. 디버깅 정보는 논리적 창으로 부르는 다음 유형으로 구성됩니다.
각 실제 창은 한 개의 논리적 창만 지정할 수 있습니다. 실제 창은 논리적 창 이름으로 가정하기 때문에 실제 창에 영향을 주는 명령을 입력하면(예: WINDOW SIZE 명령) 연관된 지정 논리적 창의 이름을 입력하여 실제 창을 식별합니다. 실제 창을 닫을 수는 있지만(표시되지 않음) 항상 한 개 이상의 실제 창이 열려 있어야 합니다.
아래 Debug Tool 세션 패널에서는 세 개의 실제 창이 포함된 기본 레이아웃을 보여줍니다. 모니터 창 1 을 위한 실제 창, 소스 창 2 을 위한 실제 창, 로그 창 3 을 위한 실제 창입니다.
COBOL 위치: DTAM01 :> 109.1
Command ===> Scroll ===> PAGE
모니터 -+----1----+----2----+----3----+----4----+----5----+----6- 행: 1/7
**************************** 모니터 맨 위 **********************************
----+----1----+----2----+----3----+----4----
0001 1 NUM1 0000000005
0002 2 NUM4 '1111' 1
0003 3 WK-LONG-FIELD-2 '123456790 223456790 323456790 423456790 5234
0004 56790 623456790 723456790 8234567890 9234567
0005 90 023456790 123456790 223456790 323456790 4
0006 23456790 5234567890 623456790 723456790 8234
소스: DTAM01 ---1----+----2----+----3----+----4----+----5--- 행: 107/196
107 * 구조 내 단일 데이터 항목 .
108 *------------------------------------------------------------- .
109 AA-NUM1에 1 추가 2 .
110 .
111 *------------------------------------------------------------- .
112 * 구조 내 단일 데이터 항목 - 규정됨 .
로그 ----+----1----+----2----+----3----+----4----+----5----+---- 행: 40/43
0040 MONITOR
0041 LIST NUM4 ;
0042 MONITOR 3
0043 LIST WK-LONG-FIELD-2 ;
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool 세션 패널의 처음 몇 행에는 현재 디버깅하고 있는 프로그램에 대한 정보를 표시하는 헤더 필드와 명령행이 포함됩니다.
아래는 C 프로그램의 헤더 예제입니다.
C 1 위치: MYID.SOURCE(TSTPGM1):>248 2 명령 ===> 3 화면이동 ===> 페이지 4 5
다음은 COBOL 프로그램의 헤더 예제입니다.
COBOL 1 위치: XYZPROG::>SUBR:>118 2 명령 ===> 3 화면이동 ===> 페이지 4 5
·
·
·
헤더 필드에 대한 설명은 아래 내용을 참조하십시오.
위의 C 예제에서는 MYID.SOURCE(TSTPGM1)의 실행이 248행에서 일시중단되었습니다.
위의 COBOL 예제에서는 XYZPROG 실행이 XYZPROG::>SUBR:>118 또는 SUBR 서브루틴의 118행에서 중단되었습니다.
기록된 명령문을 재생하는 경우, "LOCATION" 대신 PBK<LOC 또는 PBK>LOC이 표시됩니다. <and> 기호는 기록된 명령문이 역방향으로 재생되고 있는지(<) 또는 정방향으로 재생되고 있는지(>)를 나타냅니다.
Enterprise PL/I 컴파일러나 C/C++ 컴파일러를 사용할 경우, 컴파일러 단위 이름이 소스의 전체 데이터셋명입니다. 긴 형식으로 CU 이름을 표시하기 위해 LONGCUNAME을 ON(기본값)으로 설정한 경우, 이름이 잘릴 수 있습니다. PL/I 프로그램이 다음 컴파일러로 컴파일되었으며 다음 환경에서 실행 중인 경우, 기본 프로시저의 이름 또는 패키지 명령문이 표시됩니다.
이 필드의 값은 SCROLL UP, SCROLL DOWN, SCROLL LEFT 및 SCROLL RIGHT 화면이동 명령에 적용되는 피연산자입니다. 표 17은 모든 화면이동 명령을 보여 줍니다.
| 명령 | 설명 |
|---|---|
| n | n개 행을 화면이동합니다. |
| HALF | 페이지 절반을 화면이동합니다. |
| PAGE | 페이지 전체를 화면이동합니다. |
| TOP | 데이터 맨 위로 화면이동합니다. |
| BOTTOM | 데이터 맨 아래로 화면이동합니다. |
| MAX | 데이터 한계까지 화면이동합니다. |
| LEFT x | x자만큼 왼쪽으로 화면이동합니다. |
| RIGHT x | x자만큼 오른쪽으로 화면이동합니다. |
| CURSOR | 커서 위치입니다. |
| TO x | x행으로 화면이동합니다. 여기서, x는 정수입니다. |
1 소스: MULTCU ---1----+----2----+----3----+----4----+----5----+ 행: 70/85 70 PROCEDURE DIVISION. . 71 ************************************************************** . 72 * 프로그램 기본 영역입니다. 이 프로그램은 오직 텍스트만 . 73 * 표시합니다. 3 . 74 ************************************************************** . 2 75 DISPLAY "MULTCU COBOL SOURCE STARTED." UPON CONSOLE. . 76 MOVE 25 TO PROGRAM-USHORT-BIN. . 77 MOVE -25 TO PROGRAM-SSHORT-BIN. . 4 78 PERFORM TEST-900. . 79 PERFORM TEST-1000. . 80 DISPLAY "MULTCU COBOL SOURCE ENDED." UPON CONSOLE. .
소스 창에는 소스 파일이나 목록이 표시됩니다. 아래의 설명과 같이 소스 창은 네 부분으로 구성됩니다.
접미부 영역은 선택사항입니다. 접미부 영역을 표시하려면 SET SUFFIX ON을 입력하십시오. 접미부 영역을 숨기려면 SET SUFFIX OFF를 입력하십시오. 프로파일 설정 패널의 소스 목록 접미부 필드를 사용하여 이 영역을 설정하거나 해제할 수도 있습니다.
각 창의 레이블이 지정된 헤더 행에는 스케일과 행 카운터가 포함됩니다. 창을 가로로 화면이동하면 창에 표시되는 열을 나타내기 위해 스케일도 화면이동됩니다. 행 카운터에는 창 맨 위에 있는 행 번호와 이 창에 있는 총 행 수가 표시됩니다. 창을 세로로 화면이동하면 현재 이 창에 표시된 맨 위 행 번호가 행 카운터에 표시됩니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
모니터 창에는 SET AUTOMONITOR 또는 MONITOR 명령으로 선택한 변수명 및 값이 표시됩니다.
다음 다이어그램은 기본 모니터 창을 표시하고 모니터 창의 해당 파트를 강조표시합니다.
COBOL 위치: DTAM01 :> 109.1
Command ===> Scroll ===> PAGE
모니터 -+----1----+----2----+----3----+----4----+----5----+----6- 행: 1/7
******************************** 모니터 맨 위 *******************************
-----+----1----+----2----+- 1 --3----+----4--
0001 1 NUM1 0000000005
0002 2 NUM4 '1111' 2
0003 3 WK-LONG-FIELD-2 '123456790 223456790 323456790 423456790 5234
0004 3 56790 623456790 723456790 8234567890 9234567
0005 90 023456790 123456790 223456790 323456790 4
0006 4 23456790 5234567890 623456790 723456790 8234
0007 4 HEX-NUM1 X'ABCD 1234'
MONITOR LIST, MONITOR QUERY, MONITOR DESCRIBE 및 SET AUTOMONITOR 명령을 입력하면 Debug Tool은 모니터 창의 출력을 표시합니다. 모니터 창이 열려 있지 않은 경우, MONITOR 또는 SET AUTOMONITOR 명령을 입력하면 Debug Tool이 모니터 창이 열립니다.
기본적으로 모니터 창에 최대 1000개의 행이 표시됩니다. SET MONITOR LIMIT 명령을 사용하여 이 최대값을 변경할 수 있습니다. 하지만 많은 양의 데이터를 모니터할 때 많은 양의 스토리지를 사용하게 되며 이로 인해 문제점이 발생할 수 있습니다. 많은 양의 데이터 항목 또는 많은 수의 요소를 포함하는 데이터 항목에 사용 가능한 충분한 스토리지가 있는지 확인하십시오. 현재 최대값을 찾으려면 QUERY MONITOR LIMIT 명령을 입력하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
로그 ----+----1----+----2----+----3----+----4----+----5----+----6 행: 6/14 0007 MONITOR 0008 LIST PROGRAM-USHORT-BIN ; 0009 MONITOR 0010 LIST PROGRAM-SSHORT-BIN ; 0011 AT 75 ; 0012 AT 77 ; 0013 AT 79 ; 0014 GO ;
로그 창에는 사용자와 Debug Tool 간 상호작용이 기록되고 표시됩니다.
디버그 세션을 시작할 때 다음 파일 중 하나를 지정한 경우에는 이 파일에서 실행된 명령의 시작과 끝을 나타내는 메시지가 로그 창에 표시됩니다.
글로벌 환경 설정 파일이 있으면 글로벌 환경 설정 파일의 데이터셋명이 표시됩니다.
다음 명령은 로그 창에 기록되지 않습니다.
파일에 SET INTERCEPT ON이 적용되는 경우, 이 파일의 출력도 로그 창에 나타납니다.
SET ECHO OFF를 지정하여 로그에서 STEP과 GO 명령을 제외할 수 있습니다(선택사항).
IMMEDIATE와 함께 사용할 수 있는 SCROLL 및 WINDOW와 같은 명령은 로그 창에서 제외됩니다.
기본적으로 로그 창에는 1000개의 행이 표시됩니다. 다음 방법 중 하나를 사용하여 기본값을 변경할 수 있습니다.
표시할 수 있는 최대 행 수는 사용 가능한 스토리지 공간에 따라 결정됩니다.
각 창의 레이블이 지정된 헤더 행에는 스케일과 행 카운터가 포함됩니다. 창을 가로로 화면이동하면 창에 표시되는 열을 나타내기 위해 스케일도 화면이동됩니다. 행 카운터에는 창 맨 위에 있는 행 번호와 이 창에 있는 총 행 수가 표시됩니다. 창을 세로로 화면이동하면 현재 이 창에 표시된 맨 위 행 번호가 행 카운터에 표시됩니다.
메모리 창에는 메모리 컨텐츠가 표시됩니다. 다음 그림은 메모리 창 부분을 강조표시합니다.
메모리---1----+----2----+----3----+----4----+----5----+----6----+----7----+- 1 이력: 24702630 2505A000 2 기본 주소: 265B1018 Amode: 31 +00000 265B1018 11C3D6C2 D6D34040 4011D3D6 C3C1E3C9 | .COBOL .LOCATI | +00010 265B1028 D6D57A12 D7D9D6C7 F1407A6E 40F4F44B | ON:.PROG1 :> 44. | +00020 265B1038 F1404040 40404040 40404040 40404040 | 1 | +00030 265B1048 40404040 40404040 40404040 40404040 | 6 | +00040 265B1058 40404040 40404040 40404040 40404040 | | +00050 265B1068 11C39694 94819584 117E7E7E 6E009389 | .Command.===>.li | +00060 265B1078 A2A340A2 A3969981 87854DA2 A399F16B | st storage(str1, | +00070 265B1088 F3F25D40 40404040 40404040 40404040 | 32) | 3 4 5
다음 섹션은 집합적인 메모리 덤프 영역입니다.
메모리 창에 표시되는 최대 행 수는 창 크기로 제한됩니다. SCROLL DOWN 및 SCROLL UP 명령을 사용하여 메모리를 추가로 표시할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool이 소스, 로그 및 모니터 창에 대한 팝업 창으로 명령 팝업 창을 표시하여 긴 명령이나 여러 행의 명령을 보다 쉽게 입력할 수 있습니다. 다음 상황이 발생할 때 Debug Tool이 명령 팝업 창을 표시합니다.
다음 조치 중 하나를 수행하여 창의 크기를 제어할 수 있습니다.
명령을 입력한 후 Enter를 눌러 명령을 실행하고 창을 닫으십시오.
로그 창을 표시할 수 없으면 Debug Tool이 목록 팝업 창에 목록 표현식 명령 결과를 표시하고 해당 결과를 로그에 작성합니다. 표현식 평가에 실패하는 경우 Debug Tool에 오류 메시지가 있는 목록 팝업 창이 표시됩니다. 목록 팝업 창이 열려 있는 동안 변수 값을 변경할 수 없습니다. 명령행에 SCROLL UP 및SCROLL DOWN 명령을 입력하거나 적합한 PF 키를 사용하여 목록 팝업 창에서 위아래로 화면이동할 수 있습니다. 목록 팝업 창에 대한 데이터의 최대 행은 1000행을 초과할 수 없습니다. 표현식 평가 결과가 1000행을 초과하는 경우 Debug Tool이 명령행 아래에 경고 메시지를 표시합니다. 목록 팝업 창을 닫으려면 다음 중 하나를 수행하십시오.
Debug Tool의 모양이나 동작과 관련된 환경 설정을 가지고 있는 경우 환경 설정 파일에 이러한 옵션을 설정할 수 있습니다. 세션 패널의 창 레이아웃을 수정하고, 특정 액션에 대한 PF 키를 설정하고, 세션 패널에 사용되는 색상을 변경할 수 있습니다. 사용자 정의한 설정값을 환경 설정 파일에 저장에서는 환경 설정 파일에 지정할 수 있는 항목과 사용자의 환경 설정 파일을 사용하도록 Debug Tool을 설정하는 방법에 대해 설명합니다.
모든 사용자가 사용할 사이트 환경 설정이 있는 경우, 시스템 관리자가 글로벌 환경 설정 파일에 이러한 환경 설정을 설정할 수 있습니다. Debug Tool은 시작될 때 다음 단계를 수행합니다.
Debug Tool이 이러한 파일을 처리하는 순서로 인해 사용자가 환경 설정 파일과 명령 파일에 지정한 설정이 글로벌 환경 설정 파일의 설정을 대체할 수 있습니다. EQAOPTS 명령을 지정하는 방법에 대해 학습하려면 Debug Tool Reference and Messages 또는 Debug Tool Customization Guide의 『EQAOPTS 명령』 주제를 참조하십시오. 글로벌 환경 설정 파일, 환경 설정 파일 및 명령 파일에 사용할 형식에 대해 학습하려면 부록A. Debug Tool에 사용되는 데이터셋의 내용을 참조하십시오.
Debug Tool은 프로그램 준비 방법에 따라 소스, 목록 또는 별도의 디버그 파일을 사용하여 소스 창에 소스를 표시합니다.
Debug Tool을 시작할 때 소스가 표시되지 않으면 소스를 찾아서 표시하는 지시사항에 대해서는 소스 창에 표시되는 파일 변경을 참조하십시오.
디버그 데이터가 없으면 SET DISASSEMBLY 명령을 입력하여 디스어셈블된 코드를 표시할 수 있습니다.
프로그램에 DB2® 또는 CICS® 코드가 포함된 경우에는 다른 파일을 사용해야 합니다. 자세한 정보는 DB2 프로그램 준비 또는 CICS 프로그램 준비를 참조하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
이 주제에서는 소스 창에 표시되는 파일을 변경하는 여러 가지 방법에 대해 설명합니다. 이 주제에서는 표시하려는 소스, 목록 또는 별도의 디버그 파일의 이름을 이미 알고 있는 것으로 가정합니다. 파일명을 알지 못하는 경우에는 파일명을 찾는 방법에 대해 설명하는 Debug Tool에서 인식하는 컴파일 단위 표시를 참조하십시오.
소스 창에 표시되는 파일을 변경하기 전에 부록B. Debug Tool이 소스, 목록 또는 별도의 디버그 파일을 찾는 방법을 읽어서 Debug Tool이 소스, 목록 및 별도의 디버그 파일을 찾는 방법에 대해 파악하고 있어야 합니다.
소스 창에 표시되는 파일을 변경하려면 다음 옵션 중 하나를 선택하십시오.
소스 식별 패널에서 소스 창에 표시되는 소스, 목록 또는 별도의 디버그 파일을 해당 컴파일 단위와 연관시킬 수 있습니다.
이를 반복적으로 수행하기 위해 로그 창에서 생성된 SET SOURCE ON 명령을 사용할 수도 있습니다. 이러한 명령을 파일에 저장한 후 다음에 Debug Tool을 호출할 때 USE 명령을 사용하여 다시 실행할 수 있습니다.
Debug Tool이 몇 개의 이름이 바뀐 파일을 가리키도록 하려면 이름이 바뀐 각 파일의 이름을 쉼표로 구분하고 괄호로 묶어
SET DEFAULT LISTINGS 명령을 사용하십시오.
예를 들어, Debug Tool이 SVTRSAMP.TS99992.MYPROG,
PGRSAMP.LLTEST.PROGA 및
RRSAMP.CRTEST.PROGR 파일을 가리키도록 하려면 다음 명령을 입력하십시오.
SET DEFAULT LISTINGS (SVTRSAMP.TS99992.MYPROG, PGRSAMP.LLTEST.PROGA, RRSAMP.CRTEST.PROGR) ;
이 주제의 정보에서는 DEBUG 컴파일러 옵션의 FORMAT(DWARF) 및 FILE 하위 옵션으로 컴파일한 C 및 C++ 프로그램에서 소스 파일의 위치를 지정하는 방법에 대해 설명합니다. 사용자 또는 사용자 사이트가 EQAOPTS MDBG 명령(.mdbg 파일에서 Debug Tool이 .dbg 및 소스 파일을 검색해야 함)6에 YES를 지정한 경우, 소스 파일에 대한 다른 위치를 지정할 수 없습니다.
그림 1 및 그림 2에서 표시된 것처럼 명령을 입력하거나 여러 영역에서 세션 패널에 표시된 내용을 수정할 수 있습니다.
C 위치: MYID.SOURCE(ICFSSCU1) :> 89 명령 ===> 1 화면이동 ===> 페이지 2 모니터 --+----1----+----2----+----3----+----4----+----5----+----6 행: 1/2 ****************************** 모니터 맨 위 ******************************** ----+----1----+----2----+----3----+----4---- 0001 1 VARBL1 10 0002 2 VARBL2 20 ******************************** 모니터의 끝 ******************************** 소스: ICFSSCU1 - 3 --+----2----+----3----+----4----+----5----+ 행: 81/96 81 main() . 82 { . 83 int VARBL1 = 10; . 4 84 int VARBL2 = 20; . 85 int R = 1; . 86 5 . 87 printf("––– IBFSSCC1 : BEGIN₩n"); . 88 do { . 89 VARBL1++; . 90 printf("INSIDE PERFORM₩n"); . 91 VARBL2 = VARBL2 - 2; . 92 R++; . 로그 6 --+----1----+----2----+----3----+----4----+----5----+----6 행: 7/15 0007 STEP ; 0008 AT 87 ; 0009 MONITOR 0010 LIST VARBL1 ; 0011 MONITOR 0012 LIST VARBL2 ; 0013 GO ; 7 0014 STEP ; 0015 단계 ;
COBOL LOCATION: PROG1 :> 44.1 명령 ===> 1 화면이동 ===> CSR 2 모니터 -+----1----+----2----+----3----+----4----+----5----+----6- 행: 1 / 2 ****************************** 모니터 맨 위 ******************************** ----+----1----+----2----+----3----+----4---- 0001 1 STR1 'ONE ' 0002 2 STR3 'THREE' ******************************** 모니터의 끝 ******************************** 소스: PROG1 - 3 -1----+----2----+----3----+----4----+----5----+ 행: 43 / 53 43 "ONE"을 STR1로 이동. "TWO"를 STR2로 이동. "THREE"를 S로 이동. 44 "FOUR"를 STR4로 이동. "FIVE"를 STR5로 이동. . 45 R = 9까지 수행 . 4 46 "TOP"을 STR1로 이동 "BEG"를 STR2로 이동 "UP"을 STR3으로 이동. 47 VARBL1에 1 더하기 . 48 VARBL2에서 2 빼기 5 . 49 R에 1 더하기 . 50 "BOT"를 STR1로 이동 "END"를 STR2로 이동 "DOW"를 STR로 이동 . 51 수행 완료 . 52 "DONE"을 STR1로 이동. "END"를 STR2로 이동. "FIN"을 ST로 이동. 53 실행 중지 . *********************************** 소스 끝 *********************************** MEMOR 6 -+----2----+----3----+----4----+----5----+----6----+----7----+----8----+ 이력: 329D47DA 329D65CC 329D88AB 329D8000 329D90E8 8 기본 주소: 329D90E8 Amode: 31 +00000 329D90E8 D6D5C540 40000000 E3E6D640 40000000 | ONE ...TWO ... | +00010 329D90F8 E3C8D9C5 C5000000 00000000 00000000 | THREE........... | +00020 329D9108 00000000 00000000 00000000 00000000 | ................ | +00030 329D9118 00000000 00000000 00000000 00000000 | ................ | +00040 329D9128 00000000 00000000 00000000 00000000 | ................ | +00050 329D9138 00000000 00000000 00000000 00000000 | ................ | +00060 329D9148 00000000 00000000 00000000 00000000 | ................ | +00070 329D9158 00000000 00000000 00000000 00000000 | ................ | PF 1:ZOOM MEM 2:STEP 3:QUIT 4:SWAP 5:MEMORY 6:BREAK PF 7:UP 8:DOWN 9:GO 10:ZOOM SRC 11:ZOOM LOG 12:RETRIEVE
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
세션 패널의 올바른 입력 영역 중 둘 이상에서 명령을 입력하고 Enter를 누르면 다음과 같은 순서로 입력 영역이 처리됩니다.
명령 필드에 임의의 Debug Tool 명령을 입력할 수 있습니다. SYSTEM 또는 TSO 접두부를 지정하여 TSO 명령도 입력할 수 있습니다. 명령의 최대 길이는 48자(SBCS 문자의 경우) 또는 23자(DBCS 문자의 경우)입니다.
이보다 긴 명령을 입력할 수 있도록 Debug Tool은 명령 연속 문자인 SBCS 하이픈(-)을 제공합니다. 현재 프로그래밍 언어가 C 및 C++인 경우에는 백슬래시(₩)도 연속 문자로 사용할 수 있습니다. 명령을 완료할 때까지 연속 문자를 입력하여 추가 명령행을 계속해서 요청할 수 있습니다.
또한 Debug Tool은 명령이 완료되지 않은 경우 자동 연속 기능을 제공합니다. 예를 들어, 왼쪽 중괄호({)로 명령을 입력했는데 오른쪽 중괄호(})가 없으면 자동으로 오른쪽 중괄호를 넣습니다. 명령을 계속 입력하는 경우, Debug Tool이 명령 팝업 창을 표시합니다. 명령의 나머지 부분 및 다른 명령을 입력하십시오. Enter를 눌러 명령을 실행하고 명령 팝업 창을 닫으십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool 세션이 실행되는 중에도 SYSTEM 명령을 사용하여 기본 운영 체제에 액세스할 수 있습니다. SYSTEM 명령 다음의 문자열이 운영 체제로 전달됩니다. TSO 환경에서 TSO와 통신할 수 있습니다. 예를 들어, 디버깅 세션 중 TSO 카탈로그 목록을 보려면 SYSTEM LISTC;를 입력하십시오.
시스템 명령을 입력할 때는 다음 사항을 준수해야 합니다.
SYSTEM ISPF;그러면 ISPF가 시작되고, 호스트 에뮬레이터 화면에 명령을 실행하는 데 사용할 수 있는 ISPF 패널이 표시됩니다.
CICS에만 해당: SYSTEM 명령이 지원되지 않습니다.
TSO는 SYSTEM 명령의 동의어입니다. TSO 명령은 자를 수 없습니다.
소스 또는 모니터 창의 특정 행의 접두부 영역에 접두부 명령이라고 하는 특정 명령을 입력하여 해당 명령이 해당 행에만 적용되도록 할 수 있습니다. 예를 들어, 소스 창에서 8행의 접두부 영역에 AT 명령을 입력하고 Enter를 누르면 Debug Tool은 8행에만 명령문 중단점을 설정합니다.
다음 접두부 명령은 소스 창의 접두부 영역에 입력할 수 있습니다.
다음 접두부 명령은 자동 모니터 섹션을 포함한 모니터 창의 접두부 영역에 입력할 수 있습니다.
소스 창에 접두부 명령을 입력하려면 다음 단계를 수행하십시오.
모니터 창에 접두부 명령을 입력하려면 다음 단계를 수행하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
메모리 창에는 명령 및 변경사항을 여러 개 입력할 수 있습니다. Debug Tool은 다음 목록에서 설명한 대로 메모리 창 맨 위에서 시작하여 행별로 사용자 입력을 처리합니다.
특정 명령은 커서 위치에 영향을 받습니다. 이러한 명령을 커서의 영향을 받는 명령이라고 하며 CURSOR 키워드가 포함된 모든 명령(AT CURSOR, DESCRIBE CURSOR, FIND CURSOR, LIST CURSOR, SCROLL...CURSOR, TRIGGER AT CURSOR, WINDOW...CURSOR)이 여기에 포함됩니다.
커서의 영향을 받는 명령을 입력하려면 명령행에 명령을 입력한 다음 소스 창에서 명령을 적용할 위치(예: 명령문이나 명령어의 시작)에 커서를 놓고 Enter를 누르십시오.
명령에 PF 키를 지정하여 커서의 영향을 받는 명령을 실행할 수도 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
커서의 영향을 받는 명령과 기타 전체 화면 태스크의 경우 PF 키에 명령을 지정하여 보다 빠르게 실행할 수 있습니다. WINDOW CLOSE, LIST, CURSOR, SCROLL TO, DESCRIBE ATTRIBUTES, RETRIEVE, FIND, WINDOW SIZE 및 화면이동 명령(SCROLL UP, DOWN, LEFT 및 RIGHT)을 이런 식으로 실행할 수 있습니다. PF 키를 사용하면 편리하고 쉽게 태스크를 수행할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
다음 표는 초기 PF 키 설정을 보여 줍니다.
| PF 키 | 레이블 | 정의 | 용도 |
|---|---|---|---|
| PF1 | ? | ? | Debug Tool 명령 구문에 대한 온라인 도움말 보기 |
| PF2 | STEP | STEP | 프로그램 step through 또는 실행 |
| PF3 | QUIT | QUIT | 전체 화면 모드의 디버그 세션 종료 |
| PF4 | LIST | LIST | Debug Tool에서 인식하는 컴파일 단위 표시 |
| PF4 | LIST | LIST variable_name | 변수 값 표시 및 모니터링 |
| PF5 | FIND | IMMEDIATE FIND | 창에서 문자열 찾기 |
| PF6 | AT/CLEAR | AT TOGGLE CURSOR | 중단점을 설정하여 행에서 프로그램 정지 |
| PF7 | UP | IMMEDIATE UP | 실제 창에서 화면이동 |
| PF8 | DOWN | IMMEDIATE DOWN | 실제 창에서 화면이동 |
| PF9 | GO | GO | 프로그램 step through 또는 실행 |
| PF10 | ZOOM | IMMEDIATE ZOOM | 전체 화면에 표시되도록 창 확대 |
| PF11 | ZOOM LOG | IMMEDIATE ZOOM LOG | 전체 화면에 표시되도록 창 확대 |
| PF12 | RETRIEVE | IMMEDIATE RETRIEVE | 이전 명령 검색 |
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
입력한 마지막 명령을 검색하려면 PF12(RETRIEVE)를 누르십시오. 검색된 명령이 명령행에 표시됩니다. 명령을 변경한 다음 Enter를 눌러 실행할 수 있습니다.
이전 명령을 단계별로 하나씩 검색하려면 PF12를 눌러 각 명령을 순서대로 검색하십시오. 검색된 명령이 명령행에 표시하기에 너무 길면 명령의 마지막 행만 표시됩니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
새 명령을 작성하기 위해 로그 및 소스 창의 행을 사용할 수 있습니다.
로그나 소스 창의 행에서 명령을 작성하려면 다음 단계를 수행하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
명령행의 길이보다 긴 명령을 입력하는 경우, POPUP 명령을 입력하여 명령 팝업 창을 연 다음, Debug Tool 명령을 입력하십시오.
Debug Tool이 다음 상황에서 자동으로 명령 팝업 창을 표시합니다.
명령 팝업 창에 명령의 나머지 부분을 입력할 수 있습니다.
CURSOR 명령과 SCROLL UP, DOWN, LEFT, RIGHT, TO, NEXT, TOP 및 BOTTOM과 같은 화면이동 명령을 사용하여 모든 창을 탐색할 수 있습니다. 지정한 문자열로 자동으로 화면이동하는 FIND 명령을 사용하여 문자열을 검색할 수도 있습니다.
이러한 명령에 따라 액션이 수행되는 창은 몇 가지 요소 중 하나에 따라 결정됩니다. 명령을 입력할 때 창의 이름(로그, 메모리, 모니터 또는 소스)을 지정하면 해당 창에서 액션이 수행됩니다. 명령이 커서 관련 명령인 경우에는 커서가 포함된 창에서 액션이 수행됩니다. 창 이름을 지정하지 않았고 커서가 어떤 창에도 없으면 프로파일 설정 패널의 기본 창 및 기본 화면이동 양 설정에 따라 액션이 수행되는 창이 결정됩니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
모니터, 소스 또는 로그 창에서 명령행으로 또는 명령행에서 이들 창으로 커서를 빠르게 이동하려면 CURSOR 명령을 사용하십시오. PF 키에 이 명령과 몇 가지 다른 커서 관련 명령을 지정하면 매우 유용합니다. PF 키에 CURSOR 명령을 지정한 후 PF 키를 눌러 커서를 이동하십시오. CURSOR 명령을 입력할 때 커서가 명령행에 없는 경우 커서가 명령행으로 이동합니다. 이전 위치로 커서를 되돌리려면 CURSOR PF 키를 다시 누르십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool에는 네 개의 논리적 창이 있지만 동시에 최대 3개의 실제 창을 표시할 수 있습니다. 명령행에서 WINDOW SWAP MEMORY LOG 명령을 입력하여 메모리 창과 로그 창을 대체할 수 있습니다. scroll 명령을 입력하여 실제 창을 탐색할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
명령이나 PF 키를 사용하여 실제 창을 화면이동할 수 있습니다. 두 방법 모두에서 명령이 영향을 주는 실제 창을 판별하는 데에 커서 배치가 중요한 역할을 합니다.
명령을 사용하여 실제 창을 화면이동하려면 다음 단계를 수행하십시오.
창 또는 영역을 좌우로 화면이동하는 경우 Debug Tool은 창에 표시되는 컬럼이 나타나도록 창 또는 영역에서 배율을 조정합니다. 창을 상하로 화면이동하는 경우 현재 창에 표시된 맨 위 행 번호가 행 카운터에 표시됩니다. 메모리 창에서 상하로 화면이동하는 경우 메모리 덤프 영역의 모든 섹션은 새 정보를 표시하도록 조정됩니다.
화면이동할 실제 창을 표시하기 위해 명령을 사용하여 위의 2와 3단계를 결합할 수 있습니다. 예를 들어 모니터 창을 표시하는 실제 참에서 최대 5행을 화면이동하려면 SCROLL UP 5 MONITOR 명령을 입력하십시오.
PF 키를 사용하여 화면이동하려면 다음 단계를 수행하십시오.
특정 실제 창으로 커서를 이동하지 않는 경우 기본 논리적 창이 화면이동됩니다. 기본 논리적 창인 논리적 창을 찾으려면 QUERY DEFAULT WINDOW 명령을 입력하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
WINDOW ZOOM 명령을 입력하거나 PF 키를 사용하여 실제 창을 전체 화면으로 확장할 수 있습니다. WINDOW ZOOM 명령을 입력하여 실제 창을 확장하려면 WINDOW ZOOM을 입력하고 확장하려는 실제 창 이름을 입력한 다음 Enter를 누르십시오. 원래 크기로 실제 창 크기를 줄이려면 WINDOW ZOOM 명령을 다시 한번 실행하십시오. 예를 들어 모니터 창을 표시하는 실제 창을 확장하려면 WINDOW ZOOM을 실행하십시오. 해당 실제 창의 크기를 원래 크기로 줄이려면 WINDOW ZOOM 명령을 입력하십시오.
PF 키를 사용하여 실제 창을 확장하려면 확장하려는 실제 창으로 커서를 이동한 다음 PF10(ZOOM) 키를 누르십시오. 예를 들어 소스 창을 표시하는 실제 창을 확장하려면 커서를 소스 창 위의 임의 위치로 이동한 다음 PF10(ZOOM) 키를 누르십시오. 해당 실제 창 크기를 원래 크기로 줄이려면 PF10(ZOOM) 키를 누르십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
특정 행을 창의 맨 위에 표시하려면 창의 접두부 영역에 표시된 명령문 번호 또는 행과 함께 POSITION 또는 SCROLL TO 명령을 사용하십시오. 명령행에 POSITION n 또는 SCROLL TO n(여기서 n은 행 번호임)을 입력한 후 Enter를 누르십시오.
예를 들어, 345행을 창의 맨 위로 가져오려면 명령행에 POSITION 345 또는 SCROLL TO 345를 입력하십시오. Debug Tool은 선택된 창을 세로로 화면이동하여 해당 창의 맨 위에 345행을 표시합니다.
LIST AT LINE 또는 LIST AT STATEMENT 명령을 사용하여 행 또는 명령문 중단점의 목록을 가져온 경우, POSITION 또는 SCROLL TO 명령을 사용하여 소스 창의 맨 위에 해당 중단점 중 하나를 표시하십시오. POSITION 또는 SCROLL TO 명령과 LIST AT LINE 또는 LIST AT STATEMENT 명령의 조합을 사용하는 대신 FINDBP 명령을 사용할 수 있습니다. FINDBP 명령은 행, 명령문 및 오프셋 중단점 검색을 제외하고는 문자열에 대한 FIND 명령과 유사하게 작용합니다.
소스 창, 모니터 창 또는 로그 창에서 문자열을 검색할 수 있습니다. 검색을 시작할 위치, 검색 방향(정방향 또는 역방향) 및 소스 창의 경우 검색할 컬럼을 지정할 수 있습니다. 검색되는 기본 창은 SET DEFAULT WINDOW 명령 또는 프로파일 설정 패널의 기본 창 항목으로 지정한 창입니다. 기본 검색 방향은 정방향입니다. 소스 창에서 SET FIND BOUNDS 명령으로 다른 경계 세트를 지정하지 않는 경우 컬럼의 기본 경계는 1에서 *까지입니다.
기본 검색 방향을 사용하여 기본 창에서 문자열을 찾으려면 다음 단계를 수행하십시오.
이전 검색을 반복하려면 PF5 키를 누르십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool FIND 명령은 ISPF FIND 명령이 검색을 시작할 때 사용하는 것과 동일한 규칙을 사용하여 검색을 시작합니다. Debug Tool은 커서 위치 다음의 첫 번째 위치에서 검색을 시작합니다.
끝 부분에 도달하면 Debug Tool은 끝 부분에 도달했음을 나타내는 메시지를 표시합니다. PF5 키를 눌러 FIND 명령을 반복하면 맨 위에서부터 검색이 시작됩니다.
역방향으로 검색하는 경우 시작 부분에 도달하면 Debug Tool은 시작 부분에 도달했음을 나타내는 메시지를 표시합니다. PF5 키를 눌러 FIND 명령을 반복하면 끝에서부터 검색이 시작됩니다.
검색 문자열에 문자, 숫자 및 기호의 조합을 포함할 수 있습니다. 그러나 문자열에 다음 문자 중 하나 이상이 포함된 경우에는 큰따옴표(") 또는 작은따옴표(')로 묶어야 합니다.
다음 규칙을 사용하여 큰따옴표(")를 사용해야 하는지 아니면 작은따옴표(')를 사용해야 하는지 판별하십시오.
다른 창에서 동일한 문자열을 찾으려면 FIND * window_name 명령을 입력하십시오.
FIND 명령과 문자열을 입력한 후 커서를 모니터 창에 놓으십시오. Debug Tool은 문자열을 찾거나 데이터의 끝에 도달할 때까지 모니터 값 영역에서 화면이동된 데이터를 포함하여 전체 모니터 창을 검색합니다.
다른 방향으로 동일한 문자열을 찾으려면 문자열 및 PREV 또는 NEXT 키워드를 지정하여 FIND * 명령을 입력하십시오. 예를 들어, 다음 명령은 역방향으로 "RecordDate" 문자열을 검색합니다.
FIND RecordDate PREV ;
소스 창에서 Debug Tool은 제한된 수의 컬럼만 검색할 수 있으며, 소스 파일이 매우 큰 경우 및 일부 텍스트가 특정 컬럼에 있는 경우 유용합니다. 현재 검색 또는 모든 검색에 사용할 경계를 지정할 수 있습니다. 소스의 컬럼 맞추기는 원본 소스 코드와 일치하지 않을 수 있습니다. FIND 명령의 컬럼 스펙은 원본 소스 코드가 아니라 소스 창에 표시된 배율과 관련됩니다.
현재 검색의 경계를 지정하려면 FIND 명령을 입력하고 검색 문자열 및 경계를 지정하십시오. 예를 들어, 컬럼 7 - 12에서 "ABC"를 검색하려면 다음 명령을 입력하십시오.
FIND "ABC" 7 12;
컬럼 8 이후에서 시작하는 "VAR1"을 검색하려면 다음 명령을 입력하십시오.
FIND "VAR1" 8 *;
컬럼 1에서 시작하는 "VAR1"을 검색하려면 다음 명령을 입력하십시오.
FIND "VAR1" 1;
모든 검색에 사용할 기본 경계를 지정하려면 SET FIND BOUNDS 명령을 입력하고 왼쪽 및 오른쪽 경계를 지정하십시오. SET FIND BOUNDS 명령을 입력한 후 경계를 지정하지 않고 FIND 명령을 입력할 때마다 Debug Tool이 이 경계 내에서만 지정한 문자열을 검색합니다. 예를 들어, Debug Tool이 항상 컬럼 7 - 52의 텍스트만 검색하도록 지정하려면 다음 명령을 입력하십시오.
SET FIND BOUNDS 7 52;
이후 경계를 지정하지 않고 FIND 명령을 입력할 때마다 Debug Tool은 컬럼 7 - 52 내에서만 검색합니다. 경계를 기본 설정(1 - *)으로 재설정하려면 다음 명령을 입력하십시오.
SET FIND BOUNDS;
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
다른 창에서 역방향으로 문자열을 찾으려면 문자열, PREV 키워드 및 창 이름을 지정하여 FIND 명령을 입력하십시오. 예를 들어, 다음 명령은 로그 창에서 역방향으로 "EmployeeName" 문자열을 검색합니다.
FIND EmployeeName PREV LOG;
컬럼 8에서 시작하는 COBOL 단락명을 검색하려면 다음 명령을 입력하십시오.
FIND paraa 8;
Debug Tool은 컬럼 8에서 시작하는 문자열만 찾습니다.
COBOL 영역 B의 컬럼 12 - 72에서 COBOL 단락명의 참조를 찾으려면 다음 명령을 입력하십시오.
FIND paraa 12 72;
Debug Tool은 컬럼 12 - 72에서 시작하고 끝나는 문자열만 찾습니다.
여러 소스 파일을 표시하여 화면이동한 후, SET QUALIFY RESET 명령을 입력하여 정지된 실행 지점으로 되돌아갈 수 있습니다.
이 주제에서는 다른 창에서는 사용할 수 없고 메모리 창에서만 사용할 수 있는 탐색 지원 프로그램에 대해 설명합니다.
다음 옵션 중 하나를 수행하여 메모리 창을 표시할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
MEMORY 명령을 새로 실행하거나 G 명령을 사용할 때마다 현재 기본 주소가 이력 영역에서 오른쪽 아래로 이동합니다. 이력 영역는 최대 8개의 기본 주소를 포함할 수 있습니다. 이력 영역이 가득 찬 경우에 새 기본 주소가 입력되면 Debug Tool은 이력 영역에서 가장 오래된 기본 주소(이력 영역의 맨 아래의 가장 오른쪽에 위치)를 제거하고 새 주소를 왼쪽 맨 위에 추가합니다. 이력 영역은 디버그 세션에서 계속 유지됩니다.
이력 영역을 사용하여 메모리 창을 탐색하려면 이력 영역 주소 위에 G 또는 g 명령을 입력한 다음 Enter를 누르십시오. Debug Tool은 새 주소로 시작하는 메모리 덤프 데이터를 표시합니다. CLEAR MEMORY 명령을 입력하여 이력 영역을 지울 수 있습니다. R 또는 r 명령으로 항목에 입력하여 이력 영역의 항목을 제거할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
다음 메소드 중 하나를 사용하여 새 기본 주소를 지정할 수 있습니다.
16진 데이터 컬럼에 G 명령을 입력하는 경우에는 한 컬럼에 주소가 완료되었는지와 다른 컬럼으로 넘어가지는 않았는지 확인하십시오. 예를 들어 다음 화면에서 16진 주소 X'329E6470'가 두 위치에 표시됩니다.
메모리---1----+----2----+----3----+----4----+----5----+----6----+----7----+- 이력: 24702630 2505A000 기본 주소: 265B1018 Amode: 31 +00000 265B1018 40404040 40404040 40404040 40404040 | | +00010 265B1028 4040329E 64704040 40404040 40404040 | .. .. | +00020 265B1038 40404040 40404040 40404040 40404040 | | +00030 265B1048 40404040 40404040 40404040 40404040 | | +00040 265B1058 40404040 40404040 329E6470 40404040 | .... | +00050 265B1068 40404040 40404040 40404040 40404040 | | +00060 265B1078 40404040 40404040 40404040 40404040 | | +00070 265B1088 40404040 40404040 40404040 40404040 | |두 번째 행, 첫 번째 컬럼에 G 명령을 입력하면 Debug Tool은 X'4040329E'로 기본 주소를 설정하려고 합니다. 두 번째 행, 두 번째 컬럼에 G 명령을 입력하면 Debug Tool은 X'64704040'으로 기본 주소를 설정하려고 합니다. 기본 주소를 X'329E6470'으로 설정하려면 다음 옵션 중 하나를 수행하십시오.
명령 파일은 디버그 세션을 재현하거나 인터럽트된 세션을 재개하는 데 사용할 수 있는 편리한 방법입니다. 다음 방법 중 하나를 사용하여 명령 파일을 작성하십시오.
여러 개의 다른 애플리케이션 프로그램으로 작성한 애플리케이션 프로그램에서 사용되는 명령 파일을 작성하는 경우 Debug Tool이 프로그래밍 언어 중립인 명령을 사용하도록 할 수 있습니다. 다음 가이드라인은 프로그래밍 언어 중립인 명령을 작성하도록 도와줍니다.
PL/I 프로그램의 경우, 명령 파일의 73-80열에 순서 번호가 있으면 명령 파일의 첫 번째 명령으로 또는 명령 파일을 사용하기 전에 SET SEQUENCE ON 명령을 입력해야 합니다. 이 명령을 입력한 후에는 Debug Tool이 73-80열의 데이터를 명령으로 해석하지 않습니다. 나중에 Debug Tool이 73-80열의 데이터를 명령으로 해석하도록 하려면 SET SEQUENCE OFF 명령을 입력하십시오.
C 및 C++ 프로그램에서 블록을 참조하는 명령을 사용하면 동일한 프로그램이 ISD 또는 DWARF 컴파일러 옵션으로 컴파일되는 경우 블록명이 서로 다를 수 있습니다. 프로그램이 ISD 컴파일러 옵션으로 컴파일되면 Debug Tool이 순차적으로 블록명을 지정합니다. 프로그램이 DWARF 컴파일러 옵션으로 컴파일되면 Debug Tool이 비순차적으로 블록명을 지정합니다. 따라서 이름이 다를 수 있습니다. 컴파일러 옵션을 전환하는 경우, 명령 파일에서 사용하는 명령의 블록명을 확인하십시오.
런타임 시, 명령 파일은 다음 메소드 중 하나를 통해 지정될 수 있습니다.
EQAOPTS 명령을 지정하는 방법에 대해 학습하려면 Debug Tool Reference and Messages 또는 Debug Tool Customization Guide의 『EQAOPTS 명령』 주제를 참조하십시오. 명령 파일에 사용할 형식에 대해 학습하려면 부록A. Debug Tool에 사용되는 데이터셋의 내용을 참조하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool은 명령 및 명령이 생성한 출력을 세션 로그 파일에 기록할 수 있습니다. 이것은 세션을 기록한 후 이 파일을 참조하여 세션 전략을 쉽게 분석할 수 있습니다. 또한 이후 세션에서는 로그 파일을 기본 명령 파일로 지정하여 명령으로 사용할 수도 있습니다. 이것은 간편하게 디버그 세션을 재현하거나 인터럽트된 세션을 재개할 수 있는 방법입니다.
다음은 주석으로 표시됩니다. (COBOL 프로그램의 경우 컬럼 7의 별표{*} 다음에 표시됩니다. C, C++, PL/I 및 어셈블러 프로그램의 경우 /* */ 안에 표시됩니다.)
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
전체 화면 모드의 디버깅 세션의 경우 다음 방법 중 하나에 로그 파일을 작성할 수 있습니다.
SAVESETS 데이터셋에 설정값을 저장하는 기존 사용자인 경우 SAVESETS 데이터셋에 SET LOG 명령이 있으므로 Debug Tool은 새 로그 파일을 작성하지 않습니다. Debug Tool은 해당 SET LOG 명령에 지정된 로그 파일을 사용합니다.
Batch 모드의 디버깅 세션의 경우 이 주제에 설명된 대로 로그 파일을 수동으로 작성하십시오.
디버그 세션에 대한 영구 로그를 작성하려면 먼저 다음 사항을 지정하여 파일을 작성하십시오.
그런 다음, 프로그램을 실행하는 데 사용하는 CLIST, JCL 또는 EXEC의 DD명 INSPLOG에 파일을 할당하십시오.
COBOL 전용 나중에 세션 로그 파일을 명령 파일로 사용하려면 RECFM FB 및 LRECL을 72로 설정하십시오. Debug Tool은 COBOL 디버그 세션 중에 파일 입력의 72열 다음에 나오는 내용은 모두 무시합니다.
CICS에서만 SET LOG OFF가 기본값입니다. 로그를 시작하려면 SET LOG ON file 명령을 사용해야 합니다. 예를 들어, TSTPINE.DT.LOG 데이터셋에 로그를 기록한 경우 SET LOG ON FILE TSTPINE.DT.LOG;을 실행하십시오.
기본값 SET LOG ON이 적용되고 있는지 확인하십시오. SET LOG OFF를 실행한 경우, 로그 파일로 출력이 기록되지 않습니다. Debug Tool에 제어가 주어지지 않은 경우에는 로그 파일이 사용되지 않습니다.
초기화 중에 기본 로그 파일(INSPLOG)이 액세스되고 같은 이름이 기존 파일에 있으면 겹쳐쓰입니다. MVS에서 MOD의 조치 유형을 사용하여 로그 파일을 할당한 경우 기존 파일에 로그 출력이 추가됩니다. SET LOG ON FILE xxx 명령을 입력해도 기존 파일에 로그 출력이 추가됩니다.
세션에 로그 파일이 할당되지 않은 경우 다음과 같이 SET LOG 명령을 사용하여 로그 파일을 할당할 수 있습니다.
SET LOG ON FILE logddn;
그러면 Debug Tool이 DD명 LOGDDN에 할당된 파일에 로그를 기록합니다.
세션 중 언제든지 다음 명령을 입력하여 로그 파일로 정보가 보내지는 것을 중지할 수 있습니다.
SET LOG OFF;
로그 파일을 다시 사용하려면 다음 명령을 입력하십시오.
SET LOG ON;
로그 파일은 Debug Tool 세션 중에 항상 활성화되어 있습니다.
Debug Tool은 행 모드, 전체 화면 모드 및 Batch 모드 등의 조작 모드에서 로그 파일을 유지합니다.
각 코드 행이 실행된 횟수를 기록하려면 다음을 수행하십시오.
SET FREQUENCY ON;SET FREQUENCY ON 명령을 입력하면 현재 빈도 계수를 나타내도록 소스 창이 갱신됩니다. 이 명령은 실제 계수를 표시하기 위해 통계 수집을 시작하므로 애플리케이션의 코드 일부가 이미 실행된 경우 이미 실행된 명령문에 대한 데이터는 사용할 수 없게 되므로 주의하십시오.
프로그램 전체에 대해 명령문 빈도 계수를 보려면 다음 명령을 실행하십시오.
GO ; LIST FREQUENCY *;
그러면 각 명령문이 실행된 횟수가 나열됩니다. 종료하면 로그 파일에 결과가 기록됩니다. 언제든지 LIST FREQUENCY *를 실행할 수 있지만 이 명령은 현재 활성화된 컴파일 단위에 대해서만 빈도 계수를 표시합니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
자동 모니터링을 지원하지 않는 컴파일 단위를 디버깅하는 경우 SET AUTOMONITOR 명령을 사용하여 이 컴파일 단위에서 발견한 중단점을 기록할 수 있습니다. SET AUTOMONITOR ON 명령을 입력하면 QUERY LOCATION 명령을 입력할 때와 같이 Debug Tool이 발견한 각 중단점의 위치를 기록합니다.
행 중단점을 설정하거나 지우려면 소스 창에서 실행 가능 행으로 커서를 이동한 다음 PF6(AT/CLEAR)을 누르십시오. DISABLE을 사용하여 임시로 중단점을 해제한 다음 ENABLE을 사용하여 다시 설정할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
아직 로드하지 않은 모듈 또는 아직 활성이 아닌 프로그램에서 다음 명령을 사용하여 소스를 브라우즈하거나 중단점을 설정할 수 있습니다.
SET QUALIFY CU load_spec ::> cu_spec ;
이 명령에서 중단점을 설정할 CU 및 로드 모듈 이름을 지정하십시오. 그러면 필요할 때 로드 모듈이 명시적으로 로드되고, 저징된 CU에 대해 CU가 작성됩니다. 그런 다음, 지정된 CU에 대한 소스가 SOURCE 창에 표시됩니다. 이제 원하는 대로 명령문 중단점을 설정할 수 있습니다.
GO 또는 STEP 등의 명령으로 인해 프로그램 실행이 재개되면 명시적으로 로드된 모듈이 삭제되고, 명시적으로 작성된 CU의 모든 중단점이 일시중단되며, 명시적으로 작성된 CU는 소멸됩니다. 나중에 정상적인 프로그램 실행 도중 CU가 작성되면 일시중단된 중단점이 다시 활성화됩니다.
SET SAVE BPS 함수를 사용하여 중단점을 저장하고 복원하면 활성 enclave에서 처음으로 로드된 모듈의 이름으로 중단점이 저장되고 복원됩니다. 따라서 SET QUALIFY CU 명령을 사용하여 다른 enclave의 일부로 실행되는 프로그램에 중단점을 설정하면 다른 enclave에서 실행할 때 이 명령을 사용하여 설정된 중단점은 복원되지 않습니다.
Debug Tool이 조건식을 처리(평가)하는 경우 피연산자 중 하나의 데이터가 올바르지 않으면 조건식이 올바르지 않습니다. 이 상황에서는 Debug Tool이 중지되고 명령에 대해 프롬프트됩니다. 프로그램을 계속 실행하려면 GO 명령을 입력해야 합니다. 이 상황에서 Debug Tool이 프롬프트를 표시하지 않도록 하려면 SET WARNING OFF 명령을 입력하십시오.
조건식은 다음과 같은 상황을 포함하여 여러 가지 이유로 올바르지 않게 될 수 있습니다.
조건식을 평가하는 동안 예외가 발생하고 SET WARNING이 OFF인 경우 Debug Tool은 여전히 중지되고 예외에 대해 메시지를 표시하며 명령 입력 프롬프트를 나타냅니다.
다음 예제는 다중 정의가 있고 각 정의에 다른 속성이 있는 필드를 조건식의 파트로 사용하는 경우 어떤 일이 발생하는지 설명합니다.
AT CHANGE WK-TEST-NUM
BEGIN;
IF WK-TEST-NUM = 10;
LIST 'WK-TEST-NUM IS 10';
ELSE;
GO;END-IF;
End;AT CHANGE WK-TEST-NUM
BEGIN;
SET WARNING OFF;
IF WK-TEST-NUM = 10;
LIST 'WK-TEST-NUM IS 10';
ELSE;
BEGIN;
SET WARNING ON;
GO;END;
END-IF;
SET WARNING ON;
END;
이제 WK-TEST-NUM 필드의 값이 10이 아니거나 숫자 유형이 아닌 경우 Debug Tool은 조건식 WK-TEST-NUM = 10을 거짓으로 평가하고 GO 명령을 실행합니다. Debug Tool은 중지하지 않으며 명령 입력 프롬프트를 표시하지 않습니다.
이 예제에서 조건식(WK-TEST-NUM = 10)에 대한 경고 메시지 표시는 조건식이 평가되기 전에 SET WARNING OFF 명령을 입력하여 억제되었습니다. 조건식이 평가된 후 SET WARNING ON 명령을 입력하여 경고 메시지 표시가 허용되었습니다.
SET WARNING OFF 명령을 입력하는 경우 프로그램에서 다른 문제점을 발견하는 데 도움이 되는 경고 메시지 표시를 억제할 수 있으므로 주의하십시오.
기본적으로 Debug Tool이 시작될 때 어떤 프로그램도 실행되고 있지 않습니다(C++ 생성자 및 정적 오브젝트 초기화 포함).
Debug Tool은 일반적으로 행 번호로 식별되는 화면의 한 행을 한 행으로 정의합니다. 명령문은 액션 순서 또는 선언 세트에서 한 단계를 나타내는 언어 구조입니다. 한 명령문은 한 행과 같을 수도 있고 여러 행에 걸칠 수도 있으며 여러 명령문이 한 행에 있을 수도 있습니다. 프로그램을 단계별로 실행하는 경우 Debug Tool이 실행하는 명령문의 수는 후크가 놓이는 위치에 따라 다릅니다.
다음 후크에 도달할 때까지 프로그램을 실행하려면 PF2(STEP)를 누르십시오. 다음 TEST 또는 DEBUG 컴파일러 하위 옵션의 조합을 사용하여 프로그램을 컴파일한 경우 STEP은 단일 명령문을 수행합니다.
중단점이나 프로그램 종료점에 도달할 때까지 또는 조건이 발생할 때까지 프로그램을 실행하려면 PF9(GO)를 누르십시오.
STEP OVER 명령은 호출된 함수로 step into하지 않고 실행합니다. 함수를 step over하려고 했는데 실수로 step into한 경우 STEP RETURN 명령을 실행하여 리턴 지점(호출 지점 바로 뒤)으로 step하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool은 명령문을 기록 및 재생하여 프로그램을 디버깅하는 중에 실행할 수 있도록 여러 가지 명령(PLAYBACK 명령)을 제공합니다. 명령문을 기록 및 재생하려면 다음 단계를 수행하십시오.
위의 각 단계에 대한 자세한 정보는 다음을 참조하십시오.
PLAYBACK ENABLE 명령에는 지정해야 할 다음과 같은 몇 가지 매개변수가 포함됩니다.
PLAYBACK ENABLE 명령을 사용하면 모든 컴파일 단위 또는 특정 컴파일 단위에 대해 실행하는 명령문을 기록할 수 있습니다. 예를 들어, 기존 컴파일 단위 A, B, C에 대해 실행하는 명령문을 기록할 수 있습니다. 나중에 PLAYBACK ENABLE 명령을 입력할 때 모든 컴파일 단위에 대해 실행하는 명령문을 기록하도록 지정할 수 있습니다. 별표(*)를 사용하면 현재 컴파일 단위 및 앞으로 사용할 컴파일 단위를 지정할 수 있습니다.
Debug Tool이 기록할 수 있는 명령문의 수는 다음 요소에 따라 달라집니다.
기록을 시작한 후에는 스토리지 값을 변경할 수 없습니다. 스토리지를 많이 지정할 수록 Debug Tool이 더 많은 명령문을 기록할 수 있습니다. Debug Tool이 사용 가능한 스토리지를 모두 채운 후에는 가장 최신 명령문에 관한 정보를 가장 오래된 정보 위에 겹쳐씁니다. DATA 매개변수가 올바른 경우에는 사용 가능한 스토리지가 더 빨리 채워집니다.
다음 컴파일러로 컴파일한 경우에만 TEST 컴파일러 옵션에 SYM 하위 옵션을 지정하여 컴파일한 프로그램에 DATA 매개변수를 사용할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
PLAYBACK START 명령은 기록한 명령을 재생하도록 Debug Tool에 알립니다. 이 명령은 정상적인 디버깅을 일시중단합니다. 따라서 모든 중단점이 일시중단되고 대부분의 Debug Tool 명령을 사용할 수 없게 됩니다. Debug Tool Reference and Messages는 명령문을 재생하는 중에 사용할 수 없는 전체 명령 목록을 제공합니다.
초기 방향은 역방향입니다.
기록한 명령문을 재생하려면 STEP 또는 RUNTO 명령을 입력하십시오. 다음 조건 중 하나에 도달할 때까지 기록한 명령문을 재생할 수 있습니다.
정방향으로 재생할 경우 PLAYBACK START 명령을 입력한 지점까지 재생할 수 있습니다. 명령문을 재생할 때는 기록하도록 표시한 컴파일 단위에 대해 기록한 명령문만 표시됩니다. 단계를 재생하는 동안에는 변수를 수정할 수 없습니다. DATA 매개변수가 올바른 경우에는 변수와 표현식의 컨텐츠에 액세스할 수 있습니다.
명령문이 재생되는 방향을 변경하려면 PLAYBACK FOWARD 또는 PLAYBACK BACKWARD 명령을 입력하십시오. 초기 방향은 역방향입니다.
기록한 명령문의 재생을 중지하고 정상적인 디버깅을 재개하려면 PLAYBACK STOP 명령을 입력하십시오. 이 명령은 PLAYBACK START 명령을 입력한 지점에서 정상적인 디버깅을 재개합니다. Debug Tool은 사용자가 실행하는 명령문을 계속해서 기록합니다.
실행하는 명령문에 대한 기록과 프로그램에 관한 추가 정보 수집을 중지하려면 PLAYBACK DISABLE 명령을 입력하십시오. 이 명령을 사용하면 모든 컴파일 단위 또는 특정 컴파일 단위로 실행하는 명령문에 대한 기록을 중지할 수 있습니다. 하나 이상의 컴파일 단위에 대해 기록을 중지하면 해당 컴파일 단위에 대해 수집된 데이터가 버려집니다. 모든 컴파일 단위에 대해 기록을 중지하면 PLAYBACK START 명령을 더 이상 사용할 수 없습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
명령문을 재생하는 동안에는 변수나 스토리지의 값을 수정할 수 없습니다.
명령문을 재생할 때는 대부분의 Debug Tool 명령을 사용할 수 없게 됩니다. Debug Tool Reference and Messages는 사용할 수 없는 전체 명령 목록을 제공합니다.
DATA 매개변수를 지원하는 COBOL 컴파일 단위에 대해 이 매개변수를 지정하거나 이 매개변수가 기본값인 경우, 다음 DATA DIVISION 섹션에 정의된 데이터에 액세스할 수 있습니다.
ADDRESS OF, LENGTH OF 및 WHEN-COMPILED를 제외한 모든 특수 레지스터에도 액세스할 수 있습니다. 또한 Debug Tool 명령이 지원하는 모든 특수 레지스터에 액세스할 수 있습니다.
명령문을 재생할 때는 다음 조건을 만족하는 경우에만 대부분의 Debug Tool 명령을 사용할 수 있습니다.
QUERY PLAYBACK 명령을 사용하면 DATA 옵션이 올바른 컴파일 단위를 확인할 수 있습니다.
Debug Tool Reference and Messages는 DATA 매개변수를 지정할 때 사용할 수 있는 전체 명령 목록을 제공합니다.
한 디버깅 세션에서 설정, 중단점, 모니터 스펙을 저장한 다음 이후의 디버깅 세션에서 복원할 수 있습니다. 다음과 같은 정보를 저장할 수 있습니다.
지연된 AT ENTRY 중단점이 발견되지 않았습니다. 저장되지 않았거나 복원되지 않았습니다.
대부분의 환경에서 Debug Tool은 자동으로 저장 및 복원될 수 있도록, 고유의 기본 데이터셋명을 사용하여 이러한 항목을 저장합니다. 이러한 환경에서는, 설정을 자동으로 복원하여 Debug Tool 초기화 중 SET RESTORE BPS AUTO와 SET RESTORE MONITORS AUTO 명령이 유효하도록 만들어야 합니다. 몇몇 환경에서는 RESTORE 명령을 사용하여 이러한 항목을 수동으로 복원해야 합니다.
TSO에서 CICS(고유의 ID로 로그온할 때) 및 UNIX® System Services에서는 다음과 같은 기본 데이터셋명이 사용됩니다.
비대화식 모드(전용 터미널을 통한 전체 화면 모드를 사용하지 않는 MVS Batch 모드)에서는 INSPSAFE DD문을 포함하여 Debug Tool이 설정을 저장 및 복원하는 데 사용하도록 할 데이터셋을 나타내야 하고 INSPBPM DD문을 포함하여 Debug Tool이 중단점 및 모니터와 LDD 스펙을 저장 및 복원하는 데 사용하도록 할 데이터셋을 나타내야 합니다.
설정을 저장하고 복원하려면 순차 데이터셋을 사용하십시오. 중단점 및 모니터와 LDD 스펙을 저장 및 복원하려면 PDS 또는 PDSE를 사용하십시오. 데이터셋을 압축할 필요가 없도록 PDSE를 사용하는 것이 좋습니다. Debug Tool은 독립 멤버를 사용하여 각 enclave에 대한 중단점, LDD 데이터 및 모니터 스펙을 저장합니다. Debug Tool은 enclave에 있는 초기 로드 모듈의 이름으로 멤버명을 지정합니다. enclave에 대해 저장된 모든 중단점, LDD 데이터 및 모니터 스펙을 버리려면 해당 멤버를 삭제하십시오. 멤버의 컨텐츠는 변경하지 마십시오.
자동으로 저장하고 복원한다는 것은 디버깅 세션을 완료할 때마다 Debug Tool이 디버깅 세션에 대한 정보를 저장한다는 것을 의미합니다. 디버깅 세션을 시작할 때 Debug Tool이 해당 정보를 복원합니다. 자동 저장 및 복원을 설정하려면 파일을 할당하고 이 기능을 사용할 수 있는 적합한 명령을 입력해야 합니다. 다음 방법 중 하나에서 이를 수행할 수 있습니다.
자동 저장 및 복원을 사용하려면 다음 단계를 수행하십시오.
SET SAVE SETTINGS AUTO; SET RESTORE SETTINGS AUTO;
SET SAVE BPS AUTO; SET RESTORE BPS AUTO; SET SAVE MONITORS AUTO; SET RESTORE MONITORS AUTO;
중단점 또는 모니터 스펙의 자동 복원을 사용하려면 4단계(설정의 자동 저장 및 복원 사용)를 수행하십시오.
다음에 Debug Tool을 시작할 때 설정이 자동으로 복원됩니다. 동일한 프로그램을 디버깅하는 경우 중단점과 모니터 스펙도 자동으로 복원됩니다.
중단점과 모니터의 자동 저장을 작동 불가능으로 지정하려면 다음 설정값이 유효한지 확인하십시오.
설정값의 자동 저장을 작동 불가능으로 설정하려면 SET SAVE SETTINGS NOAUTO; 설정이 유효한지 확인하십시오.
중단점과 모니터의 자동 복원을 작동 불가능으로 지정하려면 다음 설정값이 유효한지 확인하십시오.
설정값의 자동 복원을 작동 불가능으로 설정하려면 SET RESTORE SETTINGS NOAUTO; 설정이 유효한지 확인하십시오.
이러한 값들을 자동 저장하지 않도록 설정하더라도 마지막으로 저장된 데이터는 해당 데이터셋에 나타나므로 이 데이터셋에서 복원할 수 있습니다. 이는 데이터가 마지막으로 저장된 시점에서 값을 복원한다는 것을 의미합니다. 이 시점이 마지막으로 Debug Tool을 실행한 시점이 아닐 수도 있습니다.
다음 환경에서는 자동 복원이 지원되지 않습니다.
다음 단계를 수행하여 중단점, 모니터 및 LDD 스펙을 저장 및 복원할 수 있습니다.
SET SAVE SETTINGS AUTO FILE mysetdsn;
SET SAVE BPS AUTO FILE mybpdsn; SET SAVE MONITORS AUTO;
다음 환경 중 하나에서 다음에 Debug Tool을 시작할 때, Debug Tool 세션이 시작될 때 다음 명령을 아래에 나오는 순서대로 사용하십시오.
SET SAVE SETTINGS AUTO FILE mysetdsn; RESTORE SETTINGS; SET SAVE BPS AUTO FILE mybpdsn; RESTORE BPS MONITORS;
이러한 명령을 사용자 환경 설정 파일에 삽입할 수 있습니다.
정보가 저장 또는 복원될 때마다 다음 액션이 수행됩니다.
각 단계에 운영 체제 서비스가 필요하므로 전체 프로세스에는 상당한 시간이 걸릴 수 있습니다.
설정값을 저장하고 복원하는 경우 이 프로세스는 Debug Tool이 활성화될 때와 Debug Tool이 종료될 때 한 번씩 수행됩니다. 그러므로 Debug Tool이 반복적으로 활성화되고 종료되지 않는 한 프로세스는 과도하게 시간을 소비하지 않습니다. 그러나 중단점, 모니터 또는 둘 다를 저장하고 복원하는 경우 이 프로세스는 각 enclave에 들어갈 때와 각 enclave를 종료할 때 한 번씩 발생합니다.
프로그램이 다중 enclave 또는 반복적으로 실행되는 단일 enclave로 구성되는 경우 이 프로세스가 여러 번 발생할 수 있습니다. 이 경우 성능을 고려한다면 중단점과 모니터의 저장 및 복원을 작동 불가능으로 설정하는 것이 바람직합니다. 프로그램이 CICS에서 DTCN을 사용하여 실행되고 중단점과 모니터의 저장 및 복원이 사용 불가능한 경우(SET SAVE BPS NOAUTO;, SET SAVE MONITORS NOAUTO;, SET RESTORE BPS NOAUTO; 및 SET RESTORE MONITORS NOAUTO;가 유효함), 표준 메소드보다 시간을 적게 소비하지만 CICS가 재시작할 때 중단점을 보호하지 않고 모니터의 저장 및 복원도 제공하지 않는 CICS 임시 스토리지 대기열에서 중단점이 저장되고 복원됩니다.
Debug Tool은 다음과 같은 방법으로 변수 값을 표시할 수 있습니다.
Debug Tool이 선언된 해당 데이터 유형의 변수 값을 표시하지 못하는 경우에는 Debug Tool이 선언된 데이터 유형으로 표시할 수 없는 문자를 처리하는 방법을 참조하십시오.
시작하기 전에 정보가 표시되는 형식을 변경할 것인지 결정하십시오. 변수가 영역 및 구조인 경우 화면에 테이블 형식으로 배열되면 더 쉽게 읽을 수 있습니다. 형식을 변경하려면 다음 옵션 중 하나를 수행하십시오.
변수의 내용을 한 번만 표시하려면 다음 옵션 중 하나를 수행하십시오.
rightSide = (leftSide * leftSide) + (bottomSide * bottomSide);
어셈블러 또는 디스어셈블리 프로그램을 디버그하는 경우, 왼쪽에서 숫자 1로 시작하여 시스템 명령어의 각 피연산자를 숫자로 지정하십시오.
모니터 창에 변수를 추가하는 경우 해당 변수의 값을 모니터링 중입니다. 모니터 창에 변수를 추가하려면 다음 옵션 중 하나를 수행하십시오.
MONITOR LIST variable-name;
Debug Tool이 제어를 수신하거나 사용자가 표시에 영향을 미칠 수 있는 Debug Tool 명령을 입력할 때마다 Debug Tool은 모니터 창이 항상 현재 값을 표시하도록 모니터 창에서 variable-name의 값을 갱신합니다.
rightSide = (leftSide * leftSide) + (bottomSide * bottomSide);
어셈블러 또는 디스어셈블리 프로그램을 디버그하는 경우, 왼쪽에서 숫자 1로 시작하여 시스템 명령어의 각 피연산자를 숫자로 지정하십시오.
Debug Tool이 제어를 수신하거나 사용자가 표시에 영향을 미칠 수 있는 Debug Tool 명령을 입력할 때마다 Debug Tool은 모니터 창이 항상 현재 값을 표시하도록 모니터 창에서 leftSide의 값을 갱신합니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
다음 단계를 수행하여 COBOL 프로그램의 작업-스토리지 섹션에 있는 모든 변수를 모니터 창에 추가할 수 있습니다.
Debug Tool이 제어를 수신하거나 사용자가 표시에 영향을 미칠 수 있는 Debug Tool 명령을 입력할 때마다 Debug Tool이 모니터 창의 변수 값을 각각 갱신하여 Debug Tool은 항상 현재 값을 표시합니다.
작업-스토리지 섹션에 많은 변수가 있을 수 있기 때문에 작업-스토리지 섹션을 모니터하면 오버헤드가 크게 증가하고 더 많은 스토리지를 사용하게 됩니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
SET MONITOR DATATYPE ON 명령은 모니터 창에 표시되는 변수(자동 모니터 섹션의 변수 포함)의 데이터 유형을 나타냅니다. 데이터 유형은 변수의 선언에 사용된 원래 데이터 유형입니다. SET MONITOR DATATYPE OFF 명령은 이 정보가 표시되지 않게 합니다.
모니터 창에 변수의 값 및 데이터 유형을 표시하려면 다음을 수행하십시오.
SET MONITOR DATATYPE ON;
MONITOR LIST variable-name;
variable-name을 실제 변수명으로 대체하십시오. Debug Tool은 모니터 창에 변수를 추가하고 변수의 현재 값 및 데이터 유형을 표시합니다.
SET AUTOMONITOR ON ;
Debug Tool은 모니터 창의 자동 모니터 섹션에 현재 명령문의 변수를 추가하고 변수의 현재 값 및 데이터 유형을 표시합니다.
SET AUTOMONITOR ON LOG;
Debug Tool은 모니터 창의 자동 모니터 섹션에 변수를 추가하고 변수의 현재 값 및 데이터 유형을 표시하며 로그에 정보를 저장합니다.
모니터 창에 변수를 추가하는 경우 Debug Tool은 변수에 1 - 99 범위의 참조 번호를 지정합니다. 참조 번호를 사용하여 모니터 창의 변수를 다른 변수로 바꿀 수 있습니다.
모니터 창의 변수를 다른 변수로 바꾸려면 다음 단계를 수행하십시오.
MONITOR reference_number LIST variable-name;
기존 참조 번호 또는 가장 큰 기존 참조 번호에 1을 더한 참조 번호만 지정할 수 있습니다.
모니터 창에 배열 요소를 추가한 경우 다음 단계를 수행해서 해당 요소를 동일한 배열의 다른 요소로 바꿀 수 있습니다.
프로그램을 단계별로 실행하는 경우 각 명령문이 실행될 때 각 명령문에
있는 변수를 모니터할 수 있습니다. 각 명령문을 실행하기 전에
모니터 창에 수동으로 변수를 추가
(모니터 창에 변수 추가에서 설명)하면
시간이 많이 걸립니다. Debug Tool은 각 명령문이 실행되기 전후에 변수를 자동으로 추가하고
명령문이 실행되기 전후에 해당 변수의 값을 표시한 다음 명령문을 실행한 후에 모니터 창에서
변수를 제거할 수 있습니다. 이를 수행하려면 SET AUTOMONITOR ON 명령을 사용하십시오.
시작하기 전에 Debug Tool이 모니터 창에 자동으로 변수를 추가하는 방법을 참조하여 SET AUTOMONITOR 명령이 어떻게 작동하는지 이해하십시오.
모니터 창에 자동으로 변수를 추가하려면 다음 단계를 수행하십시오.
프로그램을 단계적으로 실행할 때 Debug Tool은 창의 자동 모니터 섹션에 변수의 이름과 값을 표시합니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
로그 파일에 다음 정보를 저장하려면 SET AUTOMONITOR ON LOG 명령을 입력하십시오.
기본 옵션은 NOLOG이며, 위의 정보를 저장하지 않습니다.
로그 파일의 각 항목에는 프로그램 내에서의 중단점 위치와 명령문에 있는 변수의 이름 및 값이 포함됩니다. 로그 파일에 이 정보를 저장하는 것은 중지하되 모니터 창의 자동 모니터 섹션은 계속해서 갱신하려면 SET AUTOMONITOR ON NOLOG 명령을 입력하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
SET AUTOMONITOR ON 명령을 입력하는 경우 Debug Tool은 다음 예제와 같이 모니터 행에서 모니터되는 변수 목록의 맨 아래에 ********** AUTOMONITOR ********** 행을 표시합니다.
COBOL 위치: DTAM01 :> 109.1
Command ===> Scroll ===> PAGE
모니터 -+----1----+----2----+----3----+----4----+----5----+----6- 행: 1/7
******************************** 모니터 맨 위 *******************************
----+----1----+----2----+----3----+----4----+
0001 1 NUM1 0000000005
0002 2 NUM4 '1111'
0003 3 WK-LONG-FIELD-2 '123456790 223456790 323456790 423456790 523
0004 456790 623456790 723456790 823456790 9234567
0005 90 023456790 123456790 223456790 323456790 4
0006 23456790 523456790 623456790 723456790 82345
0007 ********** AUTOMONITOR **********
이 행 아래의 영역을 자동 모니터 섹션이라고 합니다. STEP 명령을 입력하거나 중단점이 발생할 때마다 Debug Tool은 다음 태스크를 수행합니다.
이 동작은 Debug Tool이 명령문을 실행하기 전의 변수 값을 표시합니다. Debug Tool이 명령문을 실행한 후의 변수 값을 보려면 SET AUTOMONITOR ON PREVIOUS 명령을 입력하십시오. Debug Tool은 모니터 창 맨 아래의 모니터되는 변수 목록에 ********** AUTOMONITOR - PREVIOUS load-name ::> cu-name :> statement-id ********** 행을 표시합니다. STEP 명령을 입력하거나 중단점이 발생할 때마다 Debug Tool은 다음 태스크를 수행합니다.
Debug Tool이 명령문을 실행하기 전과 후의 변수 값을 모두 보려면 SET AUTOMONITOR ON BOTH 명령을 입력하십시오. Debug Tool은 모니터 창 맨 아래의 모니터되는 변수 목록에 ********** AUTOMONITOR load-name ::> cu-name :> statement-id ********** 행을 표시합니다. Debug Tool은 이 행 아래에 Debug Tool이 다음에 실행할 명령문의 변수명과 값을 표시합니다. 그런 다음, Debug Tool은 ***** Previous Statement load-name ::> cu-name :> statement-id ***** 행을 표시합니다. Debug Tool은 이 행 아래에 Debug Tool이 방금 실행한 명령문의 변수명과 값을 표시합니다. STEP 명령을 입력하거나 중단점이 발생할 때마다 Debug Tool은 다음 태스크를 수행합니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
이 절의 예제에서는 다음 두 COBOL 코드 행을 실행한다고 가정합니다.
COMPUTE LOAN-AMOUNT = FUNCTION NUMVAL(LOAN-AMOUNT-IN). 1
COMPUTE INTEREST-RATE = FUNCTION NUMVAL(INTEREST-RATE-IN).
1 행의 명령문을 실행하기 전에 다음 명령을 입력하십시오.
SET AUTOMONITOR ON ;
모니터 창의 자동 모니터 섹션에 LOAN-AMOUNT 및 LOAN-AMOUNT-IN 변수의 이름과 값이 표시됩니다. 이러한 값은 명령문을 실행하기 전의 변수 값입니다.
STEP 명령을 입력하십시오. Debug Tool이 모니터 창의 자동 모니터 섹션에서 LOAN-AMOUNT와 LOAN-AMOUNT-IN을 제거한 다음 INTEREST-RATE와 INTEREST-RATE-IN 변수의 이름과 값을 표시합니다. 이러한 값은 명령문을 실행하기 전의 변수 값입니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
모니터 창에서 Debug Tool은 다음 문자 중 하나를 사용하여 선언된 자체 데이터 유형으로 표시할 수 없는 문자를 나타냅니다.
선언된 자체 데이터 유형으로 표시할 수 없는 문자는 코드 페이지별로 다르지만 일반적으로 이 문자는 화면에 표시할 수 있는 상응 기호가 없는 문자들입니다.
이 문자를 수정하기 위해 HEX 및 DEF 접두부 명령을 사용하여 수정하고 있는 문자를 파악하고 확인할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool이 선언된 데이터 유형으로 표시할 수 없는 문자를 처리하는 방법에서 설명한 대로 선언된 자체 데이터 유형으로 표시할 수 없는 문자를 수정하려면 예상 결과가 맞는지 확인한 후에 다음 단계를 수행하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
컬럼 형식의 변수 값을 모니터하려면 SET MONITOR COLUMN ON 명령을 입력하십시오. 모니터 창에 표시되는 변수명은 동일한 컬럼에 맞추어지며 값도 같은 컬럼에 맞추어집니다. Debug Tool은 모니터 창의 헤더 행 아래에 모니터 값 영역 배율을 표시합니다.
모니터 창에서 모니터되는 변수가 랩된 경우 값을 표시하려면 SET MONITOR WRAP ON 명령을 입력하십시오. 모니터되는 변수가 화면이동 가능한 행에 있는 경우 값을 표시하려면 SET MONITOR COLUMN ON 명령을 입력한 후 SET MONITOR WRAP OFF 명령을 입력하십시오.
LIST %HEX 명령을 입력하거나, LIST %HEX 명령으로 PF 키를 정의하여 16진 형식으로 변수 값을 표시할 수 있습니다. PL/I 프로그램의 경우, 16진 형식으로 변수 값을 표시하려면 PL/I 기본 제공 함수 HEX를 사용하십시오. PL/I HEX 기본 제공 함수에 대한 자세한 정보는 Enterprise PL/I for z/OS: Programming Guide를 참조하십시오. 16진 형식으로 PL/I 변수를 표시하면 모니터 창에서 기존 값 위에 새 값을 입력하여 변수 값을 편집할 수 없습니다.
16진 형식으로 변수 값을 표시하려면 variable-name에 원하는 변수를 지정하여 다음 명령 중 하나를 입력하십시오.
Debug Tool이 16진 형식으로 variable-name 변수의 값을 표시합니다.
LIST %HEX 명령을 사용하여 PF 키를 정의한 경우에는 다음 단계를 수행하십시오.
PL/I HEX 기본 제공 함수로는 PF 키를 정의할 수 없습니다.
변수가 선언된 데이터 유형 또는 16진 형식 중 하나로 변수 값을 모니터링할 수 있습니다. 선언된 자체 데이터 유형으로 변수 값을 모니터하려면 모니터 창에 변수 추가에서 설명하는 지시사항에 따르십시오. PL/I HEX 내장 함수를 사용하여 16진 형식으로 PL/I 변수를 모니터하는 경우 모니터 창에서 기존 값에 새 값을 입력하여 변수 값을 편집할 수 없습니다. PL/I HEX 내장 함수 대신 이 주제에서 설명하는 명령을 사용하십시오.
16진 형식으로 변수 값이나 표현식을 모니터링하려면 다음 지시사항 중 하나를 수행하십시오.
MONITOR n HEX ;
n은 16진 형식으로 표시하려는 모니터링하는 표현식에 해당하는 모니터 목록의 번호로 대체하십시오.
MONITOR LIST (expression) HEX ;
expression은 모니터하려는 변수나 복합 표현식의 이름으로 대체하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
다음 명령 중 하나를 사용하여 변수 또는 스토리지의 값을 수정할 수 있습니다.
각 명령에 대한 자세한 정보는 Debug Tool Reference and Messages를 참조하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
모니터 창에서 기존 값 위에 새 값을 입력하여 변수 값을 수정하려면 다음 단계를 수행하십시오.
Debug Tool이 변수 또는 스토리지를 수정합니다. Debug Tool이 변수 또는 스토리지를 수정하도록 생성한 명령은 로그 파일에 저장됩니다.
모니터 창에서 기존 값 위에 새 값을 입력하여 변수 값을 수정할 수 있습니다. 다음과 같은 경우는 예외이므로 주의하십시오.
모니터 값 영역에 큰따옴표(") 또는 작은따옴표(')를 입력하는 경우 적용 가능한 따옴표 규칙을 모두 준수하는지 주의하여 확인하십시오.
SET AUTOMONITOR ON 명령을 입력하기 전에 모니터 창이 닫혀 있으면 Debug Tool이 모니터 창을 열고 이 창의 자동 모니터 구역에 사용자가 실행하는 명령문에 있는 변수의 이름과 값을 표시합니다.
SET AUTOMONITOR OFF 명령을 입력하기 전에 모니터 창이 열려 있고 SET AUTOMONITOR ON으로 모니터링되지 않는 변수 값을 모니터링하고 있는 경우에는 모니터 창이 그대로 열려 있습니다.
Debug Tool은 메모리 창에서 메모리 섹션을 표시할 수 있습니다. 메모리 창을 열고 다음 액션 중 하나를 수행하여 특정 메모리 섹션을 표시할 수 있습니다.
실제 창에 메모리 창이 표시되지 않은 경우 나중에 실제 창에 메모리 창이 표시될 때 사용할 수 있도록 기본 주소가 저장됩니다.
실제 창에 메모리 창을 표시하려면 WINDOW SWAP MEMORY LOG 명령이나 PANEL LAYOUT 명령을 입력하십시오.
실제 창에 메모리 창을 표시하려면 WINDOW SWAP MEMORY LOG 명령이나 PANEL LAYOUT 명령을 입력하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
16진 데이터 영역에 16진 문자(0-9, A-F, a-f)를 입력할 수 있습니다. Debug Tool은 입력한 값으로 메모리를 갱신합니다. 메모리의 프로그램 명령 영역을 수정하면 Debug Tool은 STEP 명령을 전혀 실행하지 않고 메모리를 수정한 인접 영역에 있는 임의의 AT 중단점에서 중지하지도 않습니다. 뿐만 아니라 프로그램을 실행하려고 해도 결과가 예측 불가능합니다.
문자 데이터 컬럼은 데이터의 문자 표시이며 표시를 위해서 사용됩니다.
디버깅하는 중에 DESCRIBE ALLOCATIONS, ALLOCATE 및 FREE 명령을 사용하여 파일을 관리할 수 있습니다. CICS 프로그램을 디버깅하는 중에는 파일을 관리할 수 없습니다.
현재 할당된 파일의 목록을 보려면 DESCRIBE ALLOCATIONS 명령을 입력하십시오. 다음 화면에는 명령 및 샘플 출력을 표시합니다.
DESCRIBE ALLOCATIONS ; * 현재 할당: * 볼륨 CAT 표시 열림 DD명 DS명 * 1 --- 2 - 3 ------ 4 - 5 ----- 6 ------------------------------------------ * COD008 * SHR KEEP * EQAZSTEP BCARTER.TEST.LOAD * SMS004 * SHR KEEP SHARE.CEE210.SCEERUN * COD00B * OLD KEEP * INSPLOG BCARTER.DTOOL.LOGV * VIO NEW DELETE ISPCTL0 SYS02190.T085429.RA000.BCARTER.R0100269 * COD016 * SHR KEEP ISPEXEC BCARTER.MVS.EXEC * IPLB13 * SHR KEEP ISPF.SISPEXEC.VB * VIO NEW DELETE ISPLST1 SYS02190.T085429.RA000.BCARTER.R0100274 * IPLB13 * SHR KEEP * ISPMLIB ISPF.SISPMENU * SMS278 * SHR KEEP SHARE.ANALYZ21.SIDIMLIB * SHR89A * SHR KEEP SHARE.ISPMLIB * SMS25F * SHR KEEP * ISPPLIB SHARE.PROD.ISPPLIB * SMS891 * SHR KEEP SHARE.ISPPLIB * SMS25F * SHR KEEP SHARE.ANALYZ21.SIDIPLIB * IPLB13 * SHR KEEP ISPF.SISPPENU * IPLB13 * SHR KEEP SDSF.SISFPLIB * IPLB13 * SHR KEEP SYS1.SBPXPENU * COD002 * OLD KEEP * ISPPROF BCARTER.ISPPROF * NEW DELETE SYSIN TERMINAL * NEW DELETE SYSOUT TERMINAL * NEW DELETE SYSPRINT TERMINAL
다음 목록은 각 열에 대해 설명합니다.
ALLOCATE 명령을 사용하면 카탈로그에 있는 기존 데이터셋에 파일을 할당할 수 있습니다.
FREE 명령을 사용하면 할당된 파일을 비울 수 있습니다.
기본적으로 DESCRIBE ALLOCATIONS 명령은 현재 사용자가 할당한 파일을 나열합니다. 다른 매개변수를 지정하여 LINK 목록, LPA 목록, APF 목록, 시스템 카탈로그, Parmlib 및 Proclib에 현재 할당된 데이터셋과 같은 다른 시스템 할당을 나열할 수 있습니다. 이러한 정보를 나열하기 위해 지정해야 할 매개변수에 대한 자세한 정보는 Debug Tool Reference and Messages를 참조하십시오.
로그 창에 메시지 ID 없이 오류 메시지가 나타나면 다음과 같이 메시지 ID를 표시할 수 있습니다.
EQA1807E 명령 요소 d가 모호합니다.
프로파일을 수정하거나 SET MSGID ON 명령을 사용하십시오. 프로파일을 수정하려면 PANEL PROFILE 명령을 사용하고 NO 위에 YES를 입력하여 메시지 ID 번호 표시를 YES로 설정하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
이 주제에서는 Debug Tool에서 인식하는 컴파일 단위를 파악하려고 할 때 수행해야 하는 작업에 대해 설명합니다. 이는 컴파일 단위명을 잊어버렸거나 프로그램을 컴파일한 이후에 소스, 목록 또는 별도의 디버그 파일을 이동했거나 이름을 변경한 경우에 유용하게 사용됩니다. Debug Tool은 알려진 컴파일 단위에 연관된 소스, 목록 또는 별도의 디버그 파일만 표시할 수 있습니다.
Debug Tool에서 인식하는 컴파일 단위를 판별하려면 다음 옵션 중 하나를 수행하십시오.
LIST NAMES CUS 명령을 실행하면 Debug Tool은 로그 창에 컴파일 단위 목록을 표시합니다. 이 목록을 사용하면 컴파일 단위명에 "SET QUALIFY CU" 단어를 입력하여 SET QUALIFY CU 명령을 작성할 수 있습니다. 그런 다음, Enter를 누르십시오. Debug Tool은 입력한 단어로 작성된 명령과 컴파일 단위명을 표시합니다. 명령을 실행하려면 Enter를 다시 한 번 누르십시오.
예를 들어 LIST NAMES CUS 명령을 입력하면 Debug Tool은 로그 창에 다음 행을 표시합니다.
USERID.MFISTART.C(CALC) USERID.MFISTART.C(PUSHPOP) USERID.MFISTART.C(READTOKN)
마지막 행에 "SET QUALIFY CU"를 입력하고 Enter를 누르면 Debug Tool은 다음 명령을 명령행에 작성합니다. SET QUALIFY CU "USERID.MFISTART.C(READTOKN)". Enter를 누르면 Debug Tool이 명령을 실행합니다.
이 메소드는 키스트로크를 저장하고 긴 명령의 오류를 줄여줍니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool의 대화식 세션 중에 필요하면 어텐션 인터럽트를 요청할 수 있습니다. 예를 들어, 종료되지 않는 루프를 중지하거나 터미널에 대량의 출력이 표시되는 것을 중지하거나 STEP 명령의 실행을 중지할 수 있습니다.
어텐션 인터럽트와 ATTENTION 조건을 혼동하지 않아야 합니다. AT OCCURRENCE 또는 ON ATTENTION을 설정한 경우, 어텐션 인터럽트를 요청하면 이 중단점과 연관된 명령이 실행되지 않습니다.
호스트 운영 체제에서 인식하는 어텐션 인터럽트를 Language Environment에서도 인식할 수 있도록 하려면 Language Environment TRAP과 INTERRUPT 런타임 옵션을 둘 모두 ON으로 설정하지는 않아야 합니다. TEST 런타임 옵션의 test_level 하위 옵션을 NONE으로 설정하지 않아야 합니다.
다음 환경 및 디버깅 모드에서는 어텐션 인터럽트 키가 지원되지 않습니다.
MVS 전용: C의 경우, 어텐션 인터럽트를 사용할 때 SET INTERCEPT ON FILE stdout을 사용하여 터미널로 향하는 메시지를 인터럽트하십시오. 어텐션 인터럽트를 요청한 후에는 메시지가 터미널로 향하지 않으므로 이 작업이 필요합니다.
Dynamic Debug 기능 전용: Dynamic Debug 기능은 컴파일인 후크가 있는 프로그램에만 어텐션 인터럽트를 지원합니다.
일부 키보드에서는 올바른 키에 ATTN이 표시되지 않을 수 있습니다. 대개 다음과 같은 키가 사용됩니다.
어텐션 인터럽트를 요청하면 Debug Tool에 제어가 주어집니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
프로그램 디버깅을 완료하면 다음 방법 중 하나를 사용하여 전체 화면 디버그 세션을 종료할 수 있습니다.
CICS 비Language Environment 어셈블러 또는 비Language Environment COBOL 프로그램을 디버그하는 경우 QUIT이 Debug Tool을 종료시키고 ABEND 4038로 태스크가 종료됩니다.
CICS 비Language Environment 어셈블러 또는 비Language Environment COBOL 프로그램을 디버그하는 경우 QUIT이 Debug Tool을 종료시키고 ABEND 4038로 태스크가 종료됩니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.