디버그 세션 계획
디버깅을 시작하기 전에 다음을 선택하는 데 도움이 되는 계획을 작성하십시오.
- 프로그램을 컴파일 또는 어셈블할 때 사용해야 하는 컴파일러 또는
어셈블러 옵션 및 하위 옵션
- Debug Tool에서 대화식으로 작업하는 데 사용할 디버깅 모드(Batch, 전체 화면, 전용 터미널을 통한 전체 화면 모드 또는 원격 디버그 모드)
- Debug Tool을 시작하는 데 사용할 수 있는 메소드
- 이전 COBOL 프로그램이 있는 경우, COBOL and CICS Command Level Conversion Aid for OS/390 & MVS & VM: User's Guide에 나열된 디버그 방법
계획을 보다 쉽게 작성하려면 다음 태스크를 수행하십시오.
- 표 5에서 프로그램에 사용할
컴파일러 옵션 및 하위 옵션을 기록하십시오.
이 표에는 일반 컴파일러 세트의 가장 작은 프로그램 크기와 최고의 디버깅 기능을
제공할 수 있는 컴파일러 옵션이 있습니다. 다음 정보에 대해서는 디버깅을 위한 컴파일러 옵션 선택을 참조하십시오.
- 컴파일러 옵션 또는 하위 옵션에 필요한 전제조건
- 사이트에 컴파일러 옵션 및 하위 옵션 작업을 작성하려면 수행해야 하는 추가 태스크
- 컴파일러 옵션 및 하위 옵션이 프로그램 크기와 Debug Tool 기능에 미치는 영향에 대한 정보
- 기타 Problem Determination Tools를 사용하는 경우, 기타 Problem
Determination Tools에서 사용할 수 있는 출력을 작성하기 위해 컴파일러
옵션을 선택하는 방법에 대한 정보
-
사용할 디버깅 모드를 기록하려면 표 3을
사용하십시오. 디버깅 모드가 작동하도록 하려면 수행해야 하는 태스크 및 전제조건에 대해 학습하려면
디버깅 모드 선택을 참조하십시오.
- TEST 런타임 옵션을 지정하는 데 사용할 메소드를
기록하려면 표 11을 참조하십시오.
프로그램에 가장 잘 맞는 메소드를 판별하려면 Debug Tool을 시작할 메소드 선택을 참조하십시오.
- COBOL and CICS Command Level Conversion Aid for OS/390 & MVS & VM: User's Guide에 나열된 이전 COBOL 프로그램을 디버깅하려는 경우 다음 옵션 중에서 결정해야 합니다.
- 이전 소스의 옵션을 그대로 두면 비Language Environment COBOL 프로그램으로 디버그해야 할 수 있습니다.
- 1985 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) 및 LISTVIEW 및 GONUMBER(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
컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.
-
사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.
- 시나리오 A: Enterprise COBOL for z/OS 버전 4.1 이상으로 컴파일하는 경우, TEST(NOHOOK,SEPARATE)를 사용하여 대부분의 Debug Tool 기능 및 작은 크기의 프로그램을 가져올 수 있습니다. Dynamic Debug 기능이 설치되어 있어야 하며 승인된
디버그 기능이 설치되어 있어야 합니다.
OPT(STD) 또는 OPT(FULL) 컴파일러 옵션으로 프로그램을 컴파일하려면 우선
TEST 컴파일러 옵션에 EJPD 하위 옵션을 지정하여 다음 태스크를 사용할 수 있어야 합니다.
- GOTO 또는 JUMPTO 명령 사용
- 결과를 예상할 수 있는 변수 수정
EJPD 하위 옵션을 사용하는 경우 최적화가 약간 손실될 수 있습니다.
기타 Problem Determination Tools를 사용하는 경우,
Enterprise COBOL for z/OS 버전
4 프로그램의 정보를 검토하여 모든
Problem Determination Tools에 필요한 파일을 작성하기 위한
모든 컴파일러 옵션을 지정하십시오.
- 시나리오 B: 다음 컴파일러 중 하나로 컴파일하는 경우, 대부분의 Debug Tool 기능을 가져오고 프로그램 크기를 작게 하려면
TEST(NONE,SYM,SEPARATE)를 사용하십시오.
- Enterprise COBOL for z/OS 및 OS/390, 버전 3 릴리스 2 이상
- Enterprise COBOL for z/OS 및 OS/390, 버전 3 릴리스 1(APAR PQ63235가 설치됨)
- COBOL for OS/390 & VM, 버전 2 릴리스 2
- COBOL for OS/390 & VM, 버전 2 릴리스 1(APAR PQ63234가 설치됨)
Dynamic Debug 기능이 설치되어 있어야 하며 승인된
디버그 기능이 설치되어 있어야 합니다.
최적화되고 최상의 Debug Tool 기능을 얻을 수 있도록 프로그램을 컴파일하려면
다음 컴파일러 옵션 조합 중 하나로 컴파일해야 합니다.
- OPT(STD) TEST(NONE,SYM)
- OPT(STD) TEST(NONE,SYM,SEPARATE)
- OPT(FULL) TEST(NONE,SYM)
- OPT(FULL) TEST(NONE,SYM,SEPARATE)
이러한 프로그램 유형의 경우, 변수는 수정할 수 있지만 결과를 예측할 수 없습니다.
기타
Problem Determination Tools를 사용하는 경우, Enterprise COBOL for z/OS 버전
3과 OS/390 및 VM용 COBOL
프로그램의
정보를 검토하여 모든 Problem Determination Tools에 필요한
파일을 작성하기 위한 모든 컴파일러 옵션을
지정하십시오.
- 시나리오 C: 모든 Debug Tool 기능을 가져오지만 프로그램 크기가 더 커지고 별도의 디버그 파일의
디버그 정보가 필요하지 않은 경우에는 지정된 컴파일러에 대해 다음 컴파일러 옵션 중 하나로 컴파일하십시오.
- Enterprise COBOL for z/OS, 버전 4.1의 경우 TEST(HOOK,NOSEPARATE)
- 다음 컴파일러의 경우 TEST(ALL,SYM,NOSEPARATE)
- Enterprise COBOL for z/OS 및 OS/390, 버전 3 릴리스 2 이상
- Enterprise COBOL for z/OS 및 OS/390, 버전 3 릴리스 1(APAR PQ63235가 설치됨)
- COBOL for OS/390 & VM, 버전 2 릴리스 2
- COBOL for OS/390 & VM, 버전 2 릴리스 1(APAR PQ40298이 설치됨)
기타 Problem Determination Tools를 사용하는 경우, Enterprise COBOL for z/OS 버전
4 프로그램 또는
Enterprise COBOL for z/OS 버전
3과 OS/390 및 VM용 COBOL
프로그램의 정보를 검토하여 모든 Problem Determination Tools에
필요한 파일을 작성하기 위한 모든 컴파일러 옵션을 지정하십시오.
- 시나리오 D: COBOL for OS/390 & VM, 버전 2 릴리스 1 이전을 사용하여
모든 Debug Tool 기능을 가져오려면 TEST(ALL,SYM)를 사용하십시오.
기타 Problem
Determination Tools를 사용하는 경우, 다음 목록에서 사용하는
컴파일러에 해당하는 주제를 검토하여 모든
Problem Determination Tools에 필요한 파일을 작성하기 위한
모든 컴파일러 옵션을 지정하십시오.
- 시나리오 E: NOTEST 컴파일러 옵션으로 컴파일하면 일부 Debug Tool 기능을 가져올 수 있습니다.
이 경우 프로그램을 디스어셈블리 모드에서 디버그해야 합니다.
기타 Problem
Determination Tools를 사용하는 경우, 다음 목록에서 사용하는
컴파일러에 해당하는 주제를 검토하여 모든
Problem Determination Tools에 필요한 파일을 작성하기 위한
모든 컴파일러 옵션을 지정하십시오.
- IMS™를 사용하는 COBOL 프로그램의 경우 IMS RESLIB 라이브러리로부터 IMS 인터페이스 모듈 DFSLI000을 포함하십시오.
- 시나리오 A, B 및 E의 경우 다음 단계를 수행하십시오.
- 읽기 전용 스토리지에 있는 프로그램에 후크를 배치하기 위해 Dynamic Debug 기능을 사용하는 경우에는 승인된
디버그 기능이 설치되어 있고 이를 사용할 권한이 있는지 시스템 관리자에게 확인하십시오.
- Dynamic Debug 기능이 시스템에 설치되어 있는지 확인하십시오.
- Debug Tool을 시작한 후에는 QUERY DYNDEBUG 명령을 입력하여 Dynamic Debug 기능을 비활성화하지 않았는지 확인하십시오.
- 별도의 디버그 파일이 임시 파일이 아니고 디버그 세션에서 사용할 수 있는지 확인하십시오. 목록은 저장하지 않아도 됩니다.
- 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.
컴파일러 옵션 및 하위 옵션을 선택한 후 디버그 세션 계획을 참조하여
완료해야 하는 다음 태스크를 판별하십시오.
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- Enterprise COBOL for z/OS Programming Guide의 TEST 컴파일러 옵션에 대한 설명
다음 표는 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 컴파일러 하위 옵션 조합을
선택하는 데 사용됩니다.
-
사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.
- 시나리오 A: Enterprise PL/I for z/OS 버전 3.8 이상을
사용하는 경우, 대부분의 Debug Tool 기능을 가져오고 프로그램 크기를
작게 하려면
TEST(ALL,NOHOOK,SYM,SEPARATE) 및 LISTVIEW(SOURCE)
컴파일러 옵션을 사용하십시오. 사이트에서 Dynamic Debug 기능을 설치했는지 확인하고, 보호된 스토리지로 로드되는
프로그램을 디버그해야 하는 경우 승인된 디버그 기능을 설치했는지
확인하십시오.
다음 옵션을 고려하십시오.
- Enterprise PL/I for z/OS 버전 4.1 이상을 사용 중인 경우, 프로그램의 크기를 작게 만드는 GONUMBER(SEPARATE) 컴파일러 옵션을 지정할 수 있습니다. Language Environment, 버전 1.10에서 버전 1.12의 APAR PM19445에 PTF를 설치해야 합니다.
- Enterprise PL/I for z/OS Programming Guide의
설명대로 LISTVIEW 하위 옵션(SOURCE, AFTERALL, AFTERCICS,
AFTERMACRO 또는 AFTERSQL) 중 하나를 지정하여
지정된 프리프로세서 다음에 원래 소스 또는 소스를 표시할 수
있습니다.
- 전체 화면 모드에서 디버그하고 있고
실행 가능한 코드가 있는 INCLUDE 파일로 프로그램을 디버그하려는 경우
LISTVIEW(AFTERMACRO) 컴파일러 옵션을 지정하고,
MACRO 컴파일러 옵션을 지정하지 않는 경우
PP(MACRO(INCONLY)) 컴파일러 옵션을 지정하십시오.
- 원격 디버그 모드에서 디버그하고 있고 INCLUDE 파일의 변수를
자동 모니터하려는 경우 LISTVIEW(AFTERMACRO) 컴파일러
옵션을 지정하고, MACRO 컴파일러 옵션을 지정하지 않는 경우
PP(MACRO(INCONLY)) 컴파일러 옵션을 지정하십시오.
기타 Problem Determination Tools를 사용하는 경우, Enterprise PL/I 버전 3.5 및 버전 3.6 프로그램을
참조하여 모든 Problem Determination Tools에 필요한
파일을 작성하기 위한 모든 컴파일러 옵션을
지정하십시오.
- 시나리오 B: Enterprise PL/I for z/OS 버전 3.7을
사용하는 경우 대부분의 Debug Tool 기능을 가져오고 프로그램 크기를 작게 하려면
TEST(ALL,NOHOOK,SYM,SEPARATE,SOURCE)를 사용하십시오.
사이트에서 Dynamic Debug 기능을 설치했는지 확인하고, 보호된 스토리지로 로드되는
프로그램을 디버그해야 하는 경우 승인된 디버그 기능을 설치했는지
확인하십시오.
다음 옵션을 고려하십시오.
- Enterprise PL/I for z/OS Programming Guide의 설명에 따라
SOURCE를 AFTERALL, AFTERCICS, AFTERMACRO 또는 AFTERSQL로 대체하십시오.
- 전체 화면 모드에서 디버그하고 있고 실행 가능한
코드가 있는 INCLUDE 파일로 프로그램을 디버그하려는 경우
TEST(ALL,NOHOOK,SYM,SEPARATE,AFTERMACRO) 컴파일러 옵션을
지정하고, MACRO 컴파일러 옵션을 지정하지 않는 경우
PP(MACRO(INCONLY)) 컴파일러 옵션을 지정하십시오.
- 원격 디버그 모드에서 디버그하고 있고 INCLUDE 파일의 변수를
자동 모니터하려는 경우 TEST(ALL,NOHOOK,SYM,SEPARATE,AFTERMACRO)
컴파일러 옵션을 지정하고, MACRO 컴파일러 옵션을 지정하지 않는 경우
PP(MACRO(INCONLY)) 컴파일러 옵션을 지정하십시오.
기타 Problem Determination Tools를 사용하는 경우, Enterprise PL/I 버전 3.5 및 버전 3.6 프로그램을
참조하여 모든 Problem Determination Tools에 필요한
파일을 작성하기 위한 모든 컴파일러 옵션을
지정하십시오.
- 시나리오 C: Enterprise PL/I for z/OS 버전 3.5 또는 3.6을
사용하는 경우 대부분의 Debug Tool 기능을 가져오고 프로그램 크기를 작게 하려면
TEST(ALL,NOHOOK,SYM,SEPARATE)를 사용하십시오. Dynamic Debug 기능이 설치되어 있어야 하며 승인된 디버그 기능을 설치해야 합니다.
기타 Problem Determination Tools를 사용하는 경우, Enterprise PL/I 버전 3.5 및 버전 3.6 프로그램을
참조하여 모든 Problem Determination Tools에 필요한
파일을 작성하기 위한 모든 컴파일러 옵션을
지정하십시오.
- 시나리오 D: Enterprise PL/I for z/OS 버전 3.4를 사용 중이고 컴파일된 후크 없이 프로그램을 디버그하려는 경우, TEST(ALL,NOHOOK,SYM)를 사용하십시오. Dynamic Debug 기능이 설치되어 있어야 하며 승인된 디버그 기능을 설치해야 합니다.
기타 Problem Determination Tools를 사용하는 경우, Enterprise PL/I 버전 3.4 이전 프로그램을
참조하여 모든 Problem Determination Tools에 필요한
파일을 작성하기 위한 모든 컴파일러 옵션을
지정하십시오.
- 시나리오 E: Enterprise PL/I for z/OS 버전 3.3 이전을 사용하고
모든 Debug Tool 기능을 가져오려면 TEST(ALL,SYM)를 사용하십시오.
기타 Problem Determination Tools를 사용하는 경우, Enterprise PL/I 버전 3.4 이전 프로그램
또는 MVS 및 VM용 PL/I와 OS PL/I 프로그램을 참조하여 모든 Problem Determination
Tools에 필요한 파일을 작성하기 위한 모든 컴파일러 옵션을
지정하십시오.
- 시나리오 F: NOTEST 컴파일러 옵션으로 컴파일하여 Debug Tool
기능 일부를 가져올 수 있습니다.
이 경우 프로그램을 디스어셈블리 모드에서 디버그해야 합니다.
기타 Problem
Determination Tools를 사용하는 경우, 다음 목록에서 사용하는
컴파일러에 해당하는 주제를 검토하여 모든
Problem Determination Tools에 필요한 파일을 작성하기 위한
모든 컴파일러 옵션을 지정하십시오.
- 시나리오 A, B, C, E 및 F의 경우, 다음 단계를 수행하십시오.
- 읽기 전용 스토리지에 있는 프로그램에 후크를 배치하기 위해 Dynamic Debug 기능을 사용하는 경우에는 승인된
디버그 기능이 설치되어 있고 이를 사용할 권한이 있는지 시스템 관리자에게 확인하십시오.
- Dynamic Debug 기능이 시스템에 설치되어 있는지 확인하십시오.
- Debug Tool을 시작한 후에는 QUERY DYNDEBUG 명령을 입력하여 Dynamic Debug 기능을 비활성화하지 않았는지 확인하십시오.
- 별도의 디버그 파일이 임시 파일이 아니고 디버그 세션에서 사용할 수 있는지 확인하십시오.
- 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.
컴파일러 옵션 및 하위 옵션을 선택한 후 디버그 세션 계획을 참조하여
완료해야 하는 다음 태스크를 판별하십시오.
표 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를 사용하여 명령문 및 레이블에 분기할 수 있습니다.
|
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- Enterprise PL/I for z/OS Programming Guide의 TEST 컴파일러 옵션에 대한 설명.
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++ 프로그램의 경우 HOOK(NOBLOCK) 컴파일러 옵션을 지정할 수 있습니다. 이는 디버그 성능을 개선해줍니다.
- C 및 C++ 프로그램의 경우 DEBUG 컴파일러 옵션의 FORMAT(DWARF) 하위 옵션을 지정하는 경우에는 로드 모듈이 더 작습니다. 그러나 소스 파일에 추가로 .dbg 파일을 저장해야 합니다. Debug Tool은 프로그램을 디버그하기 위해서는 이러한 파일 둘 모두 필요합니다.
- z/OS XL
C/C++, 버전 1.10 이상으로 컴파일된 C 및 C++ 프로그램의 경우 DEBUG 컴파일러 옵션의 FORMAT(DWARF) 하위 옵션을 지정하는 경우에는 로드 모듈이 더 작고 캡처된 소스로 .mdbg 파일을 작성할 수 있습니다. Debug Tool은 프로그램을 디버그하려면 .mdbg 파일만 필요합니다.
C 프로그램에 대해 DEBUG 컴파일러 하위 옵션 선택
이 주제에서는 사용 가능한 디버깅 시나리오 및 올바른 DEBUG 컴파일러 하위
옵션을 선택하여 특정 디버깅 시나리오를 작성하는 방법에 대해 설명합니다.
C 컴파일러에서는 다음 액션을 제어할 수 있도록 DEBUG 컴파일러 옵션 및 해당 하위 옵션을 제공합니다.
- 후크 및 기호 테이블 생성 및 배치
- 디버그 정보를 오브젝트 파일 또는 별도의 디버그 파일에 배치
Debug Tool은 최적화된 C 프로그램 디버깅을 지원하지 않습니다.
NOOPTIMIZE 또는 OPTIMIZE(0) 이외의 OPTIMIZE 컴파일러 옵션을 사용하지 마십시오.
다음 지시사항은 프로그램을 디버그해야 하는 기능을 제공하는 DEBUG
컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.
-
사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.
- 시나리오 A: 대부분의 Debug Tool 기능을 가져오고 프로그램 크기를 줄이고 성능을 향상시키려면 다음 조합 중 하나를 사용하십시오.
DEBUG(FORMAT(DWARF),HOOK(LINE,NOBLOCK,PATH),SYMBOL,FILE(file_location))
컴파일러 옵션은 .dbg 파일만 사용하든지 .mdbg 파일도 사용하든지 동일합니다.
- 시나리오 B: 모든 Debug Tool 기능을 가져오지만 프로그램 크기가 더 커지고
독립 파일의 디버그 정보가 필요하지 않은 경우에는 다음 조합을 사용하십시오.
DEBUG(FORMAT(ISD),HOOK(LINE,NOBLOCK,PATH),SYMBOL)
- 시나리오 C: NODEBUG 컴파일러 옵션으로 컴파일하여 Debug Tool 기능 일부를 가져올 수도 있습니다.
이 경우 프로그램을 디스어셈블리 모드에서 디버그해야 합니다.
모든 시나리오에서 기타 Problem Determination Tools를 사용하는 경우,
z/OS XL C 및 C++ 프로그램을 참조하여 모든 Problem Determination Tools에
필요한 파일을 작성하기 위한 모든 컴파일러 옵션을
지정하십시오.
- 선택한 시나리오의 경우, 다음 자원이 있는지 확인하십시오.
- 시나리오 A의 경우, 다음 태스크를 수행하십시오.
- .mdbg 파일을 작성하는 경우에는 다음 태스크를 수행하십시오.
- 실행 중인 제품에 다음 PTF를 적용했는지 확인하십시오.
- z/OS XL C/C++, 버전
1.10의 경우: UK50219, UK50245, UK50246, UK50645
- z/OS XL C/C++, 버전
1.11의 경우: UK51669, UK51670, UK51671
- z/OS Run-Time Library
Extension, 버전 1.10, (UTIL, CDA, DBGLD)의 경우: UK50221, UK50652, UK50220,
UK50252
- z/OS Language Environment, 버전
1.10의 경우: UK51883
- z/OS Run-Time Library
Extension, 버전 1.10, (UTIL, CDA, DBGLD)의 경우: UK51674, UK51673, UK52065,
UK51803
- EQAOPTS MDBG 명령에 YES를 지정하십시오(Debug Tool이 .mdbg 파일에서 .dbg 파일을 검색해야 함)1.
- .dbg 파일이 임시 파일이 아닌지 확인하십시오.
- dbgld 명령에 -c 옵션을 사용하거나 CDADBGLD 유틸리티에 CAPSRC 옵션을 사용하여 캡처된 소스로 .mdbg 파일을 작성하십시오.
- .mdbg 파일이 임시 파일이 아닌지 확인하십시오.
- .dbg 파일만을 사용하는 경우에는 .dbg 파일이 임시 파일이 아닌지 확인하고 EQAOPTS MDBG 명령에 NO를 지정하십시오2.
- 시나리오 C의 경우 다음 단계를 수행하십시오.
- z/OS 버전 1.6 또는 버전 1.7에서
실행 중인 경우 APAR PK12833의 Language Environment PTF가 설치되어 있는지 확인하십시오.
- 읽기 전용 스토리지에 있는 프로그램에 후크를 배치하기 위해 Dynamic Debug 기능을 사용하는 경우에는 승인된
디버그 기능이 설치되어 있고 이를 사용할 권한이 있는지 시스템 관리자에게 확인하십시오.
- Dynamic Debug 기능이 시스템에 설치되어 있는지 확인하십시오.
- Debug Tool을 시작한 후에는 QUERY DYNDEBUG 명령을 입력하여 Dynamic Debug 기능을 비활성화하지 않았는지 확인하십시오.
- 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- z/OS XL C/C++ User’s Guide의 DEBUG 컴파일러 옵션에 대한 설명
C 프로그램에 대해 TEST 또는 NOTEST 컴파일러 하위 옵션 선택
이 주제에서는 사용 가능한 디버깅 시나리오 및 올바른 TEST 컴파일러 하위 옵션을
선택하여 특정 디버깅 시나리오를 작성하는 방법에 대해 설명합니다.
C 컴파일러는 후크 및 기호 테이블 생성 및 배치를 제어할 수 있도록 TEST
컴파일러 옵션과 자체의 하위 옵션을 제공합니다.
Debug Tool은 최적화된 C 프로그램 디버깅을 지원하지 않습니다.
NOOPTIMIZE가 아닌 컴파일러 옵션을 사용하지 마십시오.
다음 지시사항은 프로그램을 디버그해야 하는 기능을 제공하는 TEST
컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.
-
사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.
- 시나리오 A: 모든 Debug Tool 기능은 가져오지만 프로그램 크기가 더 큰
경우에는(DEBUG(FORMAT(DWARF)) 사용에 비해), TEST(ALL,HOOK,SYMBOL)를 사용하십시오.
- 시나리오 B: NOTEST 컴파일러 옵션으로 컴파일하여 Debug Tool 기능 일부를 가져올 수도
있습니다.
이 경우 프로그램을 디스어셈블리 모드에서 디버그해야 합니다.
- 시나리오 C: ALCS에서 실행 중인 프로그램을 디버그하는 경우,
TEST 컴파일러 옵션의 HOOK 하위 옵션으로
컴파일해야 합니다.
모든 시나리오에서 기타 Problem Determination Tools를 사용하는 경우,
z/OS XL C 및 C++ 프로그램을 참조하여 모든 Problem Determination Tools에
필요한 파일을 작성하기 위한 모든 컴파일러 옵션을
지정하십시오.
- 시나리오 B의 경우 다음 단계를 수행하십시오.
- z/OS 버전 1.6 또는 버전 1.7에서
실행 중인 경우 APAR PK12833의 Language Environment PTF가 설치되어 있는지 확인하십시오.
- 읽기 전용 스토리지에 있는 프로그램에 후크를 배치하기 위해 Dynamic Debug 기능을 사용하는 경우에는 승인된
디버그 기능이 설치되어 있고 이를 사용할 권한이 있는지 시스템 관리자에게 확인하십시오.
- Dynamic Debug 기능이 시스템에 설치되어 있는지 확인하십시오.
- Debug Tool을 시작한 후에는 SET DYNDEBUG OFF 명령을 입력하여 Dynamic Debug 기능을 비활성화하지
않았는지 확인하십시오.
- 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.
표 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와 같은 명령을 사용하여 다른 레이블(단락
또는 섹션명)로 분기할 수 없습니다.
|
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- z/OS XL C/C++ User’s Guide의 TEST 컴파일러 옵션에 대한 설명
#pragma문을 사용한 C 프로그램 컴파일
TEST/NOTEST 컴파일러 옵션은 프로그램을 컴파일할 때 또는 프로그램에서 직접 #pragma를 사용하여 지정할 수 있습니다.
#pragma는 프로그램에서 실행 코드 앞에 나타나야 합니다.
다음 예제에서는 기호 테이블 정보, 중첩된 블록에 대한 기호 정보 및 행 번호에 있는 후크를 생성합니다.
#pragma options (test(SYM,BLOCK,LINE))
이것은 TEST(SYM,BLOCK,LINE,PATH)와 같습니다.
#pragma를 사용하여 런타임 옵션을 지정할 수도 있습니다.
함수 및 중첩 블록 내 후크의 배치를 위한 규칙
다음 규칙이 함수 및 중첩 블록의 진입 및 종료에 대한 후크의 배치에 적용됩니다.
- 함수 입력에 대한 후크는 해당 함수에 대한 초기화 또는 명령문 앞에 배치됩니다.
- 함수 종료에 대한 후크는 실제 함수 반환 바로 앞에 배치됩니다.
- 중첩 블록 입력에 대한 후크는 블록에 대한 명령문 또는 초기화 앞에 배치됩니다.
- 중첩 블록 종료에 대한 후크는 블록에 대한 모든 명령문 다음에 배치됩니다.
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- z/OS XL C/C++ User’s Guide
명령문 및 경로 지점 내 후크의 배치를 위한 규칙
다음 규칙이 명령문 및 경로 지점에 대한 후크의 배치에 적용됩니다.
- 레이블 후크는 코드 및 다른 모든 명령문 또는 명령문에 대한 경로 지점 후크 앞에 배치됩니다.
- 명령문 후크는 코드 앞과 명령문에 대한 경로 지점 후크 앞에 배치됩니다.
- 명령문에 대한 경로 지점 후크는 해당 명령문에 대한 코드 앞에 배치됩니다.
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- z/OS XL C/C++ User’s Guide
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++ 프로그램의 경우 HOOK(NOBLOCK) 컴파일러 옵션을 지정할 수 있습니다. 이는 디버그 성능을 개선해줍니다.
- C 및 C++ 프로그램의 경우 DEBUG 컴파일러 옵션의 FORMAT(DWARF) 하위 옵션을 지정하는 경우에는 로드 모듈이 더 작습니다. 그러나 소스 파일에 추가로 .dbg 파일을 저장해야 합니다. Debug Tool은 프로그램을 디버그하기 위해서는 이러한 파일 둘 모두 필요합니다.
- z/OS XL
C/C++, 버전 1.10 이상으로 컴파일된 C 및 C++ 프로그램의 경우 DEBUG 컴파일러 옵션의 FORMAT(DWARF) 하위 옵션을 지정하는 경우에는 로드 모듈이 더 작고 캡처된 소스로 .mdbg 파일을 작성할 수 있습니다. Debug Tool은 프로그램을 디버그하려면 .mdbg 파일만 필요합니다.
C++ 프로그램에 대해 DEBUG 컴파일러 하위 옵션 선택
이 주제에서는 사용 가능한 디버깅 시나리오 및 올바른 DEBUG 컴파일러 하위
옵션을 선택하여 특정 디버깅 시나리오를 작성하는 방법에 대해 설명합니다.
C++ 컴파일러에서는 다음 액션을 제어할 수 있도록 DEBUG 컴파일러 옵션
및 해당 하위 옵션을 제공합니다.
- 후크 및 기호 테이블 생성 및 배치
- 디버그 정보를 오브젝트 파일 또는 별도의 디버그 파일에 배치
Debug Tool은 최적화된 C 프로그램 디버깅을 지원하지 않습니다. NOOPTIMIZE 또는 OPTIMIZE(0) 이외의 OPTIMIZE 컴파일러 옵션을 사용하지 마십시오.
다음 지시사항은 프로그램을 디버그해야 하는 기능을 제공하는 DEBUG
컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.
-
사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.
- 시나리오 A: 대부분의 Debug Tool 기능을 가져오고 프로그램 크기를 줄이고 성능을 향상시키려면 다음 조합 중 하나를 사용하십시오.
DEBUG(FORMAT(DWARF),HOOK(LINE,NOBLOCK,PATH),SYMBOL,FILE(file_location))
컴파일러 옵션은 .dbg 파일만 사용하든지 .mdbg 파일도 사용하든지 동일합니다.
- 시나리오 B: 모든 Debug Tool 기능을 가져오지만 프로그램 크기가 더 크고
독립 파일로 디버그 정보를 작성하지 않는 경우에는 다음 조합을 사용하십시오.
DEBUG(FORMAT(ISD),HOOK(LINE,NOBLOCK,PATH),SYMBOL)
- 시나리오 C: NODEBUG 컴파일러 옵션으로 컴파일하여 Debug Tool 기능 일부를 가져올 수도 있습니다.
이 경우 프로그램을 디스어셈블리 모드에서 디버그해야 합니다.
모든 시나리오에서 기타 Problem Determination Tools를 사용하는 경우,
z/OS XL C 및 C++ 프로그램을 참조하여 모든 Problem Determination Tools에
필요한 파일을 작성하기 위한 모든 컴파일러 옵션을
지정하십시오.
- 선택한 시나리오의 경우, 다음 자원이 있는지 확인하십시오.
- 시나리오 A의 경우, 다음 태스크를 수행하십시오.
- .mdbg 파일을 작성하는 경우에는 다음 태스크를 수행하십시오.
- 실행 중인 제품에 다음 PTF를 적용했는지 확인하십시오.
- z/OS XL C/C++, 버전
1.10의 경우: UK50219, UK50245, UK50246, UK50645
- z/OS XL C/C++, 버전
1.11의 경우: UK51669, UK51670, UK51671
- z/OS Run-Time Library
Extension, 버전 1.10, (UTIL, CDA, DBGLD)의 경우: UK50221, UK50652, UK50220,
UK50252
- z/OS Language Environment, 버전
1.10의 경우: UK51883
- z/OS Run-Time Library
Extension, 버전 1.10, (UTIL, CDA, DBGLD)의 경우: UK51674, UK51673, UK52065,
UK51803
- EQAOPTS MDBG 명령에 YES를 지정하십시오(Debug Tool이 .mdbg 파일에서 .dbg 파일을 검색해야 함)3.
- .dbg 파일이 임시 파일이 아닌지 확인하십시오.
- dbgld 명령에 -c 옵션을 사용하거나 CDADBGLD 유틸리티에 CAPSRC 옵션을 사용하여 캡처된 소스로 .mdbg 파일을 작성하십시오.
- .mdbg 파일이 임시 파일이 아닌지 확인하십시오.
- .dbg 파일만을 사용하는 경우에는 .dbg 파일이 임시 파일이 아닌지 확인하고 EQAOPTS MDBG 명령에 NO를 지정하십시오4.
- 시나리오 C의 경우 다음 단계를 수행하십시오.
- z/OS 버전 1.6 또는 버전 1.7에서 실행 중인 경우, APAR PK12833의 Language Environment PTF가 설치되었는지 확인하십시오.
- 읽기 전용 스토리지에 있는 프로그램에 후크를 배치하기 위해 Dynamic Debug 기능을 사용하는 경우에는 승인된 디버그 기능이 설치되어 있고 이를 사용할 권한이 있는지 시스템 관리자에게 확인하십시오.
- Dynamic Debug 기능이 시스템에 설치되어 있는지 확인하십시오.
- Debug Tool을 시작한 후에는 QUERY DYNDEBUG 명령을 입력하여 Dynamic Debug 기능을 비활성화하지 않았는지 확인하십시오.
- 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.
컴파일러 옵션 및 하위 옵션을 선택한 후 디버그 세션 계획을 참조하여
완료해야 하는 다음 태스크를 판별하십시오.
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- z/OS XL C/C++ User’s Guide의 DEBUG 컴파일러 옵션에 대한 설명
C++ 프로그램에 대해 TEST 또는 NOTEST 컴파일러 옵션 선택
이 주제에서는 사용 가능한 디버깅 시나리오 및 올바른 TEST 컴파일러 하위 옵션을
선택하여 특정 디버깅 시나리오를 작성하는 방법에 대해 설명합니다.
C++ 컴파일러는 후크 및 기호 테이블 생성 및 배치를 제어할 수 있도록 TEST 컴파일러 옵션과
자체의 하위 옵션을 제공합니다.
Debug Tool은 최적화된 C++ 프로그램 디버깅을 지원하지 않습니다. NOOPTIMIZE가 아닌 컴파일러 옵션을 사용하지 마십시오.
다음 지시사항은 프로그램을 디버그해야 하는 기능을 제공하는 TEST
컴파일러 하위 옵션 조합을 선택하는 데 사용됩니다.
-
사이트 자원을 고려하여 다음 목록에서 디버깅 시나리오를 선택하십시오.
- 시나리오 A: 모든 Debug Tool 기능을 가져오지만 프로그램 크기가 더 큰 경우에는(DEBUG(FORMAT(DWARF) 사용에
비해)), TEST를 사용하십시오.
- 시나리오 B NOTEST 컴파일러 옵션으로 컴파일하여 Debug Tool 기능 일부를 가져올 수도 있습니다.
이 경우 프로그램을 디스어셈블리 모드에서 디버그해야 합니다.
- 시나리오 C: ALCS에서 실행 중인 프로그램을 디버그하는 경우,
TEST 컴파일러 옵션의 HOOK 하위 옵션으로
컴파일해야 합니다.
모든 시나리오에서 기타 Problem Determination Tools를 사용하는 경우,
z/OS XL C 및 C++ 프로그램을 참조하여 모든 Problem Determination Tools에
필요한 파일을 작성하기 위한 모든 컴파일러 옵션을
지정하십시오.
- 다음 태스크 중 수행해야 하는 태스크가 있는지 확인하십시오.
컴파일러 옵션 및 하위 옵션을 선택한 후 디버그 세션 계획을 참조하여
완료해야 하는 다음 태스크를 판별하십시오.
표 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를 초과할 수 없습니다.
|
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- z/OS XL C/C++ User’s Guide의 TEST 컴파일러 옵션에 대한 설명
함수 및 중첩 블록 내 후크의 배치를 위한 규칙
다음 규칙이 함수 및 중첩 블록에 대한 후크의 배치에 적용됩니다.
- 함수 입력에 대한 후크는 해당 함수에 대한 초기화 또는 명령문 앞에 배치됩니다.
- 함수 종료에 대한 후크는 실제 함수 반환 바로 앞에 배치됩니다.
- 중첩 블록 입력에 대한 후크는 블록에 대한 명령문 또는 초기화 앞에 배치됩니다.
- 중첩 블록 종료에 대한 후크는 블록에 대한 모든 명령문 다음에 배치됩니다.
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- z/OS XL C/C++ User’s Guide
명령문 및 경로 지점 내 후크의 배치를 위한 규칙
다음 규칙이 명령문 및 경로 지점에 대한 후크의 배치에 적용됩니다.
- 레이블 후크는 코드 및 다른 모든 명령문 또는 명령문에 대한 경로 지점 후크 앞에 배치됩니다.
- 명령문 후크는 코드 앞과 명령문에 대한 경로 지점 후크 앞에 배치됩니다.
- 명령문에 대한 경로 지점 후크는 해당 명령문에 대한 코드 앞에 배치됩니다.
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- z/OS XL C/C++ User’s Guide
후크 작업 방법 및 필요 이유
후크를 사용하면 중단점을 설정할 수 있습니다.
후크는 컴파일러가 컴파일타임에 프로그램 안으로 삽입할 수 있는 명령어입니다.
후크는 블록의 시작 및 종료, 명령문 경계, 프로그램 플로우가 명령문 경계간에 변경될 수 있는 프로그램 내 지점(경로 지점) 등에 배치할 수 있습니다. TEST
컴파일러 옵션으로 프로그램을 컴파일하고 NONE 또는 NOHOOK를 제외한
하위 옵션을 지정하는 경우 컴파일러가 후크를 프로그램에 삽입합니다.
후크를 사용하지 않고 최대 성능을 얻도록 Dynamic Debug 기능을 활용하는 방법
다음과 같은 상황에서는 후크를 사용하지 않고 프로그램을 컴파일하거나
작성할 수 있습니다. 그런 다음, Dynamic Debug 기능을 사용하여 런타임에 중단점을 설정하거나
STEP 명령을 입력할 때마다 후크를 삽입할 수 있습니다.
- 어셈블러, 디스어셈블리 및 비Language Environment COBOL 프로그램에는 후크가 없습니다.
- Enterprise COBOL for z/OS, 버전 4.1을 사용하는 경우
TEST(NOHOOK) 컴파일러 옵션을 사용하면 후크를 사용하지 않고 프로그램을 컴파일할 수 있습니다.
- 다음 컴파일러 중 하나를 사용하는 경우 TEST(NONE) 컴파일러 옵션을 사용하여 후크 없이 프로그램을 컴파일할 수 있습니다.
- Enterprise COBOL for OS/390 및 z/OS,, 버전 3
- COBOL for OS/390 & VM, 버전 2 릴리스 2
- OS/390 & VM용 COBOL, 버전 2 릴리스 1, APAR PQ40298
- Enterprise PL/I for z/OS, 버전 3.4 이상의 컴파일러를 사용하는 경우, TEST(NOHOOK) 컴파일러 옵션을 사용해서 후크를 사용하지 않고 프로그램을 컴파일할 수 있습니다.
또한 Dynamic Debug 기능을 사용하면 다음 컴파일러 중 하나로 컴파일된 프로그램을 디버깅하는 동안 Debug Tool의 성능을 향상시킬 수 있습니다.
- Debug Tool에서 지원되는 COBOL 컴파일러
- Debug Tool에서 지원되는 PL/I 컴파일러
- Debug Tool에서 지원되는 C/C++ 컴파일러
다음 컴파일러 중 하나를 사용하여 컴파일하고 컴파일러 삽입 후크가 있는 경우, Dynamic Debug 기능을 사용하면 디버그 중에 해당 프로그램의 성능을 향상시킬 수 있습니다.
- Debug Tool에서 지원되는 COBOL 컴파일러
- Debug Tool에서 지원되는 PL/I 컴파일러
- Debug Tool에서 지원되는 C/C++ 컴파일러
Debug Tool을 시작할 때, Dynamic Debug 기능이 활성화됩니다. Debug Tool은 컴파일러에서 삽입된 후크 대신
Dynamic Debug 기능으로 삽입한 후크를 사용합니다. 즉 일부 경로 중단점을 사용하지 못할 수도 있습니다.
이 중단점을 사용하려면 SET DYNDEBUG OFF 명령을 입력하여 동적
디버그 기능을 비활성화하십시오. 그러면 Debug Tool이 Dynamic Debug 기능으로 삽입한 후크 대신 컴파일러로 삽입한
후크를 사용합니다.
기호 테이블의 역할 및 이 테이블을 다른 위치에 저장하면 애플리케이션이 더 작아지는 이유
기호 테이블에는 변수에 대한 설명, 속성 및 스토리지 내 위치 등이 포함되어 있습니다. Debug Tool은 변수를 참조할 때 이 설명을 사용합니다.
기호 테이블은 프로그램의 오브젝트 파일 또는 별도의 디버그 파일에 저장될 수 있습니다.
다음 컴파일러 또는 어셈블러 중 하나를 사용하여 프로그램을 컴파일하거나 어셈블하면 기호 테이블을 별도의 디버그 파일에 저장할 수 있습니다.
- Enterprise COBOL for z/OS, 버전 4.1
- Enterprise COBOL and OS/390 for z/OS, 버전 3
- COBOL for OS/390 & VM, 버전 2 릴리스 2
- OS/390 & VM용 COBOL, 버전 2 릴리스 1 APAR PQ40298 사용
- OS/VS COBOL 버전 1 릴리스 2.4
- Enterprise PL/I for z/OS, 버전 3 릴리스 5 이상
- High Level Assembler for MVS & VM & VSE, 릴리스 4 이상
기호 테이블을 별도의 디버그 파일에 저장하면 프로그램에 대한 로드 모듈의 크기를 줄일 수 있습니다.
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 Tool이 동일한 터미널을 공유합니다. 이 터미널 모드를 사용하여 3270 터미널과
상호 작용하는 트랜잭션을 디버그하십시오. CADP 또는 DTCN 프로파일을
작성하는 경우, Display Device를 애플리케이션 프로그램이 사용하는
터미널 ID로 설정하십시오.
- 화면 제어 모드: Debug Tool이 DTSC 트랜잭션을 실행하는 터미널에 화면을 표시합니다.
화면 제어 모드를 사용하는 경우, DTSC 트랜잭션이
사용자가 선택한 터미널의 애플리케이션 프로그램과 동일한
리젼에서 실행되며 디버그 중인 태스크 대신 Debug Tool
화면을 표시합니다(고유 터미널이 없을 수도 있음).
화면
제어 모드를 사용하여 일반적으로 터미널과 연관되지 않으며
MRO 환경에서 실행 중인 애플리케이션 프로그램을 디버그하십시오.
화면
제어 모드가 다음과 같은 방식으로 작동합니다.
- Debug Tool을 표시하는 데 사용할 터미널에 DTSC를
입력하십시오. 이 터미널을 애플리케이션 프로그램이 실행되는
리젼에 직접 연결하거나 CRTE 또는 트랜잭션 라우팅으로
리젼에 연결할 수 있습니다. 트랜잭션 라우팅을 사용하는 경우,
애플리케이션 프로그램이 사용하는 리젼과 동일한 리젼에서
DTSC가 실행되는지 확인해야 합니다.
- DTCN 또는 CADP 프로파일의 Display Device를 DTSC 트랜잭션을
실행하고 있는 터미널로 설정하십시오.
- 애플리케이션 프로그램을 시작하십시오.
- DTSC 트랜잭션을 실행 중인 터미널에서 Enter를 눌러
Debug Tool에 연결하십시오.
- 독립 터미널 모드(이전에는
이중 터미널 모드라고 함): Debug Tool이
터미널에서 CDT# 트랜잭션을 동적으로 시작합니다.
개별 터미널 모드를 사용하여
일반적으로 터미널에 연관되지 않은 애플리케이션 프로그램을
디버그하십시오. 사용자 터미널은 애플리케이션 프로그램을
실행 중인 리젼에 직접 연결되어 있습니다.
개별 터미널 모드가 다음과 같은 방식으로
작동합니다.
- DTCN 또는 CADP 프로파일에서 Display Device를 사용 가능한 터미널로 설정하십시오.
Debug Tool을 실행 중인 CICS 리젼으로 해당 터미널을 찾을 수 있습니다.
- 애플리케이션 프로그램을 시작하십시오.
원격 디버거로 프로그램을 디버그하려면 원격 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 프로그램에 대해
- 원격 디버그 모드를 선택해야 합니다.
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 관련
참조
- IMS/VS Batch 터미널
시뮬레이터 프로그램 참조 및 조작 매뉴얼
브라우즈 모드에서 디버깅
일부 프로덕션 환경에서 디버그하는 경우,
스토리지 내용 및 실행 플로우 변경을 제한해야 합니다. 브라우즈 모드에서 디버그하면 스토리지 내용 및
실행 플로우 변경을 제한할 때 프로그램을 디버그할 수
있습니다. Debug Tool은 현재 사용자의 RACF® 권한, EQAOPTS 명령 또는 둘 다를 사용하여 브라우즈 모드에서 조작할지 결정합니다.
브라우즈 모드에서 디버그할 때 다음 조치를 수행할 수 없습니다.
- 메모리 또는 레지스터의 내용 수정
- 프로그램 실행 순서 변경
QUERY BROWSE MODE 명령을 사용하여 브라우즈 모드가
활성 상태인지 판별할 수 있습니다.
브라우즈 모드 설치 및 제어 방법에 대한 정보는 Debug Tool Customization Guide를 참조하십시오.
전체 화면, 행 및 Batch 모드 디버깅 시
브라우즈 모드
전체 화면, 행 또는 Batch 모드에서 디버깅하는 경우, 브라우즈 모드가 활성화되고 다음 명령 중 하나를 입력하면 Debug Tool에 명령이 브라우저 모드에서 허용되지 않는다는 메시지가 표시됩니다.
- ALLOCATE 명령
- 지정 명령(어셈블러 및 디스어셈블리)
- 지정 명령(비Language Environment COBOL)
- 지정 명령(PL/I)
- CALL %CECI 명령
- CALL entry_name(COBOL)
- CALL %FM 명령
- CALL %HOGAN 명령
- CLEAR LOG 명령
- COMPUTE 명령
- FREE 명령
- GO BYPASS 명령
- GOTO 명령
- GOTO LABEL 명령
- INPUT 명령
- JUMPTO 명령
- JUMPTO LABEL 명령
- MEMORY 명령(Debug Tool이 메모리 창을 표시하지만
어떤 것도 수정할 수 없음)
- MOVE 명령
- QUIT 명령
- QUIT expression 명령
- QQUIT 명령
- SET INTERCEPT 명령
- SET 명령(COBOL)
- STORAGE 명령
- SYSTEM 명령
- TRIGGER 명령
- TSO 명령
스토리지, 레지스터 또는 유사한 데이터를 수정할 수 있는
expression 또는 condition을 가진 명령을 입력하거나 명령이
사용자 작성 함수를 호출하거나 실행 순서를 변경하는 경우, Debug Tool이
브라우즈 모드에 명령이 허용되지 않는다는 메시지를 표시합니다.
- do/while
- DO 명령(PL/I)
- EVALUATE 명령(COBOL)
- expression 명령(C 및 C++)
- for 명령(C 및 C++)
- %IF 명령
- IF 명령
- LIST expression 명령
- switch 명령
- while 명령
원격 디버그 모드에서 디버깅 시 브라우즈 모드
원격 디버거를 사용하고 브라우즈 모드가 활성 상태인 경우,
원격 디버거에서 다음 조치를 수행할 수 없습니다.
- 위치로 건너뛰기 - 소스 창 RMB 조치
- 값 변경 - 표현식, 변수 및 레지스터 RMB
조치
- 메모리 창에 메모리 입력
또한 원격 디버거에 다음 제한사항이 적용됩니다.
- 값 변경 - 원격 디버거에서 레지스터 RMB 조치가 허용되지 않고
오류 메시지가 표시됨
- 종료 단추 - 프로그램이 이상 종료됨(대신,
연결 끊기를 눌러 디버거 없이 프로그램 계속
실행)
또한 원격 디버거에서 다음 Debug Console 명령을 입력할 수
없습니다.
- JUMPTO(및 중단점 추가 창의 조치 필드에 있는
JUMPTO)
- SET
INTERCEPT
- QUIT
원격 디버그 모드에서 디버그 시 이상 종료되고 브라우즈
모드가 활성 상태인 경우, 원격 디버거에서 연속 옵션이 제공되지
않습니다. 이상 종료 후 프로그램 실행을 계속할 수 없습니다.
브라우즈 모드 제어
RACF 액세스를 변경하고, EQAOPTS BROWSE 명령을 지정하거나 둘 다 수행하거나 또는 둘 다 수행하지 않음으로써 브라우즈 모드를 제어할 수 있습니다(활성화된 또는 비활성화됨). RACF 액세스를 통해
브라우즈 모드를 제어하려면 RACF 액세스를
다음 RACF 기능으로 변경하십시오.
- CICS 경우: EQADTOOL.BROWSE.CICS
- 비CICS 경우: EQADTOOL.BROWSE.MVS
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(그 이상) |
정상 모드 |
브라우즈 모드가 활성 상태임 |
정상 모드 |
표 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 |
|
주:
- CEEROPT를 사용하여 TEST 런타임 옵션을 지정할 수 없습니다.
- DB2 카탈로그 메소드는
항상 CEEUOPT보다 우선적으로 사용됩니다.
- 이 메소드는 비Language Environment 어셈블러 프로그램 전용입니다.
- 이 메소드는 비Language Environment 프로그램 전용입니다.
- 이 메소드는 call_sub 기능으로 호출된 DB2 스토어드 프로시저 전용입니다.
|
각 서브시스템의 경우, 표 11에는 TEST 런타임 옵션을 지정하는 여러 다른 메소드에서 선택할 수 있다는 것이 표시됩니다. 다음 목록은 유연성 및 편리성의 순서로 상황에 대한 최적의 적용을 보여주는 메소드를 선택할 수 있도록 합니다.
- TSO 프로그램의 경우
-
- Language Environment에서 시작되는 프로그램의 경우, 런타임 옵션을 지정하는
가장 융통성 있는 메소드는 TSO에서 CEEOPTS 할당을 사용하여 TEST 런타임 옵션을 지정하는 것입니다.
- 런타임 옵션이 많지 않거나 비Language Environment 프로그램에 대해 EQANMDBG를 호출해야 하는 경우 CALL문에서 매개변수를 사용하여 TEST 런타임 옵션을 지정합니다.
- CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 TEST 런타임 옵션을 지정하는 경우
옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
- JES Batch 프로그램의 경우
-
- Language Environment에서 시작되는 프로그램의 경우 런타임 옵션을 지정하는 가장 융통성 있는 메소드는
JCL에서 CEEOPTS DD문을 사용하여 TEST 런타임 옵션을 지정하는 것입니다.
- 런타임 옵션이 많지 않거나 비Language Environment 프로그램에 대해 EQANMDBG를 호출해야 하는 경우 EXEC문 옵션에
대한 매개변수를 사용하여 TEST 런타임 옵션을 지정합니다.
- CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 TEST 런타임 옵션을 지정하는 경우
옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
- UNIX System Services 프로그램의 경우
-
- _CEE_RUNOPTS 환경 변수를 설정하여 TEST 런타임 옵션을
지정합니다.
- CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 TEST 런타임 옵션을 지정하는 경우
옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
- CICS 프로그램의 경우
-
- TEST 런타임 옵션을 포함하는 프로파일을 작성하고 저장하는 DTCN 또는 CADP 트랜잭션을 사용하여
TEST 런타임 옵션을 지정합니다.
- CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 TEST 런타임 옵션을 지정하는 경우
옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
- DB2 프로그램의 경우
-
- 런타임 옵션을 지정하는 가장 융통성 있는 메소드는 JCL에서 CEEOPTS DD 명령문이나
TSO에서 CEEOPTS 할당을 사용하여 TEST 런타임 옵션을 지정하는 것입니다.
- 런타임 옵션이 많지 않거나 RUN문 옵션에 대한 매개변수를 사용하여 TEST 런타임 옵션을 지정합니다.
- CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하여 TEST 런타임 옵션을 지정하는 경우
옵션을 변경할 때마다 프로그램을 다시 컴파일해야 합니다.
- PROGRAM TYPE이 MAIN인 DB2 스토어드 프로시저의 경우
-
- Language Environment EQADDCXT EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다. 자체 하위 옵션 세트로
스토어드 프로시저를 실행할 수 있습니다. 다른 사용자도 독립 세트의 하위 옵션으로 스토어드 프로시저를 실행하거나 디버그할 수 있습니다. 그렇기 때문에 여러 사용자가 동시에 스토어드 프로시저를 실행하거나 디버그할 수 있습니다.
- 사용자 사이트에서 EXIT 루틴을 사용할 수 없는 경우 DB2 카탈로그를 사용하여
TEST 런타임 옵션을 지정하십시오. 그러나 특정
하위 옵션 세트는 하나만 지정할 수 있으므로 해당 스토어드 프로시저를 실행하거나
디버깅하는 모든 사용자는 동일한 하위 옵션 세트를 사용하게 됩니다.
두 메소드를 모두 구현하는 경우 Language Environment EXIT 루틴은
DB2 카탈로그보다 우선적으로 사용됩니다.
- PROGRAM TYPE이 SUB인 DB2 스토어드 프로시저의 경우
-
- call_sub 함수를 호출하는 프로그램의 경우, Language Environment EQADDCXT EXIT 루틴을 사용하여
TEST 런타임 옵션을 지정합니다. 사용자가 자체 하위 옵션 세트로 DB2
스토어드 프로시저를 실행하거나 디버그할 수 있기 때문에, 다른 사용자도 독립 하위 옵션 세트로
DB2 스토어드 프로시저를 실행하거나 디버그할 수 있습니다.
사용자 사이트에서 EXIT 루틴을 사용할 수 없는 경우 DB2 카탈로그를 사용하여
TEST 런타임 옵션을 지정하십시오. 하위 옵션 세트는 하나만 지정할 수 있으므로 해당 스토어드 프로시저를 실행하거나
디버깅하는 모든 사용자는 동일한 하위 옵션 세트를 사용하게 됩니다.
메소드를 구현하는 경우 Language Environment EXIT 루틴은
DB2 카탈로그보다 우선적으로 사용됩니다.
- 다른 메소드를 사용하여 호출하는 프로그램의 경우, DB2
카탈로그를 사용하여 TEST 런타임 옵션을 지정하십시오. 하위 옵션 세트는 하나만 지정할 수 있으므로 해당 스토어드 프로시저를 실행하거나
디버깅하는 모든 사용자는 동일한 하위 옵션 세트를 사용하게 됩니다.
- IMS TM 프로그램의 경우
-
- EQADICXT 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다. 프로그램이 비Language Environment
어셈블러 프로그램인 경우 EQASET 트랜잭션을 통해 선택하십시오.
- 사용자 사이트에서 EQADICXT 사용자 EXIT 루틴을 사용할 수 없는 경우
DFSBXITA 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다.
- 사용자 사이트에서 EQADICXT 또는 DFSBXITA 사용자 EXIT 루틴을 사용할 수 없는 경우
CEEUOPT 또는 CEEROPT를 사용하여 TEST 런타임 옵션을 지정합니다.
- 이전 옵션 중에 사용자 사이트에서 사용 가능한 옵션이 없는 경우
CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하도록 TEST 런타임 옵션을 지정합니다. 그러나 옵션을 변경할 때마다
프로그램을 다시 컴파일해야 합니다.
- IMS Batch 프로그램의 경우
-
- Language Environment에서 시작되는 프로그램의 경우 이 메소드가 가장 융통성 있는 메소드가 될 수 있기 때문에
JCL에서 CEEOPTS 할당을 사용하여 TEST 런타임 옵션을 지정합니다.
- EQADBCXT 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다. 프로그램이 비Language Environment 프로그램인 경우
EQANMDBG 프로그램을 통해 선택합니다.
- 사용자 사이트에서 EQADBCXT 사용자 EXIT 루틴을 사용할 수 없는 경우
DFSBXITA 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다. 그러나
TRANSACTION이 아니라 PROGRAM을 지정해야 합니다.
- 사용자 사이트에서 EQADBCXT 또는 DFSBXITA 사용자 EXIT 루틴을 사용할 수 없는 경우
CEEUOPT 또는 CEEROPT를 사용하여 TEST 런타임 옵션을 지정합니다.
- 이전 옵션 중에 사용자 사이트에서 사용 가능한 옵션이 없는 경우
CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하도록 TEST 런타임 옵션을 지정합니다. 그러나 옵션을 변경할 때마다
프로그램을 다시 컴파일해야 합니다.
- IMS BTS 프로그램의 경우
-
- Language Environment에서 시작되는 프로그램의 경우 이 메소드가 가장 융통성 있는 메소드가 될 수 있기 때문에
JCL에서 CEEOPTS 할당을 사용하여 TEST 런타임 옵션을 지정합니다.
- EQADICXT 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다. 프로그램이 비Language Environment 프로그램인 경우
EQANMDBG 프로그램을 통해 선택합니다.
- 사용자 사이트에서 EQADICXT 사용자 EXIT 루틴을 사용할 수 없는 경우
EQADBCXT 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다.
- 사용자 사이트에서 EQADBCXT 사용자 EXIT 루틴을 사용할 수 없는 경우
DFSBXITA 사용자 EXIT 루틴을 사용하여 TEST 런타임 옵션을 지정합니다.
- 사용자 사이트에서 EQADICXT, EQADBCXT 또는 DFSBXITA 사용자 EXIT 루틴을 사용할 수 없는 경우
CEEUOPT 또는 CEEROPT를 사용하여 TEST 런타임 옵션을 지정합니다.
- 이전 옵션 중에 사용자 사이트에서 사용 가능한 옵션이 없는 경우
CEETEST, __ctest() 또는 PLITEST를 호출하는 코드를 작성하도록 TEST 런타임 옵션을 지정합니다. 그러나 옵션을 변경할 때마다
프로그램을 다시 컴파일해야 합니다.
Debug Tool을 시작하는 데 사용할 메소드를 식별한 후 디버그 세션 계획을 참조하여
완료해야 하는 다음 태스크를 판별하십시오.
이전 COBOL 프로그램 디버그 방법 선택
OS/VS COBOL 컴파일러로 컴파일한 프로그램은 다음 중 하나를 수행하여 디버깅할 수 있습니다.
- 비Language Environment COBOL 프로그램으로 디버그
- 1985 COBOL 표준 레벨로 변환한 후 Enterprise COBOL for z/OS 및 OS/390 또는 COBOL for OS/390 & VM 컴파일러로 컴파일
Load Module Analyzer를 사용하여 로드 모듈 내 OS/VS COBOL 프로그램을 식별한 다음
COBOL 및 CCCA(CICS Command Level Conversion Aid)를 사용하여 프로그램을 변환할 수 있습니다.
OS/VS COBOL 프로그램을 1985 COBOL 표준으로 변환하려면 다음 단계를 수행하십시오.
- Load Module Analyzer를 사용하여 로드 모듈 내 OS/VS COBOL 프로그램을 식별하십시오.
Load Module Analyzer 사용에 관한 지시사항은 부록G. Debug Tool Load Module Analyzer를 참조하십시오.
-
COBOL 및 CCCA(CICS Command Level Conversion Aid)를 사용하여 OS/VS COBOL 소스를 변환하십시오. CCCA 사용에 대한
지시사항은 COBOL 및 CICS Command Level Conversion Aid for OS/390 & MVS & VM 사용자 안내서를 참조하십시오.
-
Enterprise COBOL for z/OS 및 OS/390 또는 COBOL for OS/390 & VM을 사용하여 새 소스를 컴파일하십시오.
Debug Tool Utilities의 변환 및 컴파일 옵션을 사용하여
2단계와 3단계를 결합할 수 있습니다.
- Debug Tool을 사용하여 오브젝트 모듈을 디버깅하십시오.
프로그램을 변환 및 디버깅한 후에 다음 중 하나의 옵션을 수행할 수 있습니다.
- OS/VS COBOL 컴파일러를 계속 사용합니다. 프로그램을 디버깅할 때마다 이 절에 설명된 단계를 수행해야 합니다.
- 이 절에 설명된 단계에서 작성한 새 소스를 사용합니다. 이 절에 설명된 단계를 반복하지 않고도 소스를 컴파일하고 디버깅할 수 있습니다.
CCCA는 이전에 CMPR2 컴파일러 옵션으로 컴파일된 VS COBOL II, COBOL for MVS & VM 및 COBOL for OS/390 & VM 프로그램 등을 포함하여 모든 레벨의 COBOL 소스 프로그램을 입력으로 사용할 수 있습니다.
환경
변수를 지정할 수 있는 상황에서 환경 변수
EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며,
EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
환경
변수를 지정할 수 있는 상황에서 환경 변수
EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며,
EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
환경
변수를 지정할 수 있는 상황에서 환경 변수
EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며,
EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
환경
변수를 지정할 수 있는 상황에서 환경 변수
EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며,
EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.