디버그 세션 계획

디버깅을 시작하기 전에 다음을 선택하는 데 도움이 되는 계획을 작성하십시오.

계획을 보다 쉽게 작성하려면 다음 태스크를 수행하십시오.

  1. 표 5에서 프로그램에 사용할 컴파일러 옵션 및 하위 옵션을 기록하십시오. 이 표에는 일반 컴파일러 세트의 가장 작은 프로그램 크기와 최고의 디버깅 기능을 제공할 수 있는 컴파일러 옵션이 있습니다. 다음 정보에 대해서는 디버깅을 위한 컴파일러 옵션 선택을 참조하십시오.
  2. 사용할 디버깅 모드를 기록하려면 표 3을 사용하십시오. 디버깅 모드가 작동하도록 하려면 수행해야 하는 태스크 및 전제조건에 대해 학습하려면 디버깅 모드 선택을 참조하십시오.
  3. TEST 런타임 옵션을 지정하는 데 사용할 메소드를 기록하려면 표 11을 참조하십시오. 프로그램에 가장 잘 맞는 메소드를 판별하려면 Debug Tool을 시작할 메소드 선택을 참조하십시오.
  4. COBOL and CICS Command Level Conversion Aid for OS/390 & MVS & VM: User's Guide에 나열된 이전 COBOL 프로그램을 디버깅하려는 경우 다음 옵션 중에서 결정해야 합니다. 자세한 정보는 이전 COBOL 프로그램 디버그 방법 선택을 참조하십시오.

이 태스크를 완료한 후 Debug Tool로 프로그램을 디버깅할 수 있도록 프로세스 갱신의 지시사항에 따라 수집한 정보를 사용하십시오.

디버깅을 위한 컴파일러 옵션 선택

컴파일러 옵션은 로드 모듈의 크기 및 사용 가능한 Debug Tool 기능의 양에 영향을 미칩니다. Debug Tool은 후크 및 기호 테이블과 같은 정보를 사용하여 프로그램 제어를 얻고 프로그램을 한 명령문씩 또는 한 행씩 실행하며 프로그램에 대한 정보를 표시합니다.

후크 및 기호 테이블을 사용하여 Debug Tool이 프로그램을 디버그하도록 돕는 방법에 대해 학습하려면 다음 주제를 참조하십시오.

컴파일러 옵션이 Debug Tool 기능에 어떠한 영향을 미치는지에 대해 학습하려면 다음 주제를 참조하십시오.

표 5. 이 표에서 사용해야 하는 컴파일러 옵션을 기록하십시오. 해당 옵션은 /OS용 Debug Tool 버전 11.1 이상에서 사용할 수 있습니다.
컴파일러 또는 어셈블러 사용할 컴파일러 옵션
OS/VS COBOL, 버전 1 릴리스 2.4 NOTEST,SOURCE,DMAP,PMAP,VERB,XREF,NOLST,NOBATCH,NOSYMDMP,NOCOUNT 또는
______________________________________________________________
VS COBOL II 버전 1 릴리스 3 및 버전 1 릴리스 4(TEST 컴파일러 옵션으로 컴파일하고 Language Environment 라이브러리에 링크된 프로그램의 경우) TEST 또는
______________________________________________________________
VS COBOL II 버전 1 릴리스 3 및 버전 1 릴리스 4(NOTEST 컴파일러 옵션으로 컴파일하고 비Language Environment 라이브러리에 링크된 프로그램의 경우) NOTEST,NOOPTIMIZE,SOURCE,MAP,XREF,LIST(또는 OFFSET) 또는
______________________________________________________________
AD/Cycle® COBOL/370 버전 1 릴리스 1 TEST(ALL,SYM) 또는
______________________________________________________________
COBOL for MVS & VM TEST(ALL,SYM) 또는
______________________________________________________________
COBOL for OS/390® & VM TEST(NONE,SYM,SEPARATE) 또는
______________________________________________________________
Enterprise COBOL for z/OS 및 OS/390, 버전 3 TEST(NONE,SYM,SEPARATE) 또는
______________________________________________________________
Enterprise COBOL for z/OS®, 버전 4.1 이상 TEST(NOHOOK,SEPARATE,EJPD) 또는
______________________________________________________________
OS PL/I 버전 2 릴리스 1, 버전 2 릴리스 2 및 버전 2 릴리스 3 TEST(ALL,SYM) 또는
______________________________________________________________
PL/I for MVS & VM TEST(ALL,SYM) 또는
______________________________________________________________
Enterprise PL/I, 버전 3.1 - 버전 3.3 TEST(ALL,SYM) 또는
______________________________________________________________
Enterprise PL/I, 버전 3.4 TEST(ALL,NOHOOK,SYM) 또는
______________________________________________________________
Enterprise PL/I, 버전 3.5 이상 TEST(ALL,NOHOOK,SYM,SEPARATE) 또는
______________________________________________________________
Enterprise PL/I 버전 3.7 TEST(ALL,NOHOOK,SYM,SEPARATE,SOURCE) 또는
______________________________________________________________
Enterprise PL/I 버전 3.8 이상 TEST(ALL,NOHOOK,SYM,SEPARATE)LISTVIEW 또는
______________________________________________________________
Enterprise PL/I, 버전 4.1 이상 TEST(ALL,NOHOOK,SYM,SEPARATE)LISTVIEWGONUMBER(SEPARATE) 또는
______________________________________________________________
  • AD/Cycle C/370™ 버전 1 릴리스 1
  • C/C++ for MVS/ESA 버전 3 릴리스 1 이상
  • OS/390용 C++ 기능 버전 2 릴리스 6 이상
  • z/OS용 C++ 기능, 버전 1.5 이전
TEST 또는
______________________________________________________________
  • OS/390용 C 기능 버전 2 릴리스 6 이상
  • z/OS용 C 기능, 버전 1.5 이전
TEST(HOOK) 또는
______________________________________________________________
z/OS용 C/C++ 기능, 버전 1.6 이상 DEBUG(FORMAT(DWARF)) 또는
______________________________________________________________
IBM® High Level Assembler(HLASM), 버전 1 릴리스 4, 버전 1 릴리스 5, 버전 1 릴리스 6 ADATA

COBOL 프로그램에 대해 TEST 또는 NOTEST 컴파일러 하위 옵션 선택

이 주제에서는 원하는 디버깅 시나리오를 만들기 위해 지정해야 하는 TEST 컴파일러 옵션 및 하위 옵션 조합에 대해 설명합니다. 이 주제에서는 Enterprise COBOL for z/OS, 버전 3.4 이상으로 COBOL 프로그램을 컴파일하는 것으로 간주하지만 COBOL 컴파일러의 이전 버전에서도 대체하여 사용할 수 있는 정보도 제공합니다.

COBOL 컴파일러에서는 다음 액션을 제어할 수 있도록 TEST 컴파일러 옵션 및 해당 하위 옵션을 제공합니다.

다음 지시사항은 프로그램을 디버그해야 하는 기능을 제공하는 TEST 컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.

  1. 사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.
  2. IMS™를 사용하는 COBOL 프로그램의 경우 IMS RESLIB 라이브러리로부터 IMS 인터페이스 모듈 DFSLI000을 포함하십시오.
  3. 시나리오 A, B 및 E의 경우 다음 단계를 수행하십시오.
    1. 읽기 전용 스토리지에 있는 프로그램에 후크를 배치하기 위해 Dynamic Debug 기능을 사용하는 경우에는 승인된 디버그 기능이 설치되어 있고 이를 사용할 권한이 있는지 시스템 관리자에게 확인하십시오.
    2. Dynamic Debug 기능이 시스템에 설치되어 있는지 확인하십시오.
    3. Debug Tool을 시작한 후에는 QUERY DYNDEBUG 명령을 입력하여 Dynamic Debug 기능을 비활성화하지 않았는지 확인하십시오.
    4. 별도의 디버그 파일이 임시 파일이 아니고 디버그 세션에서 사용할 수 있는지 확인하십시오. 목록은 저장하지 않아도 됩니다.
  4. 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.

