전체 화면 모드 사용: 개요

아래 주제에서는 Debug Tool 전체 화면 인터페이스와 이 인터페이스를 사용하여 일반적인 디버깅 태스크를 수행하는 방법을 설명합니다.

나중에 Batch 모드나 행 모드를 사용할 계획이 있더라도 먼저 전체 화면 모드로 프로그램을 디버깅하면 Debug Tool 사용 방법을 가장 쉽게 배울 수 있습니다.

다음 목록은 특정 유형의 터미널에 대해 Debug Tool이 지원하는 최대 화면 크기를 설명합니다.

주:
이 주제에서 사용된 PF 키 정의는 기본 설정입니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

Debug Tool 세션 패널

Debug Tool 세션 패널에는 디버깅하고 있는 프로그램에 대한 정보가 포함된 헤더, 명령행 및 최대 3개의 실제 창이 포함됩니다. 실제 창은 특정 유형의 디버깅 정보만 표시하는 화면 공간입니다. 디버깅 정보는 논리적 창으로 부르는 다음 유형으로 구성됩니다.

모니터 창
SET AUTOMONITOR ONMONITOR 명령을 입력하여 표시할 수 있는 변수 및 해당 값
소스 창
Debug Tool이 찾거나 찾을 위치를 지정할 수 있는 소스 또는 목록 파일
로그 창
Debug Tool과의 상호작용한 레코드 및 해당 상호작용의 결과
메모리 창
MEMORY 명령을 입력하여 선택할 수 있는 메모리 섹션

