TEST 런타임 옵션 문자열 쓰기

이 절의 지침은 Language Environment에서 실행되는 프로그램에 적용됩니다. Language Environment에서 실행되지 않는 프로그램에 대해서는 Language Environment 외부에서 시작되는 프로그램에 대해 Debug Tool 시작에 설명된 지침을 참조하십시오.

이 주제에서는 TEST 런타임 옵션을 사용하는 경우 고려해야 할 몇 가지 요소를 설명하고, 예제를 제공하고, 지정해야 하는 다른 런타임 옵션을 설명합니다. TEST 런타임 옵션의 구문은 Debug Tool Reference and Messages의 TEST 런타임 옵션 주제에서 설명합니다.

Debug Tool이 애플리케이션의 제어를 얻고 디버그 세션을 시작하는 방법을 지정하려면 TEST 런타임 옵션을 사용하십시오. TEST 옵션의 가장 간단한 양식은 하위 옵션을 지정하지 않은 TEST이지만 하위 옵션을 지정하는 것이 보다 유연할 수 있습니다. 사용 가능한 하위 옵션의 유형에는 네 가지가 있으며 다음과 같습니다.

test_level
프로그램으로 인해 Debug Tool이 프로그램을 제어하는 고급 언어 조건을 결정합니다.
commands_file
명령의 초기 소스로 사용할 기본 명령 파일을 결정합니다.
prompt_level
프로그램 초기화 중에 초기 명령 목록이 무조건 실행되는지 여부를 결정합니다.
preferences_file
디버깅 환경의 기본 설정(예: Debug Tool 프로파일 패널에서 설정 사용자 정의)을 지정하는 데 사용할 수 있는 세션 매개변수와 파일을 지정합니다.

TEST 런타임 옵션 사용 시 특수 고려사항

TEST 런타임 옵션을 사용할 경우 이 절에서 설명하는 몇 가지 사항을 고려해야 합니다.

프로그램의 TEST 하위 옵션 정의

C, C++ 또는 PL/I의 경우 #pragma runopts 또는 PLIXOPT 문자열을 사용하여 하위 옵션과 함께 TEST를 정의한 후 런타임에 하위 옵션 없이 TEST를 지정할 수 있습니다. 이것은 #pragma runopts 또는 PLIXOPT 문자열에 지정된 하위 옵션이 적용됩니다.

SET TEST 명령을 사용하여 언제든지 TEST/NOTEST 런타임 옵션을 변경할 수 있습니다.

하위 옵션 및 NOTEST

일부 하위 옵션은 NOTEST로 사용 불가능하게 설정할 수 있지만 여전히 허용됩니다. 그러므로 NOTEST 옵션을 사용하여 프로그램을 시작하고 나중에 디버그 세션에 적용할 하위 옵션을 지정할 수 있습니다. Debug Tool의 제어없이 프로그램이 실행을 시작합니다.

지정된 하위 옵션을 NOTEST를 사용하여 사용 가능하게 하려면 CEETEST, PLITEST 또는 __ctest() 함수와 같은 라이브러리 서비스 호출을 사용하여 프로그램 런타임 중에 Debug Tool을 시작하십시오.

암시적 중단점

적용된 테스트 레벨로 인해 Debug Tool이 조건 또는 특정 프로그램 위치에서 제어하면 연관된 액션이 없는 암시적 중단점이 가정됩니다. 이러한 가정은 초기 명령 문자열 또는 기본 명령 파일을 사용하여 해당 조건이나 위치에 대해 중단점이 정의되지 않은 경우에도 해당됩니다. 터미널 또는 기본 명령 파일에 대한 제어가 제공됩니다.

기본 명령 파일 및 USE 파일

기본 명령 파일은 대리 터미널로 작동합니다. 기본 명령 파일에 명령의 소스로 액세스한 후 모든 명령이 실행되거나 애플리케이션이 종료될 때까지 이 기능은 계속 작동합니다. 이러한 작동은 프로그램으로 제어를 리턴하는 명령(예: STEP 또는 GO)이 USE 파일에 포함된 경우 모든 후속 명령이 삭제된다는 점에서 USE 파일과 다릅니다. 그러나 기본 명령 파일 내에서 시작된 USE 파일에는 기본 명령 파일의 특성이 있으며 완료될 때까지 실행될 수 있습니다.

초기 명령 목록은 런타임 옵션 또는 기본 명령 파일에 포함된 명령 문자열로 구성되는지에 따라 보조 파일에서 명령을 가져오는 USE 명령을 포함할 수 있습니다. 기본 명령 파일에서 시작되는 USE 파일은 기본 명령 파일의 특성을 갖습니다.