컴파일러 옵션 및 하위 옵션을 선택한 후 디버그 세션 계획을 참조하여 완료해야 하는 다음 태스크를 판별하십시오.

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

다음 표는 Enterprise COBOL for z/OS Programming Guide에서 설명하지 않은 Debug Tool 동작 또는 기능의 사용가능성에 대해 NOTEST 컴파일러 옵션, TEST 컴파일러 옵션 및 TEST 컴파일러 옵션의 일부 하위 옵션이 미치는 영향에 대해 설명합니다.

표 6. COBOL NOTEST 컴파일러 옵션 및 일부 TEST 컴파일러 하위 옵션이 Debug Tool에 미치는 영향에 대한 설명입니다.
컴파일러 옵션 또는 하위 옵션 이름 영향에 대한 설명
NOTEST
  • 프로그램 명령문을 단계별로 실행할 수 없습니다.
  • 기본 컴파일 단위를 초기화할 때만 프로그램 실행을 일시중단할 수 있습니다.
  • 프로그램 실행을 일시중단하고 Debug Tool 명령을 실행할 수 있도록 프로그램에 CEETEST 호출을 포함할 수 있습니다.
  • 프로그램 변수를 조사하거나 사용할 수 없습니다.
  • 스토리지와 레지스터를 나열할 수 있습니다.
  • 컴파일러가 작성한 소스 목록을 사용할 수 없습니다. 그러므로 디버그 세션 중에 목록을 사용할 수 없습니다. SET DEFAULT LISTINGS 명령을 사용하여 목록을 사용 가능하게 할 수 없습니다.
  • 명령문 테이블을 사용할 수 없으므로 명령문 중단점을 설정하거나 GOTO 또는 QUERY 위치와 같은 명령을 사용할 수 없습니다.
하지만 여전히 디스어셈블리 보기를 사용하여 프로그램을 디버그할 수 있습니다. 디스어셈블리 보기를 사용하는 방법에 대해 학습하려면 디스어셈블된 프로그램 디버깅을 참조하십시오.
NONE 및 NOHOOK
  • 다음 컴파일러 중 하나로 컴파일하는 경우 최적화되지 않은 프로그램을 디버깅할 때 GOTO 또는 JUMPTO 명령을 사용할 수 있습니다.
    • Enterprise COBOL for z/OS, 버전 4.1
    • Enterprise COBOL for z/OS 및 OS/390, 버전 3의 모든 릴리스
    • COBOL for OS/390 & VM, 버전 2의 모든 릴리스
    Enterprise COBOL for z/OS, 버전 4.1로 컴파일하고 TEST 컴파일러 옵션에 EJPD 하위 옵션을 지정한 경우에는 최적화된 프로그램을 디버깅할 때 GOTO 또는 JUMPTO 명령을 사용할 수 있습니다. EJPD 하위 옵션을 지정하는 경우 최적화가 약간 손실될 수 있습니다.
  • 어느 지점에서든 CEETEST 호출을 사용하여 Debug Tool을 시작할 수 있습니다.
EJPD

최적화된 프로그램이 다음 컴파일러 중 하나로 컴파일된 경우 변수를 수정할 수 있습니다.

  • Enterprise COBOL for z/OS, 버전 4.1
  • Enterprise COBOL for z/OS 및 OS/390, 버전 3 릴리스 2 이상
  • APAR PQ63235가 설치된 Enterprise COBOL for z/OS 및 OS/390, 버전 3 릴리스 1
  • COBOL for OS/390 & VM, 버전 2 릴리스 2
  • APAR PQ63234가 설치된 COBOL for OS/390 & VM, 버전 2 릴리스 1

그러나 결과는 예측 불가능합니다. 좀 더 예측 가능한 결과를 얻으려면 프로그램을 Enterprise COBOL for z/OS, 버전 4.1로 컴파일하고 TEST 컴파일러 옵션의 EJPD 하위 옵션을 지정하십시오. 그러나 VALUE 절로 선언하여 초기화한 변수는 수정할 수 없습니다.

NOSYM
  • 프로그램 변수를 이름별로 참조할 수 없습니다.
  • LIST 또는 DESCRIBE와 같은 명령을 사용하여 변수 또는 표현식에 액세스할 수 없습니다.
  • CALL 변수와 같은 명령을 사용하여 다른 프로그램으로 분기하거나 GOTO를 사용하여 다른 레이블(단락 또는 섹션명)로 분기할 수 없습니다.

Enterprise COBOL for z/OS, 버전 4.1로 컴파일하는 경우 컴파일러는 SYM 또는 NOSYM을 무시하고 항상 기호 테이블을 작성합니다.

STMT
  • COBOL 컴파일러는 DATEPROC 컴파일러 옵션이 지정된 경우에만 날짜 처리 명령문에 대해 컴파일된 후크를 생성합니다. 날짜 처리 명령문은 날짜 필드를 참조하는 명령문이거나 날짜 필드를 참조하는 EVALUATE 또는 SEARCH 명령문의 WHEN 절입니다.
  • 모든 명령문에서 중단점을 설정하고 프로그램을 단계별로 실행할 수 있습니다.
  • Debug Tool은 명령문 경계에 있지 않은 경우 경로 지점에서 제어할 수 없습니다.
  • Debug Tool 명령 GOTO를 사용하여 모든 명령문과 레이블로 분기할 수 있습니다.

Enterprise COBOL for z/OS, 버전 4.1로 컴파일하는 경우 컴파일러는 STMT 하위 옵션을 Enterprise COBOL for z/OS 및 OS/390, 버전 3 또는 COBOL for OS/390 & VM, 버전 2의 모든 릴리스에서 ALL 하위 옵션과 동등한 HOOK 하위 옵션처럼 처리합니다.

PATH
  • Debug Tool은 경로 지점과 블록 시작점 및 종료점에서만 제어할 수 있습니다. 프로그램을 단계별로 실행하려고 하면 Debug Tool은 경로 지점과 일치하는 명령문에서만 제어하여 모든 명령문이 실행되지 않음을 표시합니다.
  • 어느 지점에서든 CEETEST 호출을 사용하여 Debug Tool을 시작할 수 있습니다.
  • Debug Tool 명령 GOTO는 경로 지점과 일치하는 모든 명령문과 레이블에 대해서만 유효합니다.

Enterprise COBOL for z/OS, 버전 4.1로 컴파일하는 경우 컴파일러는 PATH 하위 옵션을 Enterprise COBOL for z/OS 및 OS/390, 버전 3 또는 COBOL for OS/390 & VM, 버전 2의 모든 릴리스에서 ALL 하위 옵션과 동등한 HOOK 하위 옵션처럼 처리합니다.

BLOCK
  • 프로그램, 메소드 및 중첩 프로그램의 시작과 종료에 Debug Tool이 제어합니다.
  • 어느 지점에서든 CEETEST를 호출하여 Debug Tool을 명시적으로 시작할 수 있습니다.
  • STEP과 같은 명령을 실행하면 다음 시작점이나 종료점에 도달할 때까지 프로그램이 실행됩니다.
  • GOTO는 블록 시작점 및 종료점과 일치하는 명령문으로 분기하는 데 사용할 수 있습니다.

