전체 화면 모드는 Debug Tool이 3270 터미널에서 프로그램 디버그를 돕기 위해 제공하는 인터페이스입니다. 이 주제에서는 기본 디버깅 세션을 작성하는 다음 태스크에 대해 설명합니다.
각 주제에는 자세한 정보를 제공하는 다른 주제에 대한 참조가 있습니다.
각 프로그래밍 언어에는 종합적인 컴파일러 옵션 세트가 있습니다. 프로그램 디버깅을 준비하려면 올바른 컴파일러 옵션을 사용하는 것이 중요합니다. 다음 목록은 각 프로그래밍 언어에 사용할 수 있는 가장 간단한 컴파일러 옵션 세트에 대해 설명합니다.
VS COBOL II 프로그램을 컴파일하는 경우 필수 옵션은 NOOPTIMIZE, NOTEST, SOURCE, MAP, XREF 및 LIST와 OFFSET 중 하나입니다.
상황에 맞게 사용할 컴파일러 옵션 및 하위 옵션의 올바른 조합을 선택하는 방법에 대한 지시사항은 디버그 세션 계획을 참조하십시오.
전체 화면 모드에서 Debug Tool을 시작하는 여러 가지의 메소드가 있습니다. 각 메소드는 컴파일러 옵션 모음으로 컴파일하고 다양한 런타임 환경에서 실행하는 프로그램에 대해 Debug Tool을 시작하도록 디자인되었습니다. Debug Tool 시작에서는 이 메소드 각각에 대해 설명합니다.
이 주제에서는 TSO의 Language Environment에서 실행되는 프로그램에 대해 Debug Tool을 시작하는 가장 간단하면서 직접적인 메소드에 대해 설명합니다. TSO READY 프롬프트에서 다음 명령을 입력하십시오.
CALL 'USERID1.MYLIB(MYPROGRAM)' '/TEST'
디버깅 중인 프로그래밍 언어에 따라 슬래시(/)를 TEST 런타임 옵션 전후에 배치하십시오.
다음 주제에서는 Debug Tool을 시작하는 다른 메소드에 대한 자세한 정보를 제공합니다.
Debug Tool을 시작하면 Debug Tool 화면이 표시됩니다.
COBOL 위치: EMPLOOK 초기화
Command ===> Scroll ===> PAGE
모니터 --+----1----+----2----+----3----+----4----+----5----+----6 행: 0/0
******************************* 모니터 맨 위 ********************************
******************************** 모니터의 끝 ********************************
소스: EMPLOOK --1----+----2----+----3----+----4----+----5----+ 행: 1/349
1 ************************************************************ .
2 * * .
3 * * .
4 ************************************************************ .
5 .
6 ************************************************************ .
7 IDENTIFICATION DIVISION. .
8 ************************************************************ .
9 PROGRAM-ID. "EMPLOOK". .
로그 ----+----1----+----2----+----3----+----4----+----5----+----6- 행: 1/5
********************************* 로그 맨 위 **********************************
IBM Debug Tool 버전 11 릴리스 1 모드 0
11/06/2010 4:11:41 PM
5655-W45: Copyright IBM Corp. 1992, 2010
PF 1:? 2:STEP 3:QUIT 4:LIST 5:FIND 6:AT/CLEAR
PF 7:UP 8:DOWN 9:GO 10:ZOOM 11:ZOOM LOG 12:RETRIEVE
기본 화면은 한 개의 세션 패널 헤더 및 세 개의 실제 창으로 구분되어 네 개의 섹션으로 나눠집니다. 세션 패널 헤더는 화면 맨 위 두 행으로 헤더 필드와 명령행이 표시됩니다. 헤더 필드는 프로그래밍 언어 및 프로그램 내에서의 위치를 설명합니다. 명령행은 사용자가 Debug Tool 명령을 입력하는 곳입니다.
실제 창은 특정 유형의 디버깅 정보만 표시하는 화면 공간입니다. 디버깅 정보는 논리적 창으로 부르는 다음 유형으로 구성됩니다.
기본 화면에는 세 개의 실제 창이 표시되며 모니터 창, 소스 창, 로그 창으로 지정됩니다. 메모리 창은 로그 창과 스왑할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
프로그램 스테핑은 동시에 한 행에서 프로그램을 실행하는 것을 의미합니다. 각 행이 실행된 후에 프로그램 플로우 및 스토리지에서 변경사항을 관찰할 수 있습니다. 이러한 변경사항은 모니터 창, 소스 창 및 로그 창에 표시됩니다. 프로그램을 스테핑하려면 STEP 명령을 사용하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
다음 방법 중 하나를 사용하여 프로그램 내의 한 지점에서 다른 지점까지 실행할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
Debug Tool에서 중단점은 프로그램 내의 중지 지점 및 시간 내의 중지 지점을 표시할 수 있습니다. 또한 중단점은 실행 소개, 수행할 계산 및 작성할 변경사항 등의 활동을 포함할 수 있습니다.
기본 중단점은 프로그램 내의 중지 지점을 표시합니다. 예를 들어, 프로그램의 100행에서 중지하려면 명령행에 다음 명령을 입력하십시오.
line: AT 100
로그 창에 AT 100 ; 메시지가 표시됩니다. 100행이 중단점을 설정하기에 올바른 지점이 아니면 로그 창에 명령문 100이 올바르지 않습니다.와 유사한 메시지가 표시됩니다. 접두부 영역에서 색상 되돌리기를 설정하여 소스 창에 중단점을 표시할 수도 있습니다.
중단점은 중지 지점을 표시하는 것 이상의 작업을 수행합니다. 중단점은 지시사항을 포함할 수도 있습니다. 예를 들어, 다음 중단점은 Debug Tool이 100행에 도달했을 때 myvar 변수의 컨텐츠를 표시하도록 Debug Tool에 지시합니다.
AT 100 LIST myvar;
중단점은 프로그램의 플로우를 변경하는 지시사항을 포함할 수 있습니다. 예를 들어, 다음 중단점은 Debug Tool이 100행에 도달했을 때 newPlace 레이블로 이동하도록 지시합니다.
AT 100 GOTO newPlace ;
중단점에는 조건을 충족하는 경우 Debug Tool이 중단점에서 중지됨을 의미하는 조건이 포함될 수 있습니다. 예를 들어, myvar의 값이 10보다 큰 경우에만 100행에서 중지하려면 다음 명령을 입력하십시오.
AT 100 WHEN myvar > 10;
중단점은 복잡한 지시사항을 포함할 수도 있습니다. 다음 예제에서 Debug Tool이 100행에 도달했을 때 mybool 변수의 값이 true이면 myvar 변수의 컨텐츠를 변경합니다.
AT 100 if (mybool == TRUE) myvar = 10 ;
복잡한 지시사항의 구문은 사용자가 디버깅하는 언어에 따라 다릅니다. 이전 예제에서는 사용자가 C 프로그램을 디버깅하고 있다고 가정합니다. COBOL 프로그램을 디버깅하고 있는 경우에는 동일한 예제가 다음과 같이 작성됩니다.
AT 100 if mybool = TRUE THEN myvar = 10 ; END-IF ;
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
중단점 설정 및 프로그램 실행에 익숙해지면 변수의 값을 표시할 수 있습니다. 변수의 값은 다음 중 한 가지 방법으로 표시할 수 있습니다.
1회 표시의 경우 명령행에 다음 명령을 입력하십시오. 여기서, x는 변수의 이름입니다.
LIST (x)
로그 창은 다음 형식의 메시지를 표시합니다.
LIST ( x ) ; x = 10
또는 소스 창의 접두부 영역에 L 접두부 명령을 입력할 수도 있습니다. 소스 창의 다음 행에서 접두부 영역에 L2를 입력한 후 Enter를 누르면 var2의 값이 표시됩니다.
200 var1 = var2 + var3;
Debug Tool은 LIST (var2) 명령을 작성하고 실행한 후 로그 창에 다음 메시지를 표시합니다.
LIST ( VAR2 ) ; VAR2 = 50
다음 어셈블러 또는 컴파일러에 컴파일 또는 어셈블된 프로그램에서만 L 접두부 명령을 사용할 수 있습니다.
연속 표시의 경우 명령행에 다음 명령을 입력하십시오. 여기서, x는 변수의 이름입니다.
MONITOR LIST ( x )
모니터 창에 변수의 이름이 표시되고 그 옆에 변수의 현재 값이 표시됩니다. 변수의 값이 정의되지 않았으면 변수가 초기화되지 않았거나 존재하지 않는 것이며 변수명 밑에 변수를 사용할 수 없음을 선언하는 메시지가 표시됩니다.
또는 소스 창의 접두부 영역에 M 접두부 명령을 입력할 수도 있습니다. 소스 창의 다음 행에서 접두부 영역에 M3을 입력한 후 Enter를 누르면 모니터 창에 var3이 추가됩니다.
200 var1 = var2 + var3;
Debug Tool은 MONITOR LIST (var3) 명령을 작성하고 실행한 후 모니터 창에 var3을 추가합니다.
다음 어셈블러 또는 컴파일러에 컴파일 또는 어셈블된 프로그램에서만 M 접두부 명령을 사용할 수 있습니다.
1회 및 연속 표시가 조합된 경우 명령행에 다음 명령을 입력하십시오.
SET AUTOMONITOR ON ;
코드의 행이 실행된 후에 모니터 창에 코드의 행에 관한 각 변수의 이름 및 값이 표시됩니다. SET AUTOMONITOR 명령은 Debug Tool Reference and Messages에 따라 특정 프로그래밍 언어에 대해서만 사용할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
덤프와 유사한 형식으로 메모리를 직접 확인하는 것이 도움이 되는 경우도 있습니다. 메모리 창에서 이런 형식으로 메모리를 확인할 수 있습니다.
메모리 창은 기본 화면에는 표시되지 않습니다. 메모리 창을 표시하려면 WINDOW SWAP MEMORY LOG 명령을 실행하십시오. Debug Tool은 로그 창 위치에 메모리 창을 표시합니다.
메모리 창이 표시되면 SCROLL DOWN 및 SCROLL UP 명령을 실행하여 창을 탐색할 수 있습니다. 16진 데이터 영역에 새 값을 입력하여 메모리 컨텐츠를 수정할 수 있습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
변수의 값을 본 후에 변수를 변경해야 하는 경우도 있을 것입니다. 예를 들어, 지정된 값이 원하던 값이 아닌 경우 원하는 값으로 변경할 수 있습니다. 그런 다음, 변수가 제대로 설정되지 않은 이유를 분석하는 것은 연기하고 계속 프로그램의 플로우를 연구할 수 있습니다.
변수의 값을 변경하는 것은 사용자가 디버깅하고 있는 프로그래밍 언어에 따라 다릅니다. Debug Tool에서 값을 지정하는 규칙 및 방법은 프로그래밍 언어 규칙 및 방법과 동일합니다. 예를 들어 값을 C 변수에 지정하려면 C 지정 규칙 및 방법을 사용하십시오.
var = 1 ;
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
DISABLE 명령을 사용하여 임시로 중단점을 사용 안함으로 설정하십시오. ENABLE 명령을 사용하여 중단점을 다시 사용함으로 설정하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
중단점이 더 이상 필요하지 않으면 지울 수 있습니다. 중단점을 지우면 중단점과 연관된 지시사항도 모두 제거됩니다. 예를 들어, 프로그램의 100행에서 중단점을 지우려면 명령행에 다음 명령을 입력하십시오.
CLEAR AT 100
로그 창에 CLEAR AT 100 ; 행이 표시되고 접두부 영역이 원래 색상으로 되돌아갑니다. 이러한 변경사항은 100행의 중단점이 사라졌음을 의미합니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
실행하는 명령문을 레코딩하고 후속적으로 재생할 수 있습니다. 명령문을 재생할 때 앞으로 또는 뒤로 재생할 수 있습니다. 표 4는 명령문을 앞으로 또는 뒤로 재생할 때 명령문이 재생되는 순서에 대해 설명합니다.
| PLAYBACK FORWARD 순서 | PLAYBACK BACKWARD 순서 | COBOL 명령문 |
|---|---|---|
| 1 | 9 | DISPLAY "CALC Begins." |
| 2 | 8 | MOVE 1 TO BUFFER-PTR. |
| 3 | 7 | PERFORM ACCEPT-INPUT 2 TIMES. |
| 8 | 2 | DISPLAY "CALC Ends." |
| 9 | 1 | GOBACK. |
| ACCEPT-INPUT. | ||
| 4, 6 | 4, 6 | ACCEPT INPUT-RECORD FROM A-INPUT-FILE |
| 5, 7 | 3, 5 | MOVE RECORD-HEADER TO REPROR-HEADER. |
레코딩을 시작하려면 다음 명령을 입력하십시오.
PLAYBACK ENABLE
PLAYBACK ENABLE 명령을 입력한 후에 실행되는 명령문이 레코딩됩니다.
레코딩한 명령문을 재생하려면 다음을 수행하십시오.
PLAYBACK BACKWARD 및 PLAYBACK FORWARD는 STEP 이동과 같은 방향 명령을 변경합니다.
명령문 재생을 완료하였으면 PLAYBACK STOP 명령을 입력하십시오. Debug Tool이 PLAYBACK START 명령을 입력한 지점으로 돌아갑니다. 정상 디버깅을 재개할 수 있습니다. Debug Tool이 명령문을 계속 레코딩합니다. 새 명령문 세트를 재생하려면 1단계에서 시작하십시오.
명령문 레코딩 및 재생을 완료하였으면 다음 명령을 입력하십시오.
PLAYBACK DISABLE
Debug Tool이 더 이상 명령문을 레코딩하지 않고 사용자가 레코딩한 정보를 버립니다. 더 이상 PLAYBACK START, PLAYBACK FORWARD, PLAYBACK BACKWARD 및 PLAYBACK STOP 명령을 사용할 수 없습니다.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.
디버그 세션을 중지하려면 다음 단계를 수행하십시오.
Debug Tool 화면이 닫힙니다.
디버그 세션을 중지할 수 있는 QQUIT, QUIT ABEND 및 QUIT DEBUG 명령에 대한 자세한 정보는 Debug Tool Reference and Messages를 참조하십시오.
이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.