디버그 세션 계획의 태스크를 완료한 후 수집한 정보를 사용하여 다음 프로세스를 갱신할 수 있습니다.
이 프로세스를 갱신하는 방법에 대해서는 다음 주제를 참조하십시오.
이 주제에서는 디버그 세션 계획에서 선택한 사항을 충족시키기 위해 컴파일, 어셈블리 및 링크 프로세스에서 변경해야 하는 사항에 대해 설명합니다. JCL 관리 및 사이트의 컴파일 또는 어셈블리 프로세스에 익숙한 경우에는 Debug Tool Utilities를 사용하지 않고 프로그램 컴파일에서 특정 사항의 변경에 대한 지시사항을 참조하십시오. 사이트에서 Debug Tool Utilities를 사용하여 프로세스를 관리하는 경우에는 Debug Tool Utilities를 사용하여 프로그램 컴파일에서 프로그램 준비 옵션을 사용하여 프로세스를 갱신하는 방법에 대한 지시사항을 참조하십시오.
프로그램을 컴파일 또는 어셈블하는 데 필요한 모든 명령문을 포함하도록 JCL을 작성하거나 수정한 후 라이브러리를 알맞게 링크하십시오. 다음 목록은 변경해야 하는 사항을 설명합니다.
각 컴파일러에 대해 Debug Tool을 시작하려면 필요한 추가 갱신사항이 있을 수 있습니다. 다음 목록은 해당 갱신사항을 설명합니다.
| 프로그래밍 언어 | 컴파일러 하위 옵션 또는 어셈블러 옵션 | 저장해야 하는 파일 |
|---|---|---|
| COBOL | ||
| SEPARATE | 별도의 디버그 파일 | |
| 그밖의 모든 옵션 | 파일 열거 | |
| NOTEST | 의사 어셈블러 코드를 포함하는 파일 열거 | |
| 비Language Environment COBOL | ||
| EQALANGX | ||
| 그밖의 모든 옵션 | 의사 어셈블러 코드를 포함하는 파일 열거 | |
| PL/I | ||
| SEPARATE | 별도의 디버그 파일 | |
| 다른 모든 옵션(Enterprise PL/I 이전) | 파일 열거 | |
| 다른 모든 옵션(Enterprise PL/I) | 컴파일러에 대한 입력으로 사용된 소스 파일 | |
| NOTEST | 의사 어셈블러 코드를 포함하는 파일 열거 | |
| C/C++ | ||
| DEBUG(DWARF) | .dbg 파일 및 소스 파일
소스 파일을 저장하는 .mdbg 파일을 사용하는 경우 해당 .mdbg 파일을 저장하십시오. |
|
| TEST | 컴파일러에 대한 입력으로 사용된 소스 파일 | |
| NOTEST | 의사 어셈블러 코드를 포함하는 파일 열거 | |
| 어셈블러 | ||
| ADATA | EQALANGX | |
| 디버그 정보가 저장되지 않음 | 의사 어셈블러 코드를 포함하는 파일 열거 | |
이 태스크를 완료한 후 라이브러리 및 승격 프로세스 갱신을 참조하십시오.
Debug Tool Utilities는 프로그램을 컴파일하고 Debug Tool을 시작하는 데 도움이 되는 여러 유틸리티를 제공합니다. 이 주제에서 설명하는 단계는 컴파일러 및 어셈블러의 다음 카테고리에 적용됩니다.
Debug Tool Utilities를 사용하여 프로그램을 준비하고 Debug Tool을 시작하는 경우, Debug Tool Utilities를 사용하여 샘플 프로그램을 준비하고 Debug Tool을 시작하는 방법에 대해 설명하는 부록D. 예제: Debug Tool Utilities를 사용하여 프로그램 준비 및 설정 파일 수정을 참조하십시오. 샘플에 대해 읽고 Debug Tool Utilities 사용 방법에 대해 파악한 후에는 다음 단계를 수행하십시오.
프로그램 소스가 순차 데이터셋이고 DB2 사전 컴파일러를
선택한 경우 EQAPPC1B, EQAPPC2B, EQAPPC3B,
EQAPPC4B 또는 EQAPPC5B 패널에 있는 DBRMLIB 데이터셋 필드는
멤버명이 있는 파티션된 데이터셋입니다
(예: DEBUG.TEST.DBRMLIB(PROG1)).
옵션 및 데이터셋명 패턴을 편집하려면 /를 입력 필드에 슬래시 문자("/")를 입력한 후 Enter를 누르십시오.
이 태스크를 완료한 후 라이브러리 및 승격 프로세스 갱신을 참조하십시오.
HFS 파일 시스템에서 Enterprise PL/I 프로그램을 컴파일 및 시작하는 경우 다음 중 하나를 수행하십시오.
기본적으로 Enterprise PL/I 컴파일러는 오브젝트 파일에 상대 경로 및 파일명을 저장합니다. 디버그 세션을 시작할 때 소스가 프로그램이 시작된 곳과 동일한 위치에 있지 않으면 Debug Tool에서 소스를 찾을 수 없습니다. 이 문제를 방지하려면 프로그램을 컴파일할 때 소스의 전체 경로명을 지정하십시오. 예를 들어 다음과 같은 일련의 명령을 실행하는 경우, 소스는 다른 디렉토리(/u/myid/mypgm)에 있기 때문에 Debug Tool에서 해당 소스를 찾을 수 없습니다.
cd /u/myid/mypgm pli -g "//TEST.LOAD(HELLO)" hello.pli
call TEST.LOAD(HELLO) 'test/'
컴파일 명령을 다음과 같이 변경하면 Debug Tool은 소스를 찾습니다.
pli -g "//TEST.LOAD(HELLO)" /u/myid/mypgm/hello.pli
CICS 환경에서 실행하기 위해 컴파일하는 프로그램에 동일한 제한사항이 적용됩니다.
c89 또는 c++를 사용하여 애플리케이션을 빌드하는 경우 다음 단계를 수행하십시오.
cd /u/mike/app c89 –g –o "//PROJ.LOAD(FRED)" fred.c
FRED TEST ENVAR('PWD=/u/mike/app') / asis
.mdbg 파일을 작성하는 경우, -c 옵션을 dbgld 명령으로 지정하여 소스 파일을 .mdbg 파일로 캡처하거나 CAPSRC 옵션을 CDADBGLD 유틸리티로 캡처하십시오. dbgld 명령 및 CDADBGLD 유틸리티를 사용하는 방법에 대해 학습하려면 z/OS XL C/C++ User’s Guide의 내용을 참조하십시오. Debug Tool에 프로그램을 디버그할 .mdbg 파일에 대한 액세스 권한이 있어야 합니다.
HFS 파일 시스템에서 프로그램을 컴파일 및 시작하는 경우 다음 중 하나를 수행하십시오.
기본적으로 C 컴파일러는 오브젝트 파일에 소스 파일의 상대 경로 및 파일명을 저장합니다. 디버그 세션을 시작할 때 소스가 프로그램이 시작된 곳과 동일한 위치에 있지 않으면 Debug Tool에서 소스를 찾을 수 없습니다. 이 문제를 방지하려면 프로그램을 컴파일할 때 소스의 전체 경로명을 지정하십시오. 예를 들어 다음과 같은 일련의 명령을 실행하는 경우, 소스는 다른 디렉토리(/u/myid/mypgm)에 있기 때문에 Debug Tool에서 해당 소스를 찾을 수 없습니다.
cd /u/myid/mypgm c89 -g -o "//TEST.LOAD(HELLO)" hello.c
call TEST.LOAD(HELLO) 'test/'
컴파일 명령을 다음과 같이 변경하면 Debug Tool은 소스를 찾습니다.
c89 -g -o "//TEST.LOAD(HELLO)" /u/myid/mypgm/hello.c
CICS 환경에서 실행하기 위해 컴파일하는 프로그램에 동일한 제한사항이 적용됩니다.
.mdbg 파일을 작성하는 경우, -c 옵션을 dbgld 명령으로 지정하여 소스 파일을 .mdbg 파일로 캡처하거나 CAPSRC 옵션을 CDADBGLD 유틸리티로 캡처하십시오. dbgld 명령 및 CDADBGLD 유틸리티를 사용하는 방법에 대해 학습하려면 z/OS XL C/C++ User’s Guide의 내용을 참조하십시오. Debug Tool에 프로그램을 디버그할 .mdbg 파일에 대한 액세스 권한이 있어야 합니다.
HFS 파일 시스템에서 프로그램을 컴파일 및 시작하는 경우 다음 중 하나를 수행하십시오.
기본적으로 C++ 컴파일러는 오브젝트 파일에 소스 파일의 상대 경로 및 파일명을 저장합니다. 디버그 세션을 시작할 때 소스가 프로그램이 시작된 곳과 동일한 위치에 있지 않으면 Debug Tool에서 소스를 찾을 수 없습니다. 이 문제를 방지하려면 프로그램을 컴파일할 때 소스의 전체 경로명을 지정하십시오. 예를 들어 다음과 같은 일련의 명령을 실행하는 경우, 소스는 다른 디렉토리(/u/myid/mypgm)에 있기 때문에 Debug Tool에서 해당 소스를 찾을 수 없습니다.
cd /u/myid/mypgm c++ -g -o "//TEST.LOAD(HELLO)" hello.cpp
call TEST.LOAD(HELLO) 'test/'
컴파일 명령을 다음과 같이 변경하면 Debug Tool은 소스를 찾습니다.
c++ -g -o "//TEST.LOAD(HELLO)" /u/myid/mypgm/hello.cpp
CICS 환경에서 실행하기 위해 컴파일하는 프로그램에 동일한 제한사항이 적용됩니다.
.mdbg 파일을 작성하는 경우, -c 옵션을 dbgld 명령으로 지정하여 소스 파일을 .mdbg 파일로 캡처하거나 CAPSRC 옵션을 CDADBGLD 유틸리티로 캡처하십시오. dbgld 명령 및 CDADBGLD 유틸리티를 사용하는 방법에 대해 학습하려면 z/OS XL C/C++ User’s Guide의 내용을 참조하십시오. Debug Tool에 프로그램을 디버그할 .mdbg 파일에 대한 액세스 권한이 있어야 합니다.
라이브러리를 사용하여 프로그램을 품질 및 테스트 레벨을 통해 이동하도록 프로그램과 승격 프로세스를 유지보수하는 경우, Debug Tool이 프로그램에 대한 정보가 있는 파일을 찾을 수 있도록 이 프로세스를 갱신해야 합니다. 예를 들어, 최종 프로덕션 레벨에서 개발 레벨과 동일한 라이브러리에 액세스할 수 없는 경우 최종 제품 레벨에 있는 프로그램을 디버깅할 수 있어야 하며 다음 자원에 액세스할 수 있도록 최종 프로덕션 레벨의 환경을 갱신해야 합니다.
기타 Problem Determination Tools를 사용하는 경우, 사용하고 있는 컴파일러 또는 어셈블러에 해당하는 부록C. IBM Problem Determination Tools 제품에 사용할 프로그램 컴파일 및 어셈블을 위한 빠른 시작 안내서의 주제를 검토하십시오. 이러한 주제에서는 Problem Determination Tools가 필요한 파일을 찾을 수 있도록 사용자 레벨을 통해 이동할 파일에 대한 지시사항을 제공합니다.
데이터셋을 할당할 때 SUBSYS=ssss 매개변수를 지정하도록 요청하는 라이브러리 시스템을 사용하여 소스 코드를 관리하려면 사용자 또는 사용자 사이트에서 ssss에 대한 값을 제공하는 EQAOPTS SUBSYS 명령을 지정해야 합니다. 다음 유형의 프로그램에서 이를 수행해야 합니다.
이 지원은 CICS 프로그램에 대해서는 사용할 수 없습니다. EQAOPTS 명령을 지정하는 방법에 대해 학습하려면 Debug Tool Reference and Messages 또는 Debug Tool Customization Guide를 참조하십시오.
이 주제에서는 2와 Debug Tool을 시작할 메소드 선택을 완료한 후 수집한 정보를 사용하여 TEST 런타임 옵션 문자열을 작성하고 적절한 위치에 저장합니다.
여러 가지 TEST 런타임 옵션 문자열을 작성해야 할 수 있습니다. 예를 들어, CICS 프로그램용으로 작성하는 TEST 런타임 옵션 문자열은 IMS™ 프로그램에 사용할 수 있는 TEST 런타임 옵션과 다를 수 있습니다. 이러한 상황에서는 표 13을 참조하여 디버깅하는 각 프로그램 유형에 사용할 문자열을 기록하십시오.
| TEST 런타임 옵션 문자열(예: TEST(ALL,,,MFI%SYSTEM01.TRMLU001:)) | |
|---|---|
| TSO |
|
| JES Batch |
|
| UNIX System Services |
|
| CICS |
|
| DB2 |
|
| DB2 스토어드 프로시저(PROGRAM TYPE=MAIN) |
|
| DB2 스토어드 프로시저(PROGRAM TYPE=SUB) |
|
| IMS TM |
|
| IMS Batch |
|
| IMS BTS |
|
TEST 런타임 옵션 문자열의 형식에 익숙하지 않은 경우에는 다음 주제를 참조하십시오.
TEST 런타임 옵션 문자열을 작성한 후 적절한 위치에 저장해야 합니다. 표 11에 기록된 정보를 사용하여, TEST 런타임 옵션 문자열을 저장할 위치 및 방법에 대한 지시사항을 안내하는 다음 목록을 검토하십시오.