Enterprise COBOL for z/OS, 버전 4.1로 컴파일하는 경우 컴파일러는 BLOCK 하위 옵션을 Enterprise COBOL for z/OS and OS/390, 버전 3 또는 COBOL for OS/390 & VM, 버전 2의 모든 릴리스에서 ALL 하위 옵션과 동등한 HOOK 하위 옵션처럼 처리합니다.

ALL
  • 모든 명령문과 경로 지점에서 중단점을 설정하고 프로그램을 단계별로 실행할 수 있습니다.
  • Debug Tool은 Debug Tool 명령을 입력할 수 있도록 모든 명령문, 경로 지점, 날짜 처리 명령문, 레이블, 블록 시작점 및 종료점에서 프로그램을 제어할 수 있습니다.
  • Debug Tool 명령 GOTO를 사용하여 명령문과 레이블로 분기할 수 있습니다.

Enterprise COBOL for z/OS, 버전 4.1로 컴파일하는 경우 컴파일러는 ALL 하위 옵션을 Enterprise COBOL for z/OS 및 OS/390, 버전 3 또는 COBOL for OS/390 & VM, 버전 2의 모든 릴리스에서 ALL 하위 옵션과 동등한 HOOK 하위 옵션처럼 처리합니다.

PL/I 프로그램에 대해 TEST 또는 NOTEST 컴파일러 하위 옵션 선택

이 주제에서는 원하는 디버깅 시나리오를 만들기 위해 지정해야 하는 TEST 컴파일러 옵션 및 하위 옵션 조합에 대해 설명합니다. 이 주제에서는 Enterprise PL/I for z/OS, 버전 3.5 이상의 프로그램을 컴파일하는 것으로 간주하지만 PL/I 컴파일러의 이전 버전에서도 대체하여 사용할 수 있는 정보도 제공합니다.

PL/I 컴파일러에서는 다음 액션을 제어할 수 있도록 TEST 컴파일러 옵션 및 해당 하위 옵션을 제공합니다.

Debug Tool은 최적화된 PL/I 프로그램 디버깅을 지원하지 않습니다. NOOPTIMIZE가 아닌 컴파일러 옵션을 사용하지 마십시오.

다음 지시사항은 프로그램을 디버그해야 하는 기능을 제공하는 TEST 컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.

  1. 사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.
  2. 시나리오 A, B, C, E 및 F의 경우, 다음 단계를 수행하십시오.
    1. 읽기 전용 스토리지에 있는 프로그램에 후크를 배치하기 위해 Dynamic Debug 기능을 사용하는 경우에는 승인된 디버그 기능이 설치되어 있고 이를 사용할 권한이 있는지 시스템 관리자에게 확인하십시오.
    2. Dynamic Debug 기능이 시스템에 설치되어 있는지 확인하십시오.
    3. Debug Tool을 시작한 후에는 QUERY DYNDEBUG 명령을 입력하여 Dynamic Debug 기능을 비활성화하지 않았는지 확인하십시오.
    4. 별도의 디버그 파일이 임시 파일이 아니고 디버그 세션에서 사용할 수 있는지 확인하십시오.
  3. 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.

컴파일러 옵션 및 하위 옵션을 선택한 후 디버그 세션 계획을 참조하여 완료해야 하는 다음 태스크를 판별하십시오.

표 7. PL/I NOTEST 컴파일러 옵션 및 TEST 컴파일러 하위 옵션이 Debug Tool에 미치는 영향에 대한 설명
컴파일러 옵션 또는 하위 옵션 이름 영향에 대한 설명
NOTEST

NOTEST 컴파일러 옵션을 지정하여 컴파일한 PL/I 프로그램을 디버그할 때 기능의 일부 작동이 변경됩니다. 다음 목록에서는 이 변경사항에 대해 설명합니다.

  • 스토리지와 레지스터를 나열할 수 있습니다.
  • 프로그램에서 PLITEST 또는 CEETEST에 호출을 포함하여 프로그램 실행을 일시중단하고 Debug Tool 명령을 실행할 수 있습니다.
  • 프로그램 명령문을 단계별로 실행할 수 없습니다. 기본 컴파일 단위를 초기화할 때만 프로그램 실행을 일시중단할 수 있습니다.
  • 프로그램 변수를 조사하거나 사용할 수 없습니다.
  • 명령문 레벨에서 후크가 삽입되지 않으므로 명령문 중단점을 설정하거나 GOTO 또는 QUERY LOCATION과 같은 명령을 사용할 수 없습니다.
  • 컴파일러가 작성한 소스 목록을 사용할 수 없습니다. 그러므로 디버그 세션 중에 목록을 사용할 수 없습니다.
하지만 여전히 디스어셈블리 보기를 사용하여 프로그램을 디버그할 수 있습니다. 디스어셈블리 보기를 사용하는 방법에 대해 학습하려면 디스어셈블된 프로그램 디버깅을 참조하십시오.
NOHOOK

TEST 컴파일러 옵션에 NOHOOK 하위 옵션을 지정하여 컴파일한 PL/I 프로그램을 디버깅하는 경우 일부 동작 또는 기능이 변경됩니다. 다음 목록에서는 이 변경사항에 대해 설명합니다.

  • 오버레이 후크를 생성하는 Debug Tool의 경우 하위 옵션 ALL, PATH, STMT 또는 BLOCK 중 하나를 사용해야 하지만 HOOK은 지정할 필요가 없으며 NOHOOK을 사용하는 것이 좋습니다.
  • NOHOOK을 지정하는 경우에는 ENTRY 및 EXIT 중단점이 Debug Tool이 중지되는 유일한 PATH 중단점입니다.
NONE

TEST 컴파일러 옵션의 NONE 하위 옵션을 지정하여 PL/I 프로그램을 컴파일하면 프로그램에서 PLITEST 또는 CEETEST에 호출을 작성하여 프로그램의 어느 위치에서나 Debug Tool을 시작할 수 있습니다.

SYM

TEST 컴파일러 옵션의 SYM 하위 옵션을 지정하여 컴파일한 PL/I 프로그램을 디버그할 때 기능의 일부 작동이 변경됩니다. 다음 목록에서는 이 변경사항에 대해 설명합니다.

  • 모든 프로그램 변수를 이름별로 참조할 수 있으며 이를 통해 표현식에서 해당 변수를 평가하거나 사용할 수 있고 PLAYBACK ENABLE 명령의 DATA 매개변수를 사용할 수 있습니다.
  • SET AUTOMONITOR ON 명령을 지원합니다.
  • 레이블을 GOTO 대상으로 지원합니다.
NOSYM

TEST 컴파일러 옵션의 NOSYM 하위 옵션을 지정하여 컴파일한 PL/I 프로그램을 디버그할 때 기능의 일부 작동이 변경됩니다. 다음 목록에서는 이 변경사항에 대해 설명합니다.

  • 프로그램 변수를 이름별로 참조할 수 없습니다.
  • 변수나 표현식에 액세스하기 위해 LIST 또는 DESCRIBE와 같은 명령에 액세스할 수 없습니다.
  • CALL 변수와 같은 명령을 사용하여 다른 프로그램으로 분기하거나 GOTO를 사용하여 다른 레이블(프로시저 또는 블록명)로 분기할 수 없습니다.
BLOCK