Batch 모드에서 실행

Batch 모드에서 명령 파일의 끝에 도달하면 프로그램이 종료될 때까지 명령에 대한 각 요청에서 GO 명령이 실행됩니다. 프로그램 종료 후 다른 명령이 요청되면 QUIT 명령이 강제 실행됩니다.

다른 위치에서 Debug Tool 시작

프로그램 초기화 중에 Debug Tool이 시작되면 기본 프롤로그의 모든 지시사항이 실행되기 전에 시작됩니다. 시작될 때 프로그램 블록이 활성화되지 않고 기본 프로시저의 변수를 참조할 수 없으며 컴파일 단위를 호출할 수 없고 GOTO 명령을 사용할 수 없습니다. 그러나 정적 변수는 참조할 수 있습니다.

다른 명령을 입력하기 전에 STEP 명령을 입력하면 프로그램 및 Language Environment 초기화가 완료되고 모든 변수에 대한 액세스 권한이 부여됩니다. 모든 올바른 명령도 입력할 수 있습니다.

프로그램이 실행되는 동안(예: CEETEST 호출을 사용하여) Debug Tool이 시작되면 애플리케이션과 연관된 모든 컴파일 단위를 찾지 못할 수 있습니다. 현재 활성화되지 않은 로드 모듈에 있는 컴파일 단위는 Debug Tool 초기화 전에 실행되었더라도 Debug Tool에 알려지지 않습니다.

예를 들어, 로드 모듈 mod1에 컴파일 단위 cu1cu2가 포함되며 둘 다 TEST 옵션으로 컴파일되었다고 가정해보십시오. 컴파일 단위 cu1은 처리 완료 후 리턴하는 로드 모듈 mod2에 포함된 cux를 호출합니다. 컴파일 단위 cu2에는 CEETEST 라이브러리 서비스 호출이 포함됩니다. CEETEST 호출이 Debug Tool을 초기화하면 cu1cu2만 Debug Tool에 알려집니다. Debug Tool은 cux를 인식하지 않습니다.

초기 명령 문자열은 Debug Tool이 프로세스에서 처음 초기화될 때 한 번만 실행됩니다.

환경 설정 파일의 명령은 Debug Tool이 프로세스에서 처음 초기화될 때 한 번만 실행됩니다.

세션 로그

세션 로그는 입력한 명령과 명령 실행 결과를 저장합니다. 세션 로그는 명령 실행 결과를 설명으로 저장합니다. 그러므로 세션 로그를 명령 파일로 사용할 수 있습니다.

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

Language Environment 런타임 옵션의 우선순위