각 실제 창은 한 개의 논리적 창만 지정할 수 있습니다. 실제 창은 논리적 창 이름으로 가정하기 때문에 실제 창에 영향을 주는 명령을 입력하면(예: 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 

·
·
·

헤더 필드에 대한 설명은 아래 내용을 참조하십시오.

 1  Assemble, C, COBOL, NL COBOL, Disassem 또는 PL/I
현재 프로그래밍 언어의 이름입니다. 이 언어가 반드시 소스 창에 표시된 코드의 프로그래밍 언어일 필요는 없습니다. 이 필드에 표시되는 언어는 명령 입력 시 따라야 할 구문 규칙을 결정합니다.
주:
  1. Debug Tool은 C와 C++ 프로그램을 별도로 취급하지 않습니다. 소스 창에 C++ 프로그램이 있으면 이 필드에 C만 표시됩니다.
  2. NL COBOL은 비Language Environment COBOL을 표시하는 데 사용됩니다.
 2  위치
실행이 일시중단된 명령문 및 프로그램 단위 이름으로, 대개 compile unit:>nnnnnn 형식입니다.

위의 C 예제에서는 MYID.SOURCE(TSTPGM1)의 실행이 248행에서 일시중단되었습니다.

위의 COBOL 예제에서는 XYZPROG 실행이 XYZPROG::>SUBR:>118 또는 SUBR 서브루틴의 118행에서 중단되었습니다.

기록된 명령문을 재생하는 경우, "LOCATION" 대신 PBK<LOC 또는 PBK>LOC이 표시됩니다. <and> 기호는 기록된 명령문이 역방향으로 재생되고 있는지(<) 또는 정방향으로 재생되고 있는지(>)를 나타냅니다.

Enterprise PL/I 컴파일러나 C/C++ 컴파일러를 사용할 경우, 컴파일러 단위 이름이 소스의 전체 데이터셋명입니다. 긴 형식으로 CU 이름을 표시하기 위해 LONGCUNAMEON(기본값)으로 설정한 경우, 이름이 잘릴 수 있습니다. PL/I 프로그램이 다음 컴파일러로 컴파일되었으며 다음 환경에서 실행 중인 경우, 기본 프로시저의 이름 또는 패키지 명령문이 표시됩니다.

 3  명령
다음 Debug Tool 명령을 입력하는 영역입니다. 여기에 올바른 Debug Tool 명령을 모두 입력할 수 있습니다.
 4  화면이동
숫자를 지정하지 않고 SCROLL 명령을 입력한 경우, 화면이동할 행이나 열의 수입니다. 이 필드를 숨기려면 SET SCROLL DISPLAY OFF 명령을 입력하십시오. 화면이동할 행이나 열의 수를 수정하려면 SET DEFAULT SCROLL 명령을 사용하십시오.

이 필드의 값은 SCROLL UP, SCROLL DOWN, SCROLL LEFTSCROLL RIGHT 화면이동 명령에 적용되는 피연산자입니다. 표 17은 모든 화면이동 명령을 보여 줍니다.

표 17. 화면이동 명령
명령 설명
n n개 행을 화면이동합니다.
HALF 페이지 절반을 화면이동합니다.
PAGE 페이지 전체를 화면이동합니다.
TOP 데이터 맨 위로 화면이동합니다.
BOTTOM 데이터 맨 아래로 화면이동합니다.
MAX 데이터 한계까지 화면이동합니다.
LEFT x x자만큼 왼쪽으로 화면이동합니다.
RIGHT x x자만큼 오른쪽으로 화면이동합니다.
CURSOR 커서 위치입니다.
TO x x행으로 화면이동합니다. 여기서, x는 정수입니다.
 5  메시지 영역
명령행 바로 아래의 공간에 정보 및 오류 메시지가 표시됩니다.

소스 창

 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.        .

소스 창에는 소스 파일이나 목록이 표시됩니다. 아래의 설명과 같이 소스 창은 네 부분으로 구성됩니다.

 1  헤더 영역
창을 식별하고, 컴파일 단위 이름을 보여 주며, 소스나 목록의 현재 위치를 표시합니다.
 2  접두부 영역
소스 창의 왼쪽 8개 열을 차지합니다. 프로그램의 명령문을 참조할 때 사용할 수 있는 명령문 번호나 행 번호가 포함됩니다. 접두부 영역에서는 접두부 명령 AT, CLEAR, ENABLE, DISABLE, QUERYSHOW를 사용하여 중단점을 설정, 표시 및 제거할 수 있습니다.
 3  소스 표시 영역
현재 규정된 프로그램 단위에 대해 소스 코드(C 및 C++ 프로그램일 경우), 소스 목록(COBOL 또는 PL/I 프로그램일 경우), 유사 어셈블러 목록(어셈블러 프로그램일 경우) 또는 디스어셈블리 보기(디버그 정보가 없는 프로그램일 경우)를 보여 줍니다. 현재 실행문이 소스 표시 영역에 있으면 실행문이 강조표시됩니다.
 4  접미부 영역
화면 오른쪽에 있는 변수 너비의 좁은 열로, Debug Tool이 빈도 계수를 표시하는 데 사용합니다. 이 영역의 너비는 영역에 표시해야 하는 가장 큰 계수의 너비를 넘지 않습니다.

접미부 영역은 선택사항입니다. 접미부 영역을 표시하려면 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'
 1 
값 모니터 영역에서 컬럼 위치 측정에 도움이 되는 참조를 제공하는 값 모니터 배율입니다.
 2 
Debug Tool이 변수의 값을 표시하는 값 모니터 영역입니다. Debug Tool은 모니터 창에서 표시 가능한 영역의 전체 폭까지 오른쪽으로 표시를 확장합니다.
 3 
Debug Tool이 변수명을 표시하는 이름 모니터 영역입니다.
 4 
Debug Tool이 변수에 지정된 참조 번호를 표시하는 참조 번호 모니터 영역입니다.

MONITOR LIST, MONITOR QUERY, MONITOR DESCRIBESET 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를 지정하여 로그에서 STEPGO 명령을 제외할 수 있습니다(선택사항).

IMMEDIATE와 함께 사용할 수 있는 SCROLLWINDOW와 같은 명령은 로그 창에서 제외됩니다.

기본적으로 로그 창에는 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 
 1  헤더 영역
헤더 영역은 창을 식별하고 배율을 포함합니다.
 2 정보 영역
정보 영역에는 최대 8개의 기본 주소 메모리 이력이 표시됩니다. 정보 영역에는 주소 모드 및 최대 8개의 고유 기본 주소도 표시됩니다.

다음 섹션은 집합적인 메모리 덤프 영역입니다.

 3  오프셋 컬럼
오프셋 컬럼에는 메모리에서 데이터 행의 기본 주소 오프셋이 표시됩니다.
 4  주소 컬럼
주소 컬럼에는 메모리에서 데이터 행 시작 주소의 낮은 자리 32비트가 표시됩니다.
 5  16진 데이터 컬럼
16진 데이터 영역에는 데이터가 16진 형식으로 표시됩니다. 각 행에는 4개의 4바이트 그룹으로 16바이트의 메모리가 표시됩니다.
 6  문자 데이터 컬럼
문자 데이터 영역에는 데이터가 문자 형식으로 표시됩니다. 각 행에는 16바이트의 메모리가 표시됩니다.

메모리 창에 표시되는 최대 행 수는 창 크기로 제한됩니다. SCROLL DOWNSCROLL UP 명령을 사용하여 메모리를 추가로 표시할 수 있습니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

명령 팝업 창

Debug Tool이 소스, 로그 및 모니터 창에 대한 팝업 창으로 명령 팝업 창을 표시하여 긴 명령이나 여러 행의 명령을 보다 쉽게 입력할 수 있습니다. 다음 상황이 발생할 때 Debug Tool이 명령 팝업 창을 표시합니다.

다음 조치 중 하나를 수행하여 창의 크기를 제어할 수 있습니다.

명령을 입력한 후 Enter를 눌러 명령을 실행하고 창을 닫으십시오.

목록 팝업 창

로그 창을 표시할 수 없으면 Debug Tool이 목록 팝업 창에 목록 표현식 명령 결과를 표시하고 해당 결과를 로그에 작성합니다. 표현식 평가에 실패하는 경우 Debug Tool에 오류 메시지가 있는 목록 팝업 창이 표시됩니다. 목록 팝업 창이 열려 있는 동안 변수 값을 변경할 수 없습니다. 명령행에 SCROLL UPSCROLL DOWN 명령을 입력하거나 적합한 PF 키를 사용하여 목록 팝업 창에서 위아래로 화면이동할 수 있습니다. 목록 팝업 창에 대한 데이터의 최대 행은 1000행을 초과할 수 없습니다. 표현식 평가 결과가 1000행을 초과하는 경우 Debug Tool이 명령행 아래에 경고 메시지를 표시합니다. 목록 팝업 창을 닫으려면 다음 중 하나를 수행하십시오.

환경 설정 파일 작성

Debug Tool의 모양이나 동작과 관련된 환경 설정을 가지고 있는 경우 환경 설정 파일에 이러한 옵션을 설정할 수 있습니다. 세션 패널의 창 레이아웃을 수정하고, 특정 액션에 대한 PF 키를 설정하고, 세션 패널에 사용되는 색상을 변경할 수 있습니다. 사용자 정의한 설정값을 환경 설정 파일에 저장에서는 환경 설정 파일에 지정할 수 있는 항목과 사용자의 환경 설정 파일을 사용하도록 Debug Tool을 설정하는 방법에 대해 설명합니다.

모든 사용자가 사용할 사이트 환경 설정이 있는 경우, 시스템 관리자가 글로벌 환경 설정 파일에 이러한 환경 설정을 설정할 수 있습니다. Debug Tool은 시작될 때 다음 단계를 수행합니다.

  1. EQAOPTS GPFDSN 명령을 통해 지정된 글로벌 환경 설정 파일을 선택하고 해당 파일에 지정된 명령을 실행합니다.
  2. 환경 설정 파일을 지정하는 경우 Debug Tool은 해당 환경 설정 파일을 찾고 해당 환경 설정 파일에서 명령을 실행합니다. 환경 설정 파일은 다음 메소드 중 하나를 통해 지정될 수 있습니다.
  3. 명령 파일을 지정하는 경우 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이 소스, 목록 및 별도의 디버그 파일을 찾는 방법에 대해 파악하고 있어야 합니다.

소스 창에 표시되는 파일을 변경하려면 다음 옵션 중 하나를 선택하십시오.

이 주제의 정보에서는 DEBUG 컴파일러 옵션의 FORMAT(DWARF)FILE 하위 옵션으로 컴파일한 C 및 C++ 프로그램에서 소스 파일의 위치를 지정하는 방법에 대해 설명합니다. 사용자 또는 사용자 사이트가 EQAOPTS MDBG 명령(.mdbg 파일에서 Debug Tool이 .dbg 및 소스 파일을 검색해야 함)6에 YES를 지정한 경우, 소스 파일에 대한 다른 위치를 지정할 수 없습니다.

세션 패널에 명령 입력

그림 1그림 2에서 표시된 것처럼 명령을 입력하거나 여러 영역에서 세션 패널에 표시된 내용을 수정할 수 있습니다.

그림 1. 로그 창이 표시된 Debug Tool 세션 패널
 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  단계 ;
그림 2. 메모리 창이 표시된 Debug Tool 세션 패널
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
주:
그림 2에서는 재정의된 PF 키를 보여줍니다. PF 키를 재정의하려면 PF 키 정의를 참조하십시오.
 1  명령행
명령행에 올바른 모든 Debug Tool 명령을 입력할 수 있습니다.
 2  화면이동 영역
현재 표시된 값 위에 원하는 값을 입력하여 화면이동할 기본 양을 재정의할 수 있습니다.
 3  컴파일 단위 이름 영역
현재 표시된 값 위에 원하는 자격 부여를 입력하여 자격 부여를 변경할 수 있습니다. 예를 들어, 소스 창 헤더에 표시된 현재 자격 부여 ICFSSCU1ICFSSCU2로 변경하려면 ICFSSCU1 위에 ICFSSCU2를 입력한 다음 Enter를 누르십시오.
 4  접두부 영역
소스 창 왼쪽 여백에 있는 접두부 영역에는 Debug Tool 접두부 명령만 입력할 수 있습니다.
 5  소스 창
소스 창의 모든 행을 수정하여 명령행에 배치할 수 있습니다.
 6  창 ID 영역
현재 표시된 창 이름 위에 표시할 창 이름을 입력하여 창 구성을 변경할 수 있습니다.
 7  로그 창
로그의 모든 행을 수정하여 Debug Tool이 명령행에 배치하도록 할 수 있습니다.
 8  메모리 창
메모리를 수정하거나 새 메모리 기본 주소를 지정할 수 있습니다. 기본적으로 이 창은 표시되지 않습니다. 이 창을 표시하려면 WINDOW SWAP MEMORY LOG 명령, WINDOW OPEN MEMORY 명령 또는 WINDOW ZOOM MEMORY 명령을 입력해야 합니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

Debug Tool이 세션 패널에서 명령을 승인하는 순서

세션 패널의 올바른 입력 영역 중 둘 이상에서 명령을 입력하고 Enter를 누르면 다음과 같은 순서로 입력 영역이 처리됩니다.

  1. 접두부 영역
  2. 명령행
  3. 컴파일 단위 이름 영역
  4. 화면이동 영역
  5. 창 ID 영역
  6. 소스/로그 창
  7. 메모리 창

세션 패널 명령행 사용

명령 필드에 임의의 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;를 입력하십시오.

시스템 명령을 입력할 때는 다음 사항을 준수해야 합니다.

CICS에만 해당: SYSTEM 명령이 지원되지 않습니다.

TSOSYSTEM 명령의 동의어입니다. TSO 명령은 자를 수 없습니다.

특정 행이나 명령문에 접두부 명령 입력

소스 또는 모니터 창의 특정 행의 접두부 영역에 접두부 명령이라고 하는 특정 명령을 입력하여 해당 명령이 해당 행에만 적용되도록 할 수 있습니다. 예를 들어, 소스 창에서 8행의 접두부 영역에 AT 명령을 입력하고 Enter를 누르면 Debug Tool은 8행에만 명령문 중단점을 설정합니다.

다음 접두부 명령은 소스 창의 접두부 영역에 입력할 수 있습니다.

다음 접두부 명령은 자동 모니터 섹션을 포함한 모니터 창의 접두부 영역에 입력할 수 있습니다.

소스 창에 접두부 명령을 입력하려면 다음 단계를 수행하십시오.

  1. 변경하려는 코드 행이 표시될 때까지 소스 창에서 화면이동하십시오.
  2. 변경하려는 행의 접두부 영역에서 커서를 이동하십시오.
  3. 적합한 접두부 명령을 입력하십시오.
  4. 행에 여러 개의 명령문이나 명령어가 있는 경우 명령문이나 명령어의 상관 위치를 나타내는 번호를 입력하여 변경하려는 명령문이나 명령어를 표시할 수 있습니다. 예를 들어 행에 세 개의 명령문이 있고 세 번째 명령문에 중단점을 설정하려면 AT 접두부 명령과 3을 순서대로 입력하십시오. 결과로 작성된 접두부 명령은 AT 3입니다.
  5. 변경할 행이 더 있는 경우에는 3단계로 되돌아 가십시오.
  6. Enter를 누르십시오. Debug Tool은 입력한 행에서 입력한 명령을 실행합니다.

모니터 창에 접두부 명령을 입력하려면 다음 단계를 수행하십시오.

  1. 변경하려는 행이 표시될 때까지 모니터 창을 화면이동하십시오.
  2. 변경하려는 행의 접두부 영역에서 커서를 이동하십시오.
  3. 적합한 접두부 명령을 입력하십시오.
  4. 변경할 행이 더 있는 경우에는 3단계로 되돌아 가십시오.
  5. Enter를 누르십시오. Debug Tool은 입력한 행에서 입력한 명령을 실행합니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

메모리 창에 복수 명령 입력

메모리 창에는 명령 및 변경사항을 여러 개 입력할 수 있습니다. Debug Tool은 다음 목록에서 설명한 대로 메모리 창 맨 위에서 시작하여 행별로 사용자 입력을 처리합니다.

  1. 이력 항목 영역. 처리는 오류 메시지를 표시하는 올바르지 않은 입력에서 중지하거나 첫 번째 "G" 또는 "R" 명령 다음에 중지합니다. 메모리 창이 새로 고쳐지고 메모리 창에 입력한 나머지 명령 및 변경사항은 무시됩니다.
  2. 기본 주소. 처리는 오류 메시지를 표시하는 올바르지 않은 입력에서 중지하거나 올바른 입력 다음 또는 첫 번째 "G" 명령 다음에 중지합니다. 메모리 창이 새로 고쳐지고 메모리 창에 입력한 나머지 명령 및 변경사항은 무시됩니다.
  3. 주소 컬럼. 처리는 오류 메시지를 표시하는 올바르지 않은 입력에서 중지하거나 올바른 입력 다음 또는 첫 번째 "G" 명령 다음에 중지합니다. 메모리 창이 새로 고쳐지고 메모리 창에 입력한 나머지 명령 및 변경사항은 무시됩니다.
  4. 16진 데이터 영역. 처리는 오류 메시지를 표시하는 올바르지 않은 입력에서 중지하거나 올바른 입력 다음 또는 첫 번째 "G" 명령 다음에 중지합니다. Debug Tool에서 올바르지 않은 변경사항 또는 "G" 명령 이전의 올바른 변경사항은 처리됩니다. 메모리 창이 새로 고쳐지고 메모리 창에 입력한 나머지 명령이나 변경사항은 무시됩니다.

커서 위치에 영향을 받는 명령 사용

특정 명령은 커서 위치에 영향을 받습니다. 이러한 명령을 커서의 영향을 받는 명령이라고 하며 CURSOR 키워드가 포함된 모든 명령(AT CURSOR, DESCRIBE CURSOR, FIND CURSOR, LIST CURSOR, SCROLL...CURSOR, TRIGGER AT CURSOR, WINDOW...CURSOR)이 여기에 포함됩니다.

커서의 영향을 받는 명령을 입력하려면 명령행에 명령을 입력한 다음 소스 창에서 명령을 적용할 위치(예: 명령문이나 명령어의 시작)에 커서를 놓고 Enter를 누르십시오.

명령에 PF 키를 지정하여 커서의 영향을 받는 명령을 실행할 수도 있습니다.

주:
커서의 영향을 받는 명령과, 저장된 마지막 위치로 커서를 리턴하는 CURSOR 명령을 혼동하지 마십시오.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

PF(프로그램 기능) 키를 사용하여 명령 입력

커서의 영향을 받는 명령과 기타 전체 화면 태스크의 경우 PF 키에 명령을 지정하여 보다 빠르게 실행할 수 있습니다. WINDOW CLOSE, LIST, CURSOR, SCROLL TO, DESCRIBE ATTRIBUTES, RETRIEVE, FIND, WINDOW SIZE 및 화면이동 명령(SCROLL UP, DOWN, LEFTRIGHT)을 이런 식으로 실행할 수 있습니다. PF 키를 사용하면 편리하고 쉽게 태스크를 수행할 수 있습니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

초기 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를 눌러 각 명령을 순서대로 검색하십시오. 검색된 명령이 명령행에 표시하기에 너무 길면 명령의 마지막 행만 표시됩니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

로그 및 소스 창의 행에서 명령 작성

새 명령을 작성하기 위해 로그 및 소스 창의 행을 사용할 수 있습니다.

로그나 소스 창의 행에서 명령을 작성하려면 다음 단계를 수행하십시오.

  1. 커서를 원하는 행으로 이동하십시오.
  2. 명령에 포함시키려는 하나 이상의 행을 수정하십시오. 예를 들어 모든 주석 문자를 삭제하십시오.
  3. Enter를 누르십시오. Debug Tool은 명령행에 입력 행을 표시합니다. 명령행에서 행이 맞지 않는 경우 Debug Tool은 현재까지 입력한 명령이 포함된 팝업 창을 표시합니다. 마지막 행의 후미 공백은 제거됩니다. 명령 팝업 창을 펼치려면 그 아래 커서를 두고 Enter를 누르십시오.
  4. 명령이 불완전한 경우 명령을 수정하십시오.
  5. Enter를 눌러 명령을 실행합니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

명령 팝업 창을 열어 긴 Debug Tool 명령 입력

명령행의 길이보다 긴 명령을 입력하는 경우, POPUP 명령을 입력하여 명령 팝업 창을 연 다음, Debug Tool 명령을 입력하십시오.

Debug Tool이 다음 상황에서 자동으로 명령 팝업 창을 표시합니다.

명령 팝업 창에 명령의 나머지 부분을 입력할 수 있습니다.

Debug Tool 창 탐색

CURSOR 명령과 SCROLL UP, DOWN, LEFT, RIGHT, TO, NEXT, TOPBOTTOM과 같은 화면이동 명령을 사용하여 모든 창을 탐색할 수 있습니다. 지정한 문자열로 자동으로 화면이동하는 FIND 명령을 사용하여 문자열을 검색할 수도 있습니다.

이러한 명령에 따라 액션이 수행되는 창은 몇 가지 요소 중 하나에 따라 결정됩니다. 명령을 입력할 때 창의 이름(로그, 메모리, 모니터 또는 소스)을 지정하면 해당 창에서 액션이 수행됩니다. 명령이 커서 관련 명령인 경우에는 커서가 포함된 창에서 액션이 수행됩니다. 창 이름을 지정하지 않았고 커서가 어떤 창에도 없으면 프로파일 설정 패널의 기본 창기본 화면이동 양 설정에 따라 액션이 수행되는 창이 결정됩니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

창 간에 커서 이동

모니터, 소스 또는 로그 창에서 명령행으로 또는 명령행에서 이들 창으로 커서를 빠르게 이동하려면 CURSOR 명령을 사용하십시오. PF 키에 이 명령과 몇 가지 다른 커서 관련 명령을 지정하면 매우 유용합니다. PF 키에 CURSOR 명령을 지정한 후 PF 키를 눌러 커서를 이동하십시오. CURSOR 명령을 입력할 때 커서가 명령행에 없는 경우 커서가 명령행으로 이동합니다. 이전 위치로 커서를 되돌리려면 CURSOR PF 키를 다시 누르십시오.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

메모리 창과 로그 창 전환

Debug Tool에는 네 개의 논리적 창이 있지만 동시에 최대 3개의 실제 창을 표시할 수 있습니다. 명령행에서 WINDOW SWAP MEMORY LOG 명령을 입력하여 메모리 창과 로그 창을 대체할 수 있습니다. scroll 명령을 입력하여 실제 창을 탐색할 수 있습니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

실제 창에서 화면이동

명령이나 PF 키를 사용하여 실제 창을 화면이동할 수 있습니다. 두 방법 모두에서 명령이 영향을 주는 실제 창을 판별하는 데에 커서 배치가 중요한 역할을 합니다.

명령을 사용하여 실제 창을 화면이동하려면 다음 단계를 수행하십시오.

  1. 모니터 창의 모니터 값 영역에서 왼쪽이나 오른쪽으로 화면이동하려면 SET MONITOR WRAP OFF 명령을 입력하십시오.
  2. 명령행에서 scroll 명령을 입력한 다음 Enter 키는 누르지 마십시오. 다음 scroll 명령 중 하나를 입력할 수 있습니다. SCROLL LEFT, SCROLL RIGHT, SCROLL UP, SCROLL DOWN .메모리 창에서는 왼쪽 또는 오른쪽으로 화면이동할 수 없습니다.
  3. 화면이동할 실제 창 또는 실제 창의 영역으로 커서를 이동하십시오. 메모리 창에서 커서를 메모리 덤프 영역의 섹션으로 이동하십시오. 모니터 창의 영역에서 왼쪽 또는 오른쪽으로 화면이동하려면 값 모니터 영역으로 커서를 이동하십시오. SET MONITOR WRAP OFF 명령을 입력하지 않은 경우 화면이동 명령은 전체 창을 화면이동합니다.
  4. Enter를 누르십시오.

창 또는 영역을 좌우로 화면이동하는 경우 Debug Tool은 창에 표시되는 컬럼이 나타나도록 창 또는 영역에서 배율을 조정합니다. 창을 상하로 화면이동하는 경우 현재 창에 표시된 맨 위 행 번호가 행 카운터에 표시됩니다. 메모리 창에서 상하로 화면이동하는 경우 메모리 덤프 영역의 모든 섹션은 새 정보를 표시하도록 조정됩니다.

화면이동할 실제 창을 표시하기 위해 명령을 사용하여 위의 23단계를 결합할 수 있습니다. 예를 들어 모니터 창을 표시하는 실제 참에서 최대 5행을 화면이동하려면 SCROLL UP 5 MONITOR 명령을 입력하십시오.

PF 키를 사용하여 화면이동하려면 다음 단계를 수행하십시오.

  1. 화면이동하려는 실제 창이나 화면이동할 수 있는 영역으로 커서를 이동하십시오. 화면이동할 수 있는 영역에는 메모리 창의 메모리 덤프 영역이 포함됩니다.
  2. 위로 화면이동하려면 PF7(UP) 키를 누르고 아래로 화면이동하려면 PF8(DOWN) 키를 누르십시오. 화면이동하는 행 수는 기본 화면이동 양 설정 값으로 판별합니다.

특정 실제 창으로 커서를 이동하지 않는 경우 기본 논리적 창이 화면이동됩니다. 기본 논리적 창인 논리적 창을 찾으려면 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에서 *까지입니다.

기본 검색 방향을 사용하여 기본 창에서 문자열을 찾으려면 다음 단계를 수행하십시오.

  1. 찾을 문자열을 지정하여 FIND 명령을 입력하십시오. 문자열이 검색 문자열 구문에 설명된 규칙을 준수하는지 확인하십시오.
  2. Enter를 누르십시오.

이전 검색을 반복하려면 PF5 키를 누르십시오.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

Debug Tool의 문자열 검색 방법

Debug Tool FIND 명령은 ISPF FIND 명령이 검색을 시작할 때 사용하는 것과 동일한 규칙을 사용하여 검색을 시작합니다. Debug Tool은 커서 위치 다음의 첫 번째 위치에서 검색을 시작합니다.

끝 부분에 도달하면 Debug Tool은 끝 부분에 도달했음을 나타내는 메시지를 표시합니다. PF5 키를 눌러 FIND 명령을 반복하면 맨 위에서부터 검색이 시작됩니다.

역방향으로 검색하는 경우 시작 부분에 도달하면 Debug Tool은 시작 부분에 도달했음을 나타내는 메시지를 표시합니다. PF5 키를 눌러 FIND 명령을 반복하면 끝에서부터 검색이 시작됩니다.

검색 문자열 구문

검색 문자열에 문자, 숫자 및 기호의 조합을 포함할 수 있습니다. 그러나 문자열에 다음 문자 중 하나 이상이 포함된 경우에는 큰따옴표(") 또는 작은따옴표(')로 묶어야 합니다.

다음 규칙을 사용하여 큰따옴표(")를 사용해야 하는지 아니면 작은따옴표(')를 사용해야 하는지 판별하십시오.

다른 창에서 동일한 문자열 찾기

다른 창에서 동일한 문자열을 찾으려면 FIND * window_name 명령을 입력하십시오.

SET MONITOR WRAP OFF가 적용되는 경우 모니터 값에서 문자열 찾기

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;

예제: COBOL 단락명 검색

컬럼 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 명령으로 항목에 입력하여 이력 영역의 항목을 제거할 수 있습니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

새 기본 주소 지정

다음 메소드 중 하나를 사용하여 새 기본 주소를 지정할 수 있습니다.

명령 파일 작성

명령 파일은 디버그 세션을 재현하거나 인터럽트된 세션을 재개하는 데 사용할 수 있는 편리한 방법입니다. 다음 방법 중 하나를 사용하여 명령 파일을 작성하십시오.

여러 개의 다른 애플리케이션 프로그램으로 작성한 애플리케이션 프로그램에서 사용되는 명령 파일을 작성하는 경우 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 및 어셈블러 프로그램의 경우 /* */ 안에 표시됩니다.)

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

로그 파일 작성

전체 화면 모드의 디버깅 세션의 경우 다음 방법 중 하나에 로그 파일을 작성할 수 있습니다.

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에 할당된 파일에 로그를 기록합니다.

주:
Debug Tool이 로그 파일에 기록하므로 세션 로그에는 순차 파일을 사용하는 것이 좋습니다.

세션 중 언제든지 다음 명령을 입력하여 로그 파일로 정보가 보내지는 것을 중지할 수 있습니다.

SET LOG OFF;

로그 파일을 다시 사용하려면 다음 명령을 입력하십시오.

SET LOG ON;

로그 파일은 Debug Tool 세션 중에 항상 활성화되어 있습니다.

Debug Tool은 행 모드, 전체 화면 모드 및 Batch 모드 등의 조작 모드에서 로그 파일을 유지합니다.

각 소스 행이 실행된 횟수 기록

각 코드 행이 실행된 횟수를 기록하려면 다음을 수행하십시오.

  1. 결과에 대한 영구 레코드를 보존하려면 로그 파일을 사용하십시오. 로그 파일을 작성하는 방법에 대해 학습하려면 로그 파일 작성의 내용을 참조하십시오.
  2. 다음 명령을 실행하십시오.
    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이 조건식을 처리(평가)하는 경우 피연산자 중 하나의 데이터가 올바르지 않으면 조건식이 올바르지 않습니다. 이 상황에서는 Debug Tool이 중지되고 명령에 대해 프롬프트됩니다. 프로그램을 계속 실행하려면 GO 명령을 입력해야 합니다. 이 상황에서 Debug Tool이 프롬프트를 표시하지 않도록 하려면 SET WARNING OFF 명령을 입력하십시오.

조건식은 다음과 같은 상황을 포함하여 여러 가지 이유로 올바르지 않게 될 수 있습니다.

조건식을 평가하는 동안 예외가 발생하고 SET WARNINGOFF인 경우 Debug Tool은 여전히 중지되고 예외에 대해 메시지를 표시하며 명령 입력 프롬프트를 나타냅니다.

다음 예제는 다중 정의가 있고 각 정의에 다른 속성이 있는 필드를 조건식의 파트로 사용하는 경우 어떤 일이 발생하는지 설명합니다.

  1. WK-TEST-NUM의 값을 확인하기 위해 다음 명령을 입력합니다. 이 필드에는 두 개의 정의가 있으며 하나는 숫자이고 다른 하나는 문자열입니다.
    AT CHANGE WK-TEST-NUM 
       BEGIN;
       IF WK-TEST-NUM = 10; 
          LIST 'WK-TEST-NUM IS 10';
       ELSE;
    GO;END-IF;
       End;
  2. Debug Tool이 조건식 WK-TEST-NUM = 10을 평가하는 경우 WK-TEST-NUM 필드의 데이터 유형은 문자열입니다. WK-TEST-NUM 필드의 데이터 유형이 문자열이므로 10과 비교할 수 없으며 조건이 올바르지 않게 됩니다. Debug Tool이 중지되고 명령 입력 프롬프트가 표시됩니다.
  3. Debug Tool이 프로그램을 계속 실행하고, 이 필드의 데이터 유형이 숫자이며 10과 일치하는 경우에만 중지하도록 결정합니다.
  4. SET WARNING OFFSET WARNING ON 명령에 호출을 추가하는 다음 명령을 입력하십시오.
    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 명령을 입력하는 경우 프로그램에서 다른 문제점을 발견하는 데 도움이 되는 경고 메시지 표시를 억제할 수 있으므로 주의하십시오.

프로그램 step through 또는 실행

기본적으로 Debug Tool이 시작될 때 어떤 프로그램도 실행되고 있지 않습니다(C++ 생성자 및 정적 오브젝트 초기화 포함).

Debug Tool은 일반적으로 행 번호로 식별되는 화면의 한 행을 한 행으로 정의합니다. 명령문은 액션 순서 또는 선언 세트에서 한 단계를 나타내는 언어 구조입니다. 한 명령문은 한 행과 같을 수도 있고 여러 행에 걸칠 수도 있으며 여러 명령문이 한 행에 있을 수도 있습니다. 프로그램을 단계별로 실행하는 경우 Debug Tool이 실행하는 명령문의 수는 후크가 놓이는 위치에 따라 다릅니다.

다음 후크에 도달할 때까지 프로그램을 실행하려면 PF2(STEP)를 누르십시오. 다음 TEST 또는 DEBUG 컴파일러 하위 옵션의 조합을 사용하여 프로그램을 컴파일한 경우 STEP은 단일 명령문을 수행합니다.

중단점이나 프로그램 종료점에 도달할 때까지 또는 조건이 발생할 때까지 프로그램을 실행하려면 PF9(GO)를 누르십시오.

주:
발생하는 조건은 TEST 런타임 옵션의 하위 옵션 test_level 설정에 따라 결정됩니다.

STEP OVER 명령은 호출된 함수로 step into하지 않고 실행합니다. 함수를 step over하려고 했는데 실수로 step into한 경우 STEP RETURN 명령을 실행하여 리턴 지점(호출 지점 바로 뒤)으로 step하십시오.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

명령문 레코딩 및 재생

Debug Tool은 명령문을 기록 및 재생하여 프로그램을 디버깅하는 중에 실행할 수 있도록 여러 가지 명령(PLAYBACK 명령)을 제공합니다. 명령문을 기록 및 재생하려면 다음 단계를 수행하십시오.

  1. 실행하는 명령문을 기록하십시오(PLAYBACK ENABLE 명령). DATA 매개변수를 지정했거나 DATA 매개변수가 기본값인 경우 프로그램에 관한 추가 정보가 기록됩니다.
  2. 명령문을 재생할 수 있도록 준비하십시오(PLAYBACK START 명령).
  3. 기록한 명령문을 재생하십시오(STEP 또는 RUNTO 명령).
  4. 명령문이 재생되는 방향을 변경하십시오(PLAYBACK FORWARD 명령).
  5. 명령문 재생을 중지하십시오(PLAYBACK STOP 명령).
  6. 실행하는 명령문에 대한 기록을 중지하십시오(PLAYBACK DISABLE 명령). PLAYBACK DISABLE 명령에 지정하거나 암시한 컴파일 단위에 대한 모든 데이터가 버려집니다.

위의 각 단계에 대한 자세한 정보는 다음을 참조하십시오.

실행하는 명령문 기록

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는 사용할 수 없는 전체 명령 목록을 제공합니다.

COBOL 데이터 액세스 시 제한사항

DATA 매개변수를 지원하는 COBOL 컴파일 단위에 대해 이 매개변수를 지정하거나 이 매개변수가 기본값인 경우, 다음 DATA DIVISION 섹션에 정의된 데이터에 액세스할 수 있습니다.

ADDRESS OF, LENGTH OFWHEN-COMPILED를 제외한 모든 특수 레지스터에도 액세스할 수 있습니다. 또한 Debug Tool 명령이 지원하는 모든 특수 레지스터에 액세스할 수 있습니다.

명령문을 재생할 때는 다음 조건을 만족하는 경우에만 대부분의 Debug Tool 명령을 사용할 수 있습니다.

QUERY PLAYBACK 명령을 사용하면 DATA 옵션이 올바른 컴파일 단위를 확인할 수 있습니다.

Debug Tool Reference and MessagesDATA 매개변수를 지정할 때 사용할 수 있는 전체 명령 목록을 제공합니다.

설정, 중단점 및 모니터 스펙 저장 및 복원

한 디버깅 세션에서 설정, 중단점, 모니터 스펙을 저장한 다음 이후의 디버깅 세션에서 복원할 수 있습니다. 다음과 같은 정보를 저장할 수 있습니다.

설정
SET 명령의 다음 설정을 제외한 WINDOW SIZE, WINDOW CLOSESET 명령의 설정
중단점
현재 디버깅 세션에서 설정되거나 일시중단된 모든 중단점 및 모든 LOADDEBUGDATA(LDD) 스펙. 다음 중단점이 저장됩니다.

지연된 AT ENTRY 중단점이 발견되지 않았습니다. 저장되지 않았거나 복원되지 않았습니다.

모니터 스펙
현재 올바른 모든 모니터 및 LOADDEBUGDATA(LDD) 스펙

대부분의 환경에서 Debug Tool은 자동으로 저장 및 복원될 수 있도록, 고유의 기본 데이터셋명을 사용하여 이러한 항목을 저장합니다. 이러한 환경에서는, 설정을 자동으로 복원하여 Debug Tool 초기화 중 SET RESTORE BPS AUTOSET 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이 해당 정보를 복원합니다. 자동 저장 및 복원을 설정하려면 파일을 할당하고 이 기능을 사용할 수 있는 적합한 명령을 입력해야 합니다. 다음 방법 중 하나에서 이를 수행할 수 있습니다.

자동 저장 및 복원을 사용하려면 다음 단계를 수행하십시오.

  1. 설정이 저장될 순차 데이터셋에 기본 이름을 사용하여 사전 할당하십시오. 비대화식 모드(전용 터미널을 통한 전체 화면 모드를 사용하지 않는 MVS Batch 모드)로 실행하는 경우에는 이 데이터셋을 참조하는 INSPSAFE DD문을 포함해야 합니다.
  2. 중단점, 모니터 및 LDD 스펙이 저장될 PDSE 또는 PDS에 기본 이름을 지정하여 PDSE 또는 PDS를 미리 할당하십시오. 비대화식 모드(전용 터미널을 통한 전체 화면 모드를 사용하지 않는 MVS Batch 모드)로 실행하는 경우에는 이 데이터셋을 참조하는 INSPBPM DD문을 포함해야 합니다.
  3. Debug Tool을 시작하십시오.
  4. 다음 명령을 사용하여 설정의 자동 저장 및 복원을 사용하십시오.
    SET SAVE SETTINGS AUTO;
    SET RESTORE SETTINGS AUTO;
  5. 중단점과 LDD 스펙 또는 모니터와 LDD 스펙의 자동 저장 및 복원을 사용하려면 다음 명령을 사용하십시오.
    SET SAVE BPS AUTO;
    SET RESTORE BPS AUTO;
    SET SAVE MONITORS AUTO;
    SET RESTORE MONITORS AUTO;

    중단점 또는 모니터 스펙의 자동 복원을 사용하려면 4단계(설정의 자동 저장 및 복원 사용)를 수행하십시오.

  6. Debug Tool을 종료하십시오. 해당 데이터셋에 설정이 저장됩니다.

다음에 Debug Tool을 시작할 때 설정이 자동으로 복원됩니다. 동일한 프로그램을 디버깅하는 경우 중단점과 모니터 스펙도 자동으로 복원됩니다.

중단점, 모니터 및 설정값의 자동 저장 및 복원 작동 불가능

중단점과 모니터의 자동 저장을 작동 불가능으로 지정하려면 다음 설정값이 유효한지 확인하십시오.

설정값의 자동 저장을 작동 불가능으로 설정하려면 SET SAVE SETTINGS NOAUTO; 설정이 유효한지 확인하십시오.

중단점과 모니터의 자동 복원을 작동 불가능으로 지정하려면 다음 설정값이 유효한지 확인하십시오.

설정값의 자동 복원을 작동 불가능으로 설정하려면 SET RESTORE SETTINGS NOAUTO; 설정이 유효한지 확인하십시오.

이러한 값들을 자동 저장하지 않도록 설정하더라도 마지막으로 저장된 데이터는 해당 데이터셋에 나타나므로 이 데이터셋에서 복원할 수 있습니다. 이는 데이터가 마지막으로 저장된 시점에서 값을 복원한다는 것을 의미합니다. 이 시점이 마지막으로 Debug Tool을 실행한 시점이 아닐 수도 있습니다.

수동 복원

다음 환경에서는 자동 복원이 지원되지 않습니다.

다음 단계를 수행하여 중단점, 모니터 및 LDD 스펙을 저장 및 복원할 수 있습니다.

  1. 설정을 저장 및 복원하는 데 사용할 순차 데이터셋을 미리 할당하십시오.
  2. 중단점과 모니터 스펙을 저장 및 복원하는 데 사용할 PDSE 또는 PDS를 미리 할당하십시오.
  3. Debug Tool을 시작하십시오.
  4. 설정의 자동 저장을 사용하려면 다음 명령을 사용하십시오. 여기서, mysetdsn1단계에서 할당한 데이터셋명입니다.
    SET SAVE SETTINGS AUTO FILE mysetdsn;
  5. 중단점과 LDD 스펙 또는 모니터와 LDD 스펙의 자동 저장을 사용하려면 다음 명령을 사용하십시오. 여기서, mybpdsn2단계에서 할당한 데이터셋명입니다.
    SET SAVE BPS AUTO FILE mybpdsn;
    SET SAVE MONITORS AUTO;
  6. Debug Tool을 종료하십시오.

다음 환경 중 하나에서 다음에 Debug Tool을 시작할 때, Debug Tool 세션이 시작될 때 다음 명령을 아래에 나오는 순서대로 사용하십시오.

SET SAVE SETTINGS AUTO FILE mysetdsn;
RESTORE SETTINGS;
SET SAVE BPS AUTO FILE mybpdsn;
RESTORE BPS MONITORS;

이러한 명령을 사용자 환경 설정 파일에 삽입할 수 있습니다.

다중 enclave 환경에서 성능 고려사항

정보가 저장 또는 복원될 때마다 다음 액션이 수행됩니다.

  1. 데이터셋이 할당됩니다.
  2. 데이터셋이 열립니다.
  3. 데이터셋이 작성되거나 읽혀집니다.
  4. 데이터셋이 닫힙니다.
  5. 데이터셋의 할당이 해제됩니다.

각 단계에 운영 체제 서비스가 필요하므로 전체 프로세스에는 상당한 시간이 걸릴 수 있습니다.

설정값을 저장하고 복원하는 경우 이 프로세스는 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은 다음과 같은 방법으로 변수 값을 표시할 수 있습니다.

주:
SET LIST TABULAR 명령을 사용하여 배열 및 구조에 대한 LIST 출력을 테이블 형식으로 형식화하십시오. 이 명령에 대한 자세한 정보는 Debug Tool Reference and Messages를 참조하십시오.

Debug Tool이 선언된 해당 데이터 유형의 변수 값을 표시하지 못하는 경우에는 Debug Tool이 선언된 데이터 유형으로 표시할 수 없는 문자를 처리하는 방법을 참조하십시오.

변수 값 1회 표시

시작하기 전에 정보가 표시되는 형식을 변경할 것인지 결정하십시오. 변수가 영역 및 구조인 경우 화면에 테이블 형식으로 배열되면 더 쉽게 읽을 수 있습니다. 형식을 변경하려면 다음 옵션 중 하나를 수행하십시오.

변수의 내용을 한 번만 표시하려면 다음 옵션 중 하나를 수행하십시오.

모니터 창에 변수 추가

모니터 창에 변수를 추가하는 경우 해당 변수의 값을 모니터링 중입니다. 모니터 창에 변수를 추가하려면 다음 옵션 중 하나를 수행하십시오.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

모니터 창에 COBOL 프로그램의 작업-스토리지 섹션 표시

다음 단계를 수행하여 COBOL 프로그램의 작업-스토리지 섹션에 있는 모든 변수를 모니터 창에 추가할 수 있습니다.

  1. 명령행으로 커서를 이동하십시오.
  2. MONITOR LIST TITLED WSS; 명령을 입력하십시오.
  3. Enter를 누르십시오. Debug Tool은 WSS 항목에 1 - 99 범위의 참조 번호를 지정하고 모니터 창에 WSS 항목을 추가하며 작업-스토리지 섹션에 모든 변수의 현재값을 표시합니다.

Debug Tool이 제어를 수신하거나 사용자가 표시에 영향을 미칠 수 있는 Debug Tool 명령을 입력할 때마다 Debug Tool이 모니터 창의 변수 값을 각각 갱신하여 Debug Tool은 항상 현재 값을 표시합니다.

작업-스토리지 섹션에 많은 변수가 있을 수 있기 때문에 작업-스토리지 섹션을 모니터하면 오버헤드가 크게 증가하고 더 많은 스토리지를 사용하게 됩니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

모니터 창에 변수의 데이터 유형 표시

SET MONITOR DATATYPE ON 명령은 모니터 창에 표시되는 변수(자동 모니터 섹션의 변수 포함)의 데이터 유형을 나타냅니다. 데이터 유형은 변수의 선언에 사용된 원래 데이터 유형입니다. SET MONITOR DATATYPE OFF 명령은 이 정보가 표시되지 않게 합니다.

모니터 창에 변수의 값 및 데이터 유형을 표시하려면 다음을 수행하십시오.

  1. 명령행으로 커서를 이동하십시오.
  2. 다음 명령을 입력하십시오.
    SET MONITOR DATATYPE ON;
  3. 다음 명령 중 하나를 입력하십시오.

모니터 창의 변수를 다른 변수로 바꾸기

모니터 창에 변수를 추가하는 경우 Debug Tool은 변수에 1 - 99 범위의 참조 번호를 지정합니다. 참조 번호를 사용하여 모니터 창의 변수를 다른 변수로 바꿀 수 있습니다.

모니터 창의 변수를 다른 변수로 바꾸려면 다음 단계를 수행하십시오.

  1. 모니터 창에서 바꿀 변수의 참조 번호를 알고 있는지 확인하십시오.
  2. 명령행으로 커서를 이동하십시오.
  3. 다음 명령에서 reference_number를 바꿀 변수의 참조 번호로 대체하고 variable-name을 새 변수 이름으로 대체하여 입력하십시오.
    MONITOR reference_number LIST variable-name;

    기존 참조 번호 또는 가장 큰 기존 참조 번호에 1을 더한 참조 번호만 지정할 수 있습니다.

  4. Enter를 누르십시오. Debug Tool은 모니터 창에서 이전 변수가 표시된 행에 새 변수를 추가하고 그 변수의 현재 값을 표시합니다.

모니터 창에 배열 요소를 추가한 경우 다음 단계를 수행해서 해당 요소를 동일한 배열의 다른 요소로 바꿀 수 있습니다.

  1. 모니터 창으로 커서를 이동해서 변경하려는 아래 첨자 아래에 두십시오.
  2. 새 아래 첨자를 입력하십시오.
  3. Enter를 누르십시오. Debug Tool이 이전 요소를 새 요소로 바꾼 후 변경을 확인하는 메시지가 표시됩니다.

모니터 창에 자동으로 변수 추가

프로그램을 단계별로 실행하는 경우 각 명령문이 실행될 때 각 명령문에 있는 변수를 모니터할 수 있습니다. 각 명령문을 실행하기 전에 모니터 창에 수동으로 변수를 추가
(모니터 창에 변수 추가에서 설명)하면 시간이 많이 걸립니다. Debug Tool은 각 명령문이 실행되기 전후에 변수를 자동으로 추가하고 명령문이 실행되기 전후에 해당 변수의 값을 표시한 다음 명령문을 실행한 후에 모니터 창에서 변수를 제거할 수 있습니다. 이를 수행하려면 SET AUTOMONITOR ON 명령을 사용하십시오.

시작하기 전에 Debug Tool이 모니터 창에 자동으로 변수를 추가하는 방법을 참조하여 SET AUTOMONITOR 명령이 어떻게 작동하는지 이해하십시오.

모니터 창에 자동으로 변수를 추가하려면 다음 단계를 수행하십시오.

  1. 명령행으로 커서를 이동하십시오.
  2. 다음 명령 중 하나를 입력하십시오.

    프로그램을 단계적으로 실행할 때 Debug Tool은 창의 자동 모니터 섹션에 변수의 이름과 값을 표시합니다.

  3. 모니터 창에 자동으로 변수가 추가되는 기능을 중지하려면 SET AUTOMONITOR OFF 명령을 입력하십시오. Debug Tool은 ********** AUTOMONITOR ********** 행 및 그 아래에 있는 행의 모든 변수를 제거합니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

자동 모니터 섹션의 정보를 로그 파일에 저장

로그 파일에 다음 정보를 저장하려면 SET AUTOMONITOR ON LOG 명령을 입력하십시오.

기본 옵션은 NOLOG이며, 위의 정보를 저장하지 않습니다.

로그 파일의 각 항목에는 프로그램 내에서의 중단점 위치와 명령문에 있는 변수의 이름 및 값이 포함됩니다. 로그 파일에 이 정보를 저장하는 것은 중지하되 모니터 창의 자동 모니터 섹션은 계속해서 갱신하려면 SET AUTOMONITOR ON NOLOG 명령을 입력하십시오.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

Debug Tool이 모니터 창에 자동으로 변수를 추가하는 방법

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은 다음 태스크를 수행합니다.

  1. 자동 모니터 섹션에 표시된 모든 변수명과 값을 제거합니다.
  2. Debug Tool이 다음에 실행할 명령문의 변수명과 값을 표시합니다. 표시되는 값은 명령문이 실행되기 전의 값입니다.

이 동작은 Debug Tool이 명령문을 실행하기 전의 변수 값을 표시합니다. Debug Tool이 명령문을 실행한 후의 변수 값을 보려면 SET AUTOMONITOR ON PREVIOUS 명령을 입력하십시오. Debug Tool은 모니터 창 맨 아래의 모니터되는 변수 목록에 ********** AUTOMONITOR - PREVIOUS load-name ::> cu-name :> statement-id ********** 행을 표시합니다. STEP 명령을 입력하거나 중단점이 발생할 때마다 Debug Tool은 다음 태스크를 수행합니다.

  1. 자동 모니터 섹션에 표시된 모든 변수명과 값을 제거합니다.
  2. 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은 다음 태스크를 수행합니다.

  1. 자동 모니터 섹션에 표시된 모든 변수명과 값을 제거합니다.
  2. Debug Tool이 다음에 실행할 명령문의 변수명과 값을 표시합니다. 표시되는 값은 명령문이 실행되기 전의 값입니다.
  3. Debug Tool이 방금 실행한 명령문의 변수명과 값을 표시합니다. 표시되는 값은 명령문이 실행된 후의 값입니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

예제: 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-AMOUNTLOAN-AMOUNT-IN 변수의 이름과 값이 표시됩니다. 이러한 값은 명령문을 실행하기 전의 변수 값입니다.

STEP 명령을 입력하십시오. Debug Tool이 모니터 창의 자동 모니터 섹션에서 LOAN-AMOUNTLOAN-AMOUNT-IN을 제거한 다음 INTEREST-RATEINTEREST-RATE-IN 변수의 이름과 값을 표시합니다. 이러한 값은 명령문을 실행하기 전의 변수 값입니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

Debug Tool이 선언된 데이터 유형으로 표시할 수 없는 문자를 처리하는 방법

모니터 창에서 Debug Tool은 다음 문자 중 하나를 사용하여 선언된 자체 데이터 유형으로 표시할 수 없는 문자를 나타냅니다.

선언된 자체 데이터 유형으로 표시할 수 없는 문자는 코드 페이지별로 다르지만 일반적으로 이 문자는 화면에 표시할 수 있는 상응 기호가 없는 문자들입니다.

이 문자를 수정하기 위해 HEXDEF 접두부 명령을 사용하여 수정하고 있는 문자를 파악하고 확인할 수 있습니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

선언된 데이터 유형으로 표시할 수 없는 문자 수정

Debug Tool이 선언된 데이터 유형으로 표시할 수 없는 문자를 처리하는 방법에서 설명한 대로 선언된 자체 데이터 유형으로 표시할 수 없는 문자를 수정하려면 예상 결과가 맞는지 확인한 후에 다음 단계를 수행하십시오.

  1. 모니터 창의 접두부 영역에서 수정하려는 문자가 포함된 행으로 커서를 이동하십시오.
  2. HEX 접두부 명령을 입력하십시오. Debug Tool은 16진 형식으로 표시하기 위해 문자를 변경합니다.
  3. 커서를 문자로 이동하십시오.
  4. 16진 값을 입력한 다음 Enter를 누르십시오. Debug Tool은 문자를 수정하고 16진 형식으로 새 값을 표시합니다.
  5. 선언된 자체 데이터 유형으로 문자를 표시하려면 접두부 영역으로 커서를 이동한 다음 DEF 명령을 입력하십시오.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

모니터 창의 값 형식화

컬럼 형식의 변수 값을 모니터하려면 SET MONITOR COLUMN ON 명령을 입력하십시오. 모니터 창에 표시되는 변수명은 동일한 컬럼에 맞추어지며 값도 같은 컬럼에 맞추어집니다. Debug Tool은 모니터 창의 헤더 행 아래에 모니터 값 영역 배율을 표시합니다.

모니터 창에서 모니터되는 변수가 랩된 경우 값을 표시하려면 SET MONITOR WRAP ON 명령을 입력하십시오. 모니터되는 변수가 화면이동 가능한 행에 있는 경우 값을 표시하려면 SET MONITOR COLUMN ON 명령을 입력한 후 SET MONITOR WRAP OFF 명령을 입력하십시오.

16진 형식으로 값 표시

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 키를 정의한 경우에는 다음 단계를 수행하십시오.

  1. 소스 창에 변수가 표시되지 않으면 원하는 변수가 소스 창에 표시될 때까지 프로그램을 화면이동하십시오.
  2. 변수명으로 커서를 이동하십시오.
  3. LIST %HEX 명령을 정의한 PF 키를 누르십시오. Debug Tool이 16진 형식으로 variable-name 변수의 값을 표시합니다.

PL/I HEX 기본 제공 함수로는 PF 키를 정의할 수 없습니다.

16진 형식으로 변수 값 모니터링

변수가 선언된 데이터 유형 또는 16진 형식 중 하나로 변수 값을 모니터링할 수 있습니다. 선언된 자체 데이터 유형으로 변수 값을 모니터하려면 모니터 창에 변수 추가에서 설명하는 지시사항에 따르십시오. PL/I HEX 내장 함수를 사용하여 16진 형식으로 PL/I 변수를 모니터하는 경우 모니터 창에서 기존 값에 새 값을 입력하여 변수 값을 편집할 수 없습니다. PL/I HEX 내장 함수 대신 이 주제에서 설명하는 명령을 사용하십시오.

16진 형식으로 변수 값이나 표현식을 모니터링하려면 다음 지시사항 중 하나를 수행하십시오.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

명령을 사용하여 변수 또는 스토리지 수정

다음 명령 중 하나를 사용하여 변수 또는 스토리지의 값을 수정할 수 있습니다.

각 명령에 대한 자세한 정보는 Debug Tool Reference and Messages를 참조하십시오.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

기존 값 위에 입력하여 변수 또는 스토리지 수정

모니터 창에서 기존 값 위에 새 값을 입력하여 변수 값을 수정하려면 다음 단계를 수행하십시오.

  1. 기존 값으로 커서를 이동하십시오. 수정하려는 값의 일부가 화면에 표시되지 않으면 SCROLL 모니터 값 영역 함수(SET MONITOR WRAP OFF 명령으로 사용 가능)를 사용하여 커서를 기존 값의 위치로 이동하십시오.
  2. 새 값을 입력하십시오. 검은색 세로 막대는 새 값을 입력할 수 있는 영역을 표시합니다. 왼쪽 세로 막대와 그 앞의 공간 및 오른쪽 세로 막대와 그 뒤의 공간에는 어떤 것도 입력할 수 없습니다.
  3. Enter를 누르십시오.

    Debug Tool이 변수 또는 스토리지를 수정합니다. Debug Tool이 변수 또는 스토리지를 수정하도록 생성한 명령은 로그 파일에 저장됩니다.

모니터 창에서 변수 수정 시 제한사항

모니터 창에서 기존 값 위에 새 값을 입력하여 변수 값을 수정할 수 있습니다. 다음과 같은 경우는 예외이므로 주의하십시오.

모니터 값 영역에 큰따옴표(") 또는 작은따옴표(')를 입력하는 경우 적용 가능한 따옴표 규칙을 모두 준수하는지 주의하여 확인하십시오.

모니터 창 열기 및 닫기

SET AUTOMONITOR ON 명령을 입력하기 전에 모니터 창이 닫혀 있으면 Debug Tool이 모니터 창을 열고 이 창의 자동 모니터 구역에 사용자가 실행하는 명령문에 있는 변수의 이름과 값을 표시합니다.

SET AUTOMONITOR OFF 명령을 입력하기 전에 모니터 창이 열려 있고 SET AUTOMONITOR ON으로 모니터링되지 않는 변수 값을 모니터링하고 있는 경우에는 모니터 창이 그대로 열려 있습니다.

메모리 창에서 메모리 표시 및 수정

Debug Tool은 메모리 창에서 메모리 섹션을 표시할 수 있습니다. 메모리 창을 열고 다음 액션 중 하나를 수행하여 특정 메모리 섹션을 표시할 수 있습니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

16진 데이터 영역에서 메모리 수정

16진 데이터 영역에 16진 문자(0-9, A-F, a-f)를 입력할 수 있습니다. Debug Tool은 입력한 값으로 메모리를 갱신합니다. 메모리의 프로그램 명령 영역을 수정하면 Debug Tool은 STEP 명령을 전혀 실행하지 않고 메모리를 수정한 인접 영역에 있는 임의의 AT 중단점에서 중지하지도 않습니다. 뿐만 아니라 프로그램을 실행하려고 해도 결과가 예측 불가능합니다.

문자 데이터 컬럼은 데이터의 문자 표시이며 표시를 위해서 사용됩니다.

파일 할당 관리

디버깅하는 중에 DESCRIBE ALLOCATIONS, ALLOCATEFREE 명령을 사용하여 파일을 관리할 수 있습니다. 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

다음 목록은 각 열에 대해 설명합니다.

 1  볼륨
데이터셋이 포함된 DASD 볼륨의 볼륨 일련 번호입니다.
 2  CAT
이 열의 별표는 시스템 카탈로그를 사용하여 데이터셋을 찾았음을 나타냅니다.
 3  표시
데이터셋에 지정된 조치 유형입니다.
 4  열림
이 열의 별표는 파일이 현재 열려 있음을 나타냅니다.
 5  DD명
파일의 DD명입니다.
 6  DS명
DASD 데이터셋의 데이터셋명입니다.

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은 알려진 컴파일 단위에 연관된 소스, 목록 또는 별도의 디버그 파일만 표시할 수 있습니다.

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 TRAPINTERRUPT 런타임 옵션을 둘 모두 ON으로 설정하지는 않아야 합니다. TEST 런타임 옵션의 test_level 하위 옵션을 NONE으로 설정하지 않아야 합니다.

다음 환경 및 디버깅 모드에서는 어텐션 인터럽트 키가 지원되지 않습니다.

MVS 전용: C의 경우, 어텐션 인터럽트를 사용할 때 SET INTERCEPT ON FILE stdout을 사용하여 터미널로 향하는 메시지를 인터럽트하십시오. 어텐션 인터럽트를 요청한 후에는 메시지가 터미널로 향하지 않으므로 이 작업이 필요합니다.

Dynamic Debug 기능 전용: Dynamic Debug 기능은 컴파일인 후크가 있는 프로그램에만 어텐션 인터럽트를 지원합니다.

일부 키보드에서는 올바른 키에 ATTN이 표시되지 않을 수 있습니다. 대개 다음과 같은 키가 사용됩니다.

어텐션 인터럽트를 요청하면 Debug Tool에 제어가 주어집니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

전체 화면 모드의 디버그 세션 종료

프로그램 디버깅을 완료하면 다음 방법 중 하나를 사용하여 전체 화면 디버그 세션을 종료할 수 있습니다.

메소드 A
  1. PF3(QUIT)을 누르거나 명령행에 QUIT를 입력하십시오.
  2. Y를 입력하여 요청을 확인하고 Enter를 누르십시오. 프로그램 실행이 중지됩니다.

CICS 비Language Environment 어셈블러 또는 비Language Environment COBOL 프로그램을 디버그하는 경우 QUIT이 Debug Tool을 종료시키고 ABEND 4038로 태스크가 종료됩니다.

메소드 B
  1. QQUIT 명령을 입력하십시오. 디버그 세션 종료 요청을 확인하는 프롬프트가 표시되지 않습니다. 프로그램 실행이 중지됩니다.

CICS 비Language Environment 어셈블러 또는 비Language Environment COBOL 프로그램을 디버그하는 경우 QUIT이 Debug Tool을 종료시키고 ABEND 4038로 태스크가 종료됩니다.

메소드 C
  1. QUIT DEBUG 또는 QUIT DEBUG TASK(CICS 전용) 명령을 입력하십시오.
  2. Y를 입력하여 요청을 확인하고 Enter를 누르십시오. Debug Tool이 종료되고 프로그램이 계속 실행됩니다.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.


6.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
7.
Enterprise COBOL for z/OS, 버전 4.1을 사용하는 경우 항상 기호 테이블이 생성됩니다.