TEST 컴파일러 옵션에 BLOCK 하위 옵션을 지정하여 컴파일한 PL/I 프로그램을 디버깅하는 경우 일부 동작 또는 기능이 변경됩니다. 다음 목록에서는 이 변경사항에 대해 설명합니다.

  • Debug Tool을 사용하여 블록 경계, 즉 블록 시작점과 종료점에서 제어할 수 있습니다.
  • Dynamic Debug가 활성 상태가 아니고 HOOK 컴파일러 옵션을 사용하는 경우, 프로그램의 시작점과 종료점 및 내부 프로그램 블록의 모든 시작점과 종료점에서만 제어할 수 있습니다. 예를 들어, STEP 명령을 입력하면 다음 블록 시작점 또는 종료점에 도달할 때까지 프로그램이 실행됩니다.
  • Dynamic Debug가 활성 상태이면 모든 명령문에서 중단점을 설정하고 프로그램을 단계별로 실행할 수 있습니다.
  • PATH도 지정하는 경우를 제외하고는 경로 지점에서 제어할 수는 없습니다.
  • 프로그램의 어느 지점에서든 PLITEST 또는 CEETEST 호출을 사용하여 Debug Tool을 시작할 수 있습니다.
  • 후크는 비어 있는 ON 단위 또는 단일 GOTO 명령문으로 구성된 ON 단위로 삽입되지 않습니다.
STMT

TEST 컴파일러 옵션의 STMT 하위 옵션을 지정하여 컴파일한 PL/I 프로그램을 디버그할 때 기능의 일부 작동이 변경됩니다. 다음 목록에서는 이 변경사항에 대해 설명합니다.

  • 모든 명령문에서 중단점을 설정하고 프로그램을 단계별로 실행할 수 있습니다.
  • PATH도 지정하는 경우를 제외하고는 Debug Tool은 명령문 경계에 있지 않은 경우 경로 지점에서 제어할 수 없습니다.
  • Debug Tool GOTO 명령을 사용하여 모든 명령문 및 레이블로 분기할 수 있습니다.
ALL

TEST 컴파일러 옵션의 ALL 하위 옵션을 지정하여 컴파일한 PL/I 프로그램을 디버그할 때 기능의 일부 작동이 변경됩니다. 다음 목록에서는 이 변경사항에 대해 설명합니다.

  • 모든 명령문과 경로 지점에서 중단점을 설정하고 프로그램을 단계별로 실행할 수 있습니다.
  • Debug Tool은 Debug Tool 명령을 입력할 수 있도록 모든 명령문, 경로 지점, 레이블, 블록 시작점 및 종료점에서 프로그램을 제어할 수 있습니다.
  • Debug Tool 명령 GOTO를 사용하여 명령문 및 레이블에 분기할 수 있습니다.

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

C 프로그램에 대해 TEST 또는 DEBUG 컴파일러 하위 옵션 선택

이 주제에서는 원하는 디버깅 시나리오를 만들기 위해 지정해야 하는 TEST 또는 DEBUG 컴파일러 옵션 조합에 대해 설명합니다. 이 주제에서는 z/OS C/C++, 버전 1.6 이상으로 C/C++ 프로그램을 컴파일하는 것으로 간주합니다. 그렇지만 C 컴파일러의 이전 버전에 대신 사용할 수 있는 정보도 제공합니다.

TEST 또는 DEBUG 컴파일러 옵션 선택

z/OS C/C++, 버전 1.5 이전으로 컴파일하고 있는 경우에는 TEST 컴파일러 옵션을 선택해야 합니다.

C/C++ 컴파일러 DEBUG가 z/OS C/C++ 버전 1.5에 도입되었습니다. Debug Tool이 z/OS C/C++ 버전 1.6 이상에서 DEBUG 컴파일러 옵션을 지원합니다. DEBUG 컴파일러 옵션이 이전 버전의 컴파일러로 사용 가능한 TEST 컴파일러 옵션을 바꿉니다.

z/OS C/C++, 버전 1.6 이상으로 컴파일하고 있는 경우에는 DEBUG 컴파일러 옵션을 선택하고 다음 이점을 활용하십시오.

C 프로그램에 대해 DEBUG 컴파일러 하위 옵션 선택

이 주제에서는 사용 가능한 디버깅 시나리오 및 올바른 DEBUG 컴파일러 하위 옵션을 선택하여 특정 디버깅 시나리오를 작성하는 방법에 대해 설명합니다.

C 컴파일러에서는 다음 액션을 제어할 수 있도록 DEBUG 컴파일러 옵션 및 해당 하위 옵션을 제공합니다.

Debug Tool은 최적화된 C 프로그램 디버깅을 지원하지 않습니다. NOOPTIMIZE 또는 OPTIMIZE(0) 이외의 OPTIMIZE 컴파일러 옵션을 사용하지 마십시오.

다음 지시사항은 프로그램을 디버그해야 하는 기능을 제공하는 DEBUG 컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.

  1. 사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.

    모든 시나리오에서 기타 Problem Determination Tools를 사용하는 경우, z/OS XL C 및 C++ 프로그램을 참조하여 모든 Problem Determination Tools에 필요한 파일을 작성하기 위한 모든 컴파일러 옵션을 지정하십시오.

  2. 선택한 시나리오의 경우, 다음 자원이 있는지 확인하십시오.
  3. 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.

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

C 프로그램에 대해 TEST 또는 NOTEST 컴파일러 하위 옵션 선택

이 주제에서는 사용 가능한 디버깅 시나리오 및 올바른 TEST 컴파일러 하위 옵션을 선택하여 특정 디버깅 시나리오를 작성하는 방법에 대해 설명합니다.

C 컴파일러는 후크 및 기호 테이블 생성 및 배치를 제어할 수 있도록 TEST 컴파일러 옵션과 자체의 하위 옵션을 제공합니다.

Debug Tool은 최적화된 C 프로그램 디버깅을 지원하지 않습니다. NOOPTIMIZE가 아닌 컴파일러 옵션을 사용하지 마십시오.

다음 지시사항은 프로그램을 디버그해야 하는 기능을 제공하는 TEST 컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.

  1. 사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.

    모든 시나리오에서 기타 Problem Determination Tools를 사용하는 경우, z/OS XL C 및 C++ 프로그램을 참조하여 모든 Problem Determination Tools에 필요한 파일을 작성하기 위한 모든 컴파일러 옵션을 지정하십시오.

  2. 시나리오 B의 경우 다음 단계를 수행하십시오.
    1. z/OS 버전 1.6 또는 버전 1.7에서 실행 중인 경우 APAR PK12833의 Language Environment PTF가 설치되어 있는지 확인하십시오.
    2. 읽기 전용 스토리지에 있는 프로그램에 후크를 배치하기 위해 Dynamic Debug 기능을 사용하는 경우에는 승인된 디버그 기능이 설치되어 있고 이를 사용할 권한이 있는지 시스템 관리자에게 확인하십시오.
    3. Dynamic Debug 기능이 시스템에 설치되어 있는지 확인하십시오.
    4. Debug Tool을 시작한 후에는 SET DYNDEBUG OFF 명령을 입력하여 Dynamic Debug 기능을 비활성화하지 않았는지 확인하십시오.
  3. 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.
표 8. C NOTEST 컴파일러 옵션 및 TEST 컴파일러 하위 옵션이 Debug Tool에 미치는 영향에 대한 설명
컴파일러 옵션 또는 하위 옵션 이름 영향에 대한 설명
NOTEST

다음 목록은 z/OS XL C/C++ User’s Guide에서는 설명되지 않은 NOTEST 컴파일러 옵션이 Debug Tool 작동이나 기능 사용가능성에 주는 영향에 대해 설명합니다.

  • 프로그램 명령문을 단계별로 실행할 수 없습니다. 기본 컴파일 단위를 초기화할 때만 프로그램 실행을 일시중단할 수 있습니다.
  • 프로그램 변수를 조사하거나 사용할 수 없습니다.
  • 스토리지와 레지스터를 나열할 수 있습니다.
  • Debug Tool 명령 GOTO를 사용할 수 없습니다.
하지만 여전히 디스어셈블리 보기를 사용하여 프로그램을 디버그할 수 있습니다. 디스어셈블리 보기를 사용하는 방법에 대해 학습하려면 디스어셈블된 프로그램 디버깅을 참조하십시오.
TEST

다음 목록은 z/OS XL C/C++ User’s Guide에서는 설명되지 않은 TEST 컴파일러 옵션의 일부 하위 옵션이 Debug Tool 작동이나 기능 사용가능성에 주는 영향에 대해 설명합니다.

  • 단일 소스 파일의 최대 행 수는 131,072를 초과할 수 없습니다.
  • 실행문이 있는 최대 포함 파일 수는 1024를 초과할 수 없습니다.
NOSYM

다음 목록은 z/OS XL C/C++ User’s Guide에서는 설명되지 않은 TEST 컴파일러 옵션의 NOSYM 하위 옵션이 Debug Tool 작동이나 기능 사용가능성에 주는 영향에 대해 설명합니다.

  • 프로그램 변수를 이름별로 참조할 수 없습니다.
  • LIST 또는 DESCRIBE와 같은 명령을 사용하여 변수 또는 표현식에 액세스할 수 없습니다.
  • CALL 또는 GOTO와 같은 명령을 사용하여 다른 레이블(단락 또는 섹션명)로 분기할 수 없습니다.

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

#pragma문을 사용한 C 프로그램 컴파일

TEST/NOTEST 컴파일러 옵션은 프로그램을 컴파일할 때 또는 프로그램에서 직접 #pragma를 사용하여 지정할 수 있습니다.

#pragma는 프로그램에서 실행 코드 앞에 나타나야 합니다.

다음 예제에서는 기호 테이블 정보, 중첩된 블록에 대한 기호 정보 및 행 번호에 있는 후크를 생성합니다.

#pragma options (test(SYM,BLOCK,LINE))

이것은 TEST(SYM,BLOCK,LINE,PATH)와 같습니다.

#pragma를 사용하여 런타임 옵션을 지정할 수도 있습니다.

함수 및 중첩 블록 내 후크의 배치를 위한 규칙

다음 규칙이 함수 및 중첩 블록의 진입 및 종료에 대한 후크의 배치에 적용됩니다.

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

명령문 및 경로 지점 내 후크의 배치를 위한 규칙

다음 규칙이 명령문 및 경로 지점에 대한 후크의 배치에 적용됩니다.

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

C++ 프로그램에 대해 TEST 또는 DEBUG 컴파일러 하위 옵션 선택

이 주제에서는 원하는 디버깅 시나리오를 만들기 위해 지정해야 하는 TEST 또는 DEBUG 컴파일러 옵션 조합에 대해 설명합니다. 이 주제에서는 z/OS C/C++, 버전 1.6 이상으로 C/C++ 프로그램을 컴파일하는 것으로 간주합니다. 그렇지만 C++ 컴파일러의 이전 버전에 대신 사용할 수 있는 정보도 제공합니다.

TEST 또는 DEBUG 컴파일러 옵션 선택

z/OS C/C++, 버전 1.5 이전으로 컴파일하고 있는 경우에는 TEST 컴파일러 옵션을 선택해야 합니다.

C/C++ 컴파일러 DEBUG가 z/OS C/C++ 버전 1.5에 도입되었습니다. Debug Tool이 z/OS C/C++ 버전 1.6 이상에서 DEBUG 컴파일러 옵션을 지원합니다. DEBUG 컴파일러 옵션이 이전 버전의 컴파일러로 사용 가능한 TEST 컴파일러 옵션을 바꿉니다.

z/OS C/C++, 버전 1.6 이상으로 컴파일하고 있는 경우에는 DEBUG 컴파일러 옵션을 선택하고 다음 이점을 활용하십시오.

C++ 프로그램에 대해 DEBUG 컴파일러 하위 옵션 선택

이 주제에서는 사용 가능한 디버깅 시나리오 및 올바른 DEBUG 컴파일러 하위 옵션을 선택하여 특정 디버깅 시나리오를 작성하는 방법에 대해 설명합니다.

C++ 컴파일러에서는 다음 액션을 제어할 수 있도록 DEBUG 컴파일러 옵션 및 해당 하위 옵션을 제공합니다.

Debug Tool은 최적화된 C 프로그램 디버깅을 지원하지 않습니다. NOOPTIMIZE 또는 OPTIMIZE(0) 이외의 OPTIMIZE 컴파일러 옵션을 사용하지 마십시오.

다음 지시사항은 프로그램을 디버그해야 하는 기능을 제공하는 DEBUG 컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.

  1. 사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.

    모든 시나리오에서 기타 Problem Determination Tools를 사용하는 경우, z/OS XL C 및 C++ 프로그램을 참조하여 모든 Problem Determination Tools에 필요한 파일을 작성하기 위한 모든 컴파일러 옵션을 지정하십시오.

  2. 선택한 시나리오의 경우, 다음 자원이 있는지 확인하십시오.
  3. 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.

컴파일러 옵션 및 하위 옵션을 선택한 후 디버그 세션 계획을 참조하여 완료해야 하는 다음 태스크를 판별하십시오.

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

C++ 프로그램에 대해 TEST 또는 NOTEST 컴파일러 옵션 선택

이 주제에서는 사용 가능한 디버깅 시나리오 및 올바른 TEST 컴파일러 하위 옵션을 선택하여 특정 디버깅 시나리오를 작성하는 방법에 대해 설명합니다.

C++ 컴파일러는 후크 및 기호 테이블 생성 및 배치를 제어할 수 있도록 TEST 컴파일러 옵션과 자체의 하위 옵션을 제공합니다.

Debug Tool은 최적화된 C++ 프로그램 디버깅을 지원하지 않습니다. NOOPTIMIZE가 아닌 컴파일러 옵션을 사용하지 마십시오.

다음 지시사항은 프로그램을 디버그해야 하는 기능을 제공하는 TEST 컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.

  1. 사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.

    모든 시나리오에서 기타 Problem Determination Tools를 사용하는 경우, z/OS XL C 및 C++ 프로그램을 참조하여 모든 Problem Determination Tools에 필요한 파일을 작성하기 위한 모든 컴파일러 옵션을 지정하십시오.

  2. 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.

컴파일러 옵션 및 하위 옵션을 선택한 후 디버그 세션 계획을 참조하여 완료해야 하는 다음 태스크를 판별하십시오.

표 9. C++ NOTEST 및 TEST 컴파일러 옵션이 Debug Tool에 미치는 영향에 대한 설명
컴파일러 옵션 또는 하위 옵션 이름 영향에 대한 설명
NOTEST

다음 목록은 z/OS XL C/C++ User’s Guide에서는 설명되지 않은 NOTEST 컴파일러가 Debug Tool 작동에 주는 영향에 대해 설명합니다.

  • 프로그램 명령문을 단계별로 실행할 수 없습니다. 기본 컴파일 단위를 초기화할 때만 프로그램 실행을 일시중단할 수 있습니다.
  • 프로그램 변수를 조사하거나 사용할 수 없습니다.
  • 스토리지와 레지스터를 나열할 수 있습니다.
  • Debug Tool 명령 GOTO를 사용할 수 없습니다.
하지만 여전히 디스어셈블리 보기를 사용하여 프로그램을 디버그할 수 있습니다. 디스어셈블리 보기를 사용하는 방법에 대해 학습하려면 디스어셈블된 프로그램 디버깅을 참조하십시오.
TEST

다음 목록은 z/OS XL C/C++ User’s Guide에서는 설명되지 않은 TEST 컴파일러가 Debug Tool 작동에 주는 영향에 대해 설명합니다.

  • 단일 소스 파일의 최대 행 수는 131,072를 초과할 수 없습니다.
  • 실행문이 있는 최대 포함 파일 수는 1024를 초과할 수 없습니다.

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

함수 및 중첩 블록 내 후크의 배치를 위한 규칙

다음 규칙이 함수 및 중첩 블록에 대한 후크의 배치에 적용됩니다.

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

명령문 및 경로 지점 내 후크의 배치를 위한 규칙

다음 규칙이 명령문 및 경로 지점에 대한 후크의 배치에 적용됩니다.

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

후크 작업 방법 및 필요 이유

후크를 사용하면 중단점을 설정할 수 있습니다. 후크는 컴파일러가 컴파일타임에 프로그램 안으로 삽입할 수 있는 명령어입니다. 후크는 블록의 시작 및 종료, 명령문 경계, 프로그램 플로우가 명령문 경계간에 변경될 수 있는 프로그램 내 지점(경로 지점) 등에 배치할 수 있습니다. TEST 컴파일러 옵션으로 프로그램을 컴파일하고 NONE 또는 NOHOOK를 제외한 하위 옵션을 지정하는 경우 컴파일러가 후크를 프로그램에 삽입합니다.

후크를 사용하지 않고 최대 성능을 얻도록 Dynamic Debug 기능을 활용하는 방법

다음과 같은 상황에서는 후크를 사용하지 않고 프로그램을 컴파일하거나 작성할 수 있습니다. 그런 다음, Dynamic Debug 기능을 사용하여 런타임에 중단점을 설정하거나 STEP 명령을 입력할 때마다 후크를 삽입할 수 있습니다.

또한 Dynamic Debug 기능을 사용하면 다음 컴파일러 중 하나로 컴파일된 프로그램을 디버깅하는 동안 Debug Tool의 성능을 향상시킬 수 있습니다.

다음 컴파일러 중 하나를 사용하여 컴파일하고 컴파일러 삽입 후크가 있는 경우, Dynamic Debug 기능을 사용하면 디버그 중에 해당 프로그램의 성능을 향상시킬 수 있습니다.

Debug Tool을 시작할 때, Dynamic Debug 기능이 활성화됩니다. Debug Tool은 컴파일러에서 삽입된 후크 대신 Dynamic Debug 기능으로 삽입한 후크를 사용합니다. 즉 일부 경로 중단점을 사용하지 못할 수도 있습니다. 이 중단점을 사용하려면 SET DYNDEBUG OFF 명령을 입력하여 동적 디버그 기능을 비활성화하십시오. 그러면 Debug Tool이 Dynamic Debug 기능으로 삽입한 후크 대신 컴파일러로 삽입한 후크를 사용합니다.

기호 테이블의 역할 및 이 테이블을 다른 위치에 저장하면 애플리케이션이 더 작아지는 이유

기호 테이블에는 변수에 대한 설명, 속성 및 스토리지 내 위치 등이 포함되어 있습니다. Debug Tool은 변수를 참조할 때 이 설명을 사용합니다. 기호 테이블은 프로그램의 오브젝트 파일 또는 별도의 디버그 파일에 저장될 수 있습니다. 다음 컴파일러 또는 어셈블러 중 하나를 사용하여 프로그램을 컴파일하거나 어셈블하면 기호 테이블을 별도의 디버그 파일에 저장할 수 있습니다.

기호 테이블을 별도의 디버그 파일에 저장하면 프로그램에 대한 로드 모듈의 크기를 줄일 수 있습니다.

C 및 C++ 프로그램의 경우, Debug 테이블은 DEBUG 컴파일러 옵션의 FORMAT(DWARF) 하위 옵션을 지정하여 별도의 디버그 파일(.dbg 파일)에 저장할 수 있습니다. Debug Tool은 z/OS C/C++ 버전 1.6 이상과 함께 제공되는 DEBUG 컴파일러 옵션을 지원합니다.

디버깅 모드 선택

다음 목록을 참조하여 프로그램에 사용할 디버깅 모드를 결정하십시오.

TSO 프로그램의 경우
전체 화면 모드를 선택하십시오. 지원되는 원격 디버거를 사용하려면 원격 Debug 모드를 선택하십시오.
JES Batch 프로그램의 경우
Batch 프로그램에서 대화식으로 작업하려면 전용 터미널을 사용하여 전체 화면 모드를 선택하십시오. 지원되는 원격 디버거를 사용하여 Batch 프로그램에서 대화식으로 작업하려면 원격 디버그 모드를 선택하십시오. Batch 프로그램에서 대화식으로 작업하지 않으려면 Batch 모드를 사용하여 명령 파일을 통해 명령을 지정하고 로그 파일에서 결과를 검토하십시오.
UNIX® System Services 프로그램의 경우
전용 터미널을 사용하여 전체 화면 모드를 선택하십시오. 지원되는 원격 디버거를 사용하려면 원격 Debug 모드를 선택하십시오.
CICS® 프로그램의 경우
3270 디바이스에서 Debug Tool과 상호 작용하려면 다음 터미널 모드 중 하나와 전체 화면 모드를 선택하십시오.

원격 디버거로 프로그램을 디버그하려면 원격 Debug 모드를 선택하십시오. CADP 또는 DTCN 프로파일을 갱신할 때 필요하기 때문에 원격 디버거의 TCP/IP 주소를 기억하십시오.

단일 터미널 모드를 사용하지 않고 사용자 프로그램이 WAIT 옵션을 사용하지 않고 화면을 터미널로 보내는 경우, 프로그램이 EXEC CICS SEND 또는 EXEC CICS RECEIVE문을 실행할 때까지 CICS Terminal Control이 해당 화면을 제어합니다.

DPL(Distributed Program Link)을 사용하는 프로그램을 디버그하려는 경우 다음 디버깅 모드 중 하나를 선택할 수 있습니다.

DB2® 프로그램의 경우
전용 터미널을 사용하여 전체 화면 모드를 선택하십시오. 지원되는 원격 디버거를 사용하려면 원격 Debug 모드를 선택하십시오.
DB2 스토어드 프로시저의 경우
전용 터미널을 사용하여 전체 화면 모드를 선택하십시오. 지원되는 원격 디버거를 사용하려면 원격 Debug 모드를 선택하십시오.
IMS TM 프로그램의 경우
전용 터미널을 사용하여 전체 화면 모드를 선택하십시오. 지원되는 원격 디버거를 사용하려면 원격 Debug 모드를 선택하십시오.
IMS Batch 프로그램의 경우
IMS Batch 프로그램과 대화식으로 작업하려면 전용 터미널을 사용하여 전체 화면 모드를 선택하십시오. 지원되는 원격 디버거를 사용하여 IMS Batch 프로그램과 대화식으로 작업하려면 원격 디버그 모드를 선택하십시오.IMS Batch 프로그램에서 대화식으로 작업하지 않으려면 Batch 모드를 선택하여 명령 파일을 통해 명령을 지정하고 로그 파일에서 결과를 검토하십시오.
IMS BTS 프로그램의 경우
프로그램과 디버깅 세션이 단일 화면에서 실행되도록 하려면 전체 화면 모드를 선택하십시오. BTS 데이터가 TSO 터미널에 표시되고 디버깅 세션이 다른 터미널에 표시되도록 하려면 전용 터미널을 사용하여 전체 화면 모드를 선택하십시오. BTS 데이터가 TSO 터미널에 표시되고 디버깅 세션이 지원되는 원격 디버거에 표시되도록 하려면 원격 디버그 모드를 선택하십시오.
ALCS 프로그램에 대해
원격 디버그 모드를 선택해야 합니다.

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