Language Environment 런타임 옵션에는 다음과 같은 우선순위(최고에서 최저까지)가 있습니다.

  1. NONOVR 속성으로 대체할 수 없는 것으로 지정된 CEEDOPT 파일의 설치 옵션
  2. Language Environment 어셈블러 사용자 EXIT에 지정된 옵션. CICS® 환경에서 Debug Tool은 DTCN 트랜잭션 및 애플리케이션으로 링크 편집된 사용자 정의 Language Environment 사용자 EXIT EQADCCXT를 사용합니다. IMS™ 버전 8 환경에서 IMS는 Language Environment 런타임 옵션 테이블의 옵션과 가장 잘 일치하는 옵션을 검색합니다. 이 테이블은 Debug Tool Utilities를 사용하여 편집할 수 있습니다.
  3. 런타임 옵션 허용이 Language Environment(EXECOPS/NOEXECOPS)에서 사용 불가능하지 않은 경우 TEST 런타임 옵션을 사용하여 애플리케이션 호출 시 지정한 옵션
  4. 소스 프로그램 내에 지정된 옵션(#pragma 또는 PLIXOPT 사용) 또는 CEEUOPT와 함께 지정되고 애플리케이션으로 링크 편집된 애플리케이션 옵션

    소스 프로그램의 오브젝트 모듈이 CEEUOPT 오브젝트 모듈보다 먼저 연계 편집기에 입력되면 이러한 옵션은 CEEUOPT 기본값을 무시합니다. 연계 편집기 제어 명령문을 사용하여 오브젝트 모듈이 입력되는 순서를 강제 실행할 수 있습니다.

  5. CEEROPT 내에 정의된 리젼 전체 CICS 또는 IMS 옵션
  6. 설치 시 CEEDOPT에 지정된 옵션 기본값
  7. IBM 제공 기본값

하위 옵션은 다음 순으로 처리됩니다.

  1. 명령행에 입력한 명령이 런타임에 지정한 하위 옵션이나 기본값보다 우선합니다.
  2. 환경 설정 파일에서 실행된 명령이 명령 문자열 및 런타임에 지정한 하위 옵션이나 기본값보다 우선합니다.
  3. 명령 파일의 명령이 기본 하위 옵션, 런타임에 지정한 하위 옵션, 명령 문자열의 명령 및 환경 설정 파일의 명령보다 우선합니다.

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

예제: TEST 런타임 옵션

프로그램에 사용할 수 있는 런타임 옵션을 설명하기 위해 TEST 런타임 옵션 사용에 대한 다음 예제를 제공합니다. 모든 명령을 설명하지는 않습니다. TEST 런타임 옵션의 전체 구문은 Debug Tool Reference and Messages를 참조하십시오.

NOTEST
Debug Tool이 프로그램 초기화 시에 시작되지 않습니다. CEETEST, PLITEST 또는 __ctest()를 호출하면 Debug Tool은 프로그램 실행 중에 시작됩니다.
NOTEST(ALL,MYCMDS,*,*)
Debug Tool이 프로그램 초기화 시에 시작되지 않습니다. CEETEST, PLITEST 또는 __ctest()를 호출하면 Debug Tool은 프로그램 실행 중에 시작됩니다. Debug Tool이 시작되면 지정된 하위 옵션이 유효해지고 MYCMDS의 DD명에 할당된 파일의 명령이 처리됩니다.

NOTEST를 지정하고 Debug Tool이 처음 활성화된 프로그램에서 제어가 리턴되면 더 이상 비Language Environment 프로그램을 디버깅하거나 비Language Environment 이벤트를 발견할 수 없습니다.

TEST
하위 옵션 없이 TEST를 지정하면 하위 옵션의 다른 정의가 있는지 확인합니다. 예를 들어, C와 C++에서는 #pragma runopts를 사용하여 컴파일 시에 기본 하위 옵션을 선택할 수 있습니다. 마찬가지로 PL/I는 PLIXOPT 문자열을 제공합니다. Language Environment는 매크로 CEEXOPT를 제공합니다. 이 매크로를 사용하여 설치 및 프로그램별 기본값을 지정할 수 있습니다.

하위 옵션에 대한 다른 정의가 없으면 IBM 제공 기본 하위 옵션(ALL, *, PROMPT, INSPREF)이 사용됩니다.

TEST(ALL,*,*,*)
Debug Tool이 처음에 시작되지 않지만 프로그램에 조건 또는 어텐션이 있으면 CEETEST, PLITEST 또는 __ctest()를 호출한 것처럼 Debug Tool이 시작됩니다. 기본 명령 파일 또는 환경 설정 파일이 사용되지 않습니다.
TEST(NONE,,*,*)
Debug Tool이 처음에 시작되지 않으며 "프로덕션 모드"에서 실행됨으로써 시작됩니다. 그러므로 프로그램 처리에 최소한의 영향을 미칩니다. 그러나 CEETEST, PLITEST 또는 __ctest()를 사용하여 Debug Tool을 시작할 수 있습니다.
TEST(ALL,test.scenario,PROMPT,prefer)
Debug Tool이 환경 초기화가 끝나고 기본 프로그램 프롤로그가 완료되기 전에 시작됩니다. DD명 prefer는 환경 설정 파일로 처리되며 후속 명령은 데이터셋 test.scenario에 있습니다. 명령 파일의 모든 명령이 처리되고 프롬프트가 표시될 때 STEP 명령을 실행하거나 STEP 명령이 명령 파일에서 실행되면 기본 블록이 초기화를 완료합니다(즉, AUTOMATIC 스토리지를 얻고 초기 값이 설정됨). Debug Tool이 나중에 다시 입력되면 계속해서 test.scenario에서 명령을 가져오고 파일의 끝에 도달할 때까지 이 프로세스를 반복합니다. 여기에서 명령은 터미널에서 가져옵니다.
TEST(ALL,,,MFI%F000:)
CICS에서 실행할 때, Debug Tool이 터미널 ID F000에 해당 화면을 표시합니다.
TEST(ALL,,,MFI%TRMLU001:)
Debug Tool Terminal Interface Manager를 사용하지 않고 전용 터미널을 통한 전체 화면 모드에서 사용할 경우. VTAM® LU TRMLU001은 표시에 사용됩니다. 이 터미널은 VTAM에 알려져야 하며 Debug Tool이 시작될 때 세션에 알려지지 않습니다.
TEST(ALL,,,MFI%SYSTEM01.TRMLU001:)
다음 상황에서 사용하기 위해서입니다. 네트워크 노드 SYSTEM01의 VTAM LU TRMLU001이 표시에 사용됩니다. 이 터미널은 VTAM에 알려져야 하며 Debug Tool이 시작될 때 세션에 알려지지 않습니다.
TEST(ALL,,,VTAM%USERABCD:)
Debug Tool Terminal Interface Manager를 사용할 때 전용 터미널을 통한 전체 화면 모드에서 사용할 경우. 사용자는 사용자 ID USERABCD를 사용하여 Debug Tool Terminal Interface Manager에 액세스합니다.
원격 디버그 모드
원격 디버그 모드에서 작업할 때, 즉 워크스테이션에서 호스트 애플리케이션을 디버깅할 경우 다음과 같은 예제가 적용됩니다.
TEST(,,,TCPIP&machine.somewhere.something.com%8001:*)
TEST(,,,TCPIP&9.24.104.79%8001:*)
NOTEST(,,,TCPIP&9.24.111.55%8001:*)

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

COBOL II 및 PL/I 프로그램에서 추가 런타임 옵션 지정

COBOL과 PL/I 프로그램을 디버깅하도록 지정하기 위해 두 개의 추가 런타임 옵션, 즉 STORAGETRAP(ON)이 필요할 수 있습니다.

STORAGE 런타임 옵션 지정

STORAGE 런타임 옵션은 할당되고 확보될 때 스토리지의 초기 컨텐츠와 "스토리지 부족" 조건을 위해 예약된 스토리지의 양을 제어합니다. STORAGE 런타임 옵션에 매개변수 중 하나를 지정하면 매개변수가 처리한 할당된 모든 스토리지가 해당 값으로 초기화됩니다. 프로그램에 자체 초기화 변수가 없는 경우 STORAGE 런타임 옵션을 지정해야 합니다.

TRAP(ON) 런타임 옵션 지정

TRAP(ON) 런타임 옵션은 Debug Tool로 예외를 전달하는 Language Environment 조건 핸들러를 완전히 사용 가능하게 하는 데 사용됩니다. 이 옵션은 TEST 옵션과 함께, 예외가 발생할 때 Debug Tool이 자동으로 제어하게 할 경우에 사용해야 합니다. GO BYPASS 명령을 사용하고 기록된 핸들러를 디버깅할 경우에도 TRAP(ON) 런타임 옵션을 사용해야 합니다. TRAP(OFF)를 Debug Tool에서 사용하면 조건, 이상 종료 또는 인터럽트가 발생할 때 운영 체제에서 해당 애플리케이션과 Debug Tool을 취소하는 등의 예기치 않은 결과가 발생할 수 있습니다.

주:
이 옵션은 OS PL/I와 VS COBOL II STAE/NOSTAE 옵션을 바꿉니다.

C 및 C++에서 #pragma runopts를 사용하여 TEST 런타임 옵션 지정

TEST 런타임 옵션은 프로그램을 시작하거나 #pragma를 사용하여 소스에서 직접 시작할 때 지정할 수 있습니다.

#pragma runopts (test(suboption,suboption...))

#pragma는 소스 파일의 첫 번째 명령문보다 먼저 표시되어야 합니다. 예를 들어, 소스에서 다음을 지정한 경우

#pragma runopts (notest(all,*,prompt))

명령행에 TEST를 입력하면 결과는 다음과 같습니다.

TEST(ALL,*,PROMPT).

TESTTEST가 자체의 하위 옵션을 포함하지 않으므로 #pragma에 지정된 NOTEST 옵션을 대체하며 하위 옵션 ALL, *PROMPT는 유효합니다.

다른 #pragmas로 둘 이상의 컴파일 단위를 함께 링크하면 첫 번째 컴파일로 지정된 옵션이 사용됩니다. enclave가 여러 개인 경우 새로운 각 프로세스에서 시작된 첫 번째 enclave(컴파일 단위)로 지정된 옵션이 사용됩니다.

명령행과 #pragma에 옵션을 지정한 경우 NOEXECOPS를 지정하지 않는 한, 명령행에 입력한 옵션은 #pragma에 지정된 옵션보다 우선합니다. NOEXECOPS#pragma에 지정하거나 EXECOPS 컴파일 옵션으로 지정하면 명령행 옵션이 적용되지 않습니다.

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