브라우즈 모드에서 디버깅

일부 프로덕션 환경에서 디버그하는 경우, 스토리지 내용 및 실행 플로우 변경을 제한해야 합니다. 브라우즈 모드에서 디버그하면 스토리지 내용 및 실행 플로우 변경을 제한할 때 프로그램을 디버그할 수 있습니다. Debug Tool은 현재 사용자의 RACF® 권한, EQAOPTS 명령 또는 둘 다를 사용하여 브라우즈 모드에서 조작할지 결정합니다.

브라우즈 모드에서 디버그할 때 다음 조치를 수행할 수 없습니다.

QUERY BROWSE MODE 명령을 사용하여 브라우즈 모드가 활성 상태인지 판별할 수 있습니다.

브라우즈 모드 설치 및 제어 방법에 대한 정보는 Debug Tool Customization Guide를 참조하십시오.

전체 화면, 행 및 Batch 모드 디버깅 시 브라우즈 모드

전체 화면, 행 또는 Batch 모드에서 디버깅하는 경우, 브라우즈 모드가 활성화되고 다음 명령 중 하나를 입력하면 Debug Tool에 명령이 브라우저 모드에서 허용되지 않는다는 메시지가 표시됩니다.

스토리지, 레지스터 또는 유사한 데이터를 수정할 수 있는 expression 또는 condition을 가진 명령을 입력하거나 명령이 사용자 작성 함수를 호출하거나 실행 순서를 변경하는 경우, Debug Tool이 브라우즈 모드에 명령이 허용되지 않는다는 메시지를 표시합니다.

원격 디버그 모드에서 디버깅 시 브라우즈 모드

원격 디버거를 사용하고 브라우즈 모드가 활성 상태인 경우, 원격 디버거에서 다음 조치를 수행할 수 없습니다.

또한 원격 디버거에 다음 제한사항이 적용됩니다.

또한 원격 디버거에서 다음 Debug Console 명령을 입력할 수 없습니다.

원격 디버그 모드에서 디버그 시 이상 종료되고 브라우즈 모드가 활성 상태인 경우, 원격 디버거에서 연속 옵션이 제공되지 않습니다. 이상 종료 후 프로그램 실행을 계속할 수 없습니다.

브라우즈 모드 제어

RACF 액세스를 변경하고, EQAOPTS BROWSE 명령을 지정하거나 둘 다 수행하거나 또는 둘 다 수행하지 않음으로써 브라우즈 모드를 제어할 수 있습니다(활성화된 또는 비활성화됨). RACF 액세스를 통해 브라우즈 모드를 제어하려면 RACF 액세스를 다음 RACF 기능으로 변경하십시오.

EQAOPTS 명령을 통해 브라우즈 모드를 제어하려면, EQAOPTS BROWSE 명령에 ON 또는 OFF를 지정하십시오.

다음 표에서는 이러한 제어 메소드의 조합(RACF 액세스 사용 또는 EQAOPTS BROWSE 명령 사용)으로 브라우즈 모드를 활성화하거나 비활성화하는 방법을 보여줍니다. 이러한 제어 사용에 대한 지시사항은 Debug Tool Customization Guide를 참조하십시오.

표 10. RACF 액세스 및 EQAOPTS BROWSE 명령의 여러 조합으로 브라우즈 모드를 활성화하거나 비활성화하는 방법입니다.
RACF 액세스의 상태 EQAOPTS BROWSE 명령 설정
설정되지 않음(RACF 상태 사용) ON OFF
기능(액세스)이 정의되지 않음 정상 모드(브라우즈 모드가 활성 상태가 아님) 브라우즈 모드가 활성 상태임 정상 모드
ACCESS=NONE Debug Tool을 사용할 수 없음 Debug Tool을 사용할 수 없음 Debug Tool을 사용할 수 없음
ACCESS=READ 브라우즈 모드가 활성 상태임 브라우즈 모드가 활성 상태임 브라우즈 모드가 활성 상태임
ACCESS=UPDATE(그 이상) 정상 모드 브라우즈 모드가 활성 상태임 정상 모드

Debug Tool을 시작할 메소드 선택

표 11은 각 유형의 프로그램에 대해 Debug Tool을 시작하는 여러 가지 메소드가 있음을 나타냅니다. 이 주제에서는 적용 가능한 각 메소드가 각 프로그램 유형에 대해 작동하는 환경에 대해 설명합니다. 이를 참조하여 사용자의 사이트에 가장 적합한 메소드를 선택할 수 있습니다. 이 주제를 완료하면 사용자의 프로그램에 가장 적합한 메소드를 선택하게 됩니다.

표 11. TEST 런타임 옵션을 지정하는 메소드 및 이 메소드를 지원하는 서브시스템
EQADBCXT 사용자 EXIT 루틴 사용 EQADICXT 사용자 EXIT 루틴 사용 EQADDCXT 사용자 EXIT 루틴 사용 DFSBXITA 사용자 EXIT 사용 CADP 트랜잭션 사용 DTCN 트랜잭션 사용 DB2 카탈로그 사용 프로그램 내에서 CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 CEEUOPT 또는 CEEROPT를 통해 JCL에서 CEEOPTS DD 명령문 또는 TSO에서 CEEOPTS 할당 사용 프로그램 시작 시 EXEC문에서 매개변수 사용 프로그램 시작 시 RUN문에서 매개변수 사용 프로그램 시작 시 CALL문에서 매개변수 사용 EQASET 트랜잭션을 통해3 EQANMDBG 프로그램을 통해4
TSO X X X X X4
JES Batch X X X X X X4
UNIX System Services X X X
CICS X X X X1
DB2 X X1 X X
DB2 스토어드 프로시저(PROGRAM TYPE=MAIN) X X2 X X1,2
DB2 스토어드 프로시저(PROGRAM TYPE=SUB) X5 X X
IMS TM X X X X X3
IMS Batch X X X X X X4
IMS BTS X X X X X X X4
주:
  1. CEEROPT를 사용하여 TEST 런타임 옵션을 지정할 수 없습니다.
  2. DB2 카탈로그 메소드는 항상 CEEUOPT보다 우선적으로 사용됩니다.
  3. 이 메소드는 비Language Environment 어셈블러 프로그램 전용입니다.
  4. 이 메소드는 비Language Environment 프로그램 전용입니다.
  5. 이 메소드는 call_sub 기능으로 호출된 DB2 스토어드 프로시저 전용입니다.

각 서브시스템의 경우, 표 11에는 TEST 런타임 옵션을 지정하는 여러 다른 메소드에서 선택할 수 있다는 것이 표시됩니다. 다음 목록은 유연성 및 편리성의 순서로 상황에 대한 최적의 적용을 보여주는 메소드를 선택할 수 있도록 합니다.

TSO 프로그램의 경우
  1. Language Environment에서 시작되는 프로그램의 경우, 런타임 옵션을 지정하는 가장 융통성 있는 메소드는 TSO에서 CEEOPTS 할당을 사용하여 TEST 런타임 옵션을 지정하는 것입니다.
  2. 런타임 옵션이 많지 않거나 비Language Environment 프로그램에 대해 EQANMDBG를 호출해야 하는 경우 CALL문에서 매개변수를 사용하여 TEST 런타임 옵션을 지정합니다.
  3. CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 TEST 런타임 옵션을 지정하는 경우 옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
JES Batch 프로그램의 경우
  1. Language Environment에서 시작되는 프로그램의 경우 런타임 옵션을 지정하는 가장 융통성 있는 메소드는 JCL에서 CEEOPTS DD문을 사용하여 TEST 런타임 옵션을 지정하는 것입니다.
  2. 런타임 옵션이 많지 않거나 비Language Environment 프로그램에 대해 EQANMDBG를 호출해야 하는 경우 EXEC문 옵션에 대한 매개변수를 사용하여 TEST 런타임 옵션을 지정합니다.
  3. CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 TEST 런타임 옵션을 지정하는 경우 옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
UNIX System Services 프로그램의 경우
  1. _CEE_RUNOPTS 환경 변수를 설정하여 TEST 런타임 옵션을 지정합니다.
  2. CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 TEST 런타임 옵션을 지정하는 경우 옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
CICS 프로그램의 경우
  1. TEST 런타임 옵션을 포함하는 프로파일을 작성하고 저장하는 DTCN 또는 CADP 트랜잭션을 사용하여 TEST 런타임 옵션을 지정합니다.
  2. CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 TEST 런타임 옵션을 지정하는 경우 옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
DB2 프로그램의 경우
  1. 런타임 옵션을 지정하는 가장 융통성 있는 메소드는 JCL에서 CEEOPTS DD 명령문이나 TSO에서 CEEOPTS 할당을 사용하여 TEST 런타임 옵션을 지정하는 것입니다.
  2. 런타임 옵션이 많지 않거나 RUN문 옵션에 대한 매개변수를 사용하여 TEST 런타임 옵션을 지정합니다.
  3. CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 TEST 런타임 옵션을 지정하는 경우 옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
PROGRAM TYPE이 MAIN인 DB2 스토어드 프로시저의 경우
  1. Language Environment EQADDCXT EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다. 자체 하위 옵션 세트로 스토어드 프로시저를 실행할 수 있습니다. 다른 사용자도 독립 세트의 하위 옵션으로 스토어드 프로시저를 실행하거나 디버그할 수 있습니다. 그렇기 때문에 여러 사용자가 동시에 스토어드 프로시저를 실행하거나 디버그할 수 있습니다.
  2. 사용자 사이트에서 EXIT 루틴을 사용할 수 없는 경우 DB2 카탈로그를 사용하여 TEST 런타임 옵션을 지정하십시오. 그러나 특정 하위 옵션 세트는 하나만 지정할 수 있으므로 해당 스토어드 프로시저를 실행하거나 디버깅하는 모든 사용자는 동일한 하위 옵션 세트를 사용하게 됩니다.

두 메소드를 모두 구현하는 경우 Language Environment EXIT 루틴은 DB2 카탈로그보다 우선적으로 사용됩니다.

PROGRAM TYPE이 SUB인 DB2 스토어드 프로시저의 경우
IMS TM 프로그램의 경우
  1. EQADICXT 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다. 프로그램이 비Language Environment 어셈블러 프로그램인 경우 EQASET 트랜잭션을 통해 선택하십시오.
  2. 사용자 사이트에서 EQADICXT 사용자 EXIT 루틴을 사용할 수 없는 경우 DFSBXITA 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다.
  3. 사용자 사이트에서 EQADICXT 또는 DFSBXITA 사용자 EXIT 루틴을 사용할 수 없는 경우 CEEUOPT 또는 CEEROPT를 사용하여 TEST 런타임 옵션을 지정합니다.
  4. 이전 옵션 중에 사용자 사이트에서 사용 가능한 옵션이 없는 경우
    CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하도록 TEST 런타임 옵션을 지정합니다. 그러나 옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
IMS Batch 프로그램의 경우
  1. Language Environment에서 시작되는 프로그램의 경우 이 메소드가 가장 융통성 있는 메소드가 될 수 있기 때문에 JCL에서 CEEOPTS 할당을 사용하여 TEST 런타임 옵션을 지정합니다.
  2. EQADBCXT 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다. 프로그램이 비Language Environment 프로그램인 경우 EQANMDBG 프로그램을 통해 선택합니다.
  3. 사용자 사이트에서 EQADBCXT 사용자 EXIT 루틴을 사용할 수 없는 경우 DFSBXITA 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다. 그러나 TRANSACTION이 아니라 PROGRAM을 지정해야 합니다.
  4. 사용자 사이트에서 EQADBCXT 또는 DFSBXITA 사용자 EXIT 루틴을 사용할 수 없는 경우 CEEUOPT 또는 CEEROPT를 사용하여 TEST 런타임 옵션을 지정합니다.
  5. 이전 옵션 중에 사용자 사이트에서 사용 가능한 옵션이 없는 경우
    CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하도록 TEST 런타임 옵션을 지정합니다. 그러나 옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
IMS BTS 프로그램의 경우
  1. Language Environment에서 시작되는 프로그램의 경우 이 메소드가 가장 융통성 있는 메소드가 될 수 있기 때문에 JCL에서 CEEOPTS 할당을 사용하여 TEST 런타임 옵션을 지정합니다.
  2. EQADICXT 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다. 프로그램이 비Language Environment 프로그램인 경우
    EQANMDBG 프로그램을 통해 선택합니다.
  3. 사용자 사이트에서 EQADICXT 사용자 EXIT 루틴을 사용할 수 없는 경우 EQADBCXT 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다.
  4. 사용자 사이트에서 EQADBCXT 사용자 EXIT 루틴을 사용할 수 없는 경우 DFSBXITA 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다.
  5. 사용자 사이트에서 EQADICXT, EQADBCXT 또는 DFSBXITA 사용자 EXIT 루틴을 사용할 수 없는 경우 CEEUOPT 또는 CEEROPT를 사용하여 TEST 런타임 옵션을 지정합니다.
  6. 이전 옵션 중에 사용자 사이트에서 사용 가능한 옵션이 없는 경우
    CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하도록 TEST 런타임 옵션을 지정합니다. 그러나 옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.

Debug Tool을 시작하는 데 사용할 메소드를 식별한 후 디버그 세션 계획을 참조하여 완료해야 하는 다음 태스크를 판별하십시오.

이전 COBOL 프로그램 디버그 방법 선택

OS/VS COBOL 컴파일러로 컴파일한 프로그램은 다음 중 하나를 수행하여 디버깅할 수 있습니다.

OS/VS COBOL 프로그램을 1985 COBOL 표준으로 변환하려면 다음 단계를 수행하십시오.

  1. Load Module Analyzer를 사용하여 로드 모듈 내 OS/VS COBOL 프로그램을 식별하십시오. Load Module Analyzer 사용에 관한 지시사항은 부록G. Debug Tool Load Module Analyzer를 참조하십시오.
  2. COBOL 및 CCCA(CICS Command Level Conversion Aid)를 사용하여 OS/VS COBOL 소스를 변환하십시오. CCCA 사용에 대한 지시사항은 COBOL 및 CICS Command Level Conversion Aid for OS/390 & MVS & VM 사용자 안내서를 참조하십시오.
  3. Enterprise COBOL for z/OS 및 OS/390 또는 COBOL for OS/390 & VM을 사용하여 새 소스를 컴파일하십시오.

    Debug Tool Utilities의 변환 및 컴파일 옵션을 사용하여 2단계와 3단계를 결합할 수 있습니다.

  4. Debug Tool을 사용하여 오브젝트 모듈을 디버깅하십시오.

프로그램을 변환 및 디버깅한 후에 다음 중 하나의 옵션을 수행할 수 있습니다.

CCCA는 이전에 CMPR2 컴파일러 옵션으로 컴파일된 VS COBOL II, COBOL for MVS & VM 및 COBOL for OS/390 & VM 프로그램 등을 포함하여 모든 레벨의 COBOL 소스 프로그램을 입력으로 사용할 수 있습니다.


1.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
2.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
3.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
4.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.