부록G. Debug Tool Load Module Analyzer
Debug Tool Load Module Analyzer는 MVS 로드 모듈 또는
프로그램 오브젝트를 분석하여 각 CSECT용 오브젝트를 생성하는 데 사용할 언어 변환기(컴파일러 또는 어셈블러)를 결정합니다.
이 프로그램은 PDS 또는 PDSE 데이터셋과 연결하여
모든 로드 모듈 또는 선택된 로드 모듈 또는 프로그램 오브젝트를 처리할 수 있습니다.
Load Module Analyzer를 시작하는 데 사용되는 메소드 선택
다음 중 한 가지 방법으로 Load Module Analyzer를 시작할 수 있습니다.
- hlq.SEQASAMP 데이터셋의 EQAZLMA 멤버에서 제공된 샘플 JCL을 편집한 다음
JCL을 Batch Job으로 실행할 수 있도록 제출
- Debug Tool Utilities ISPF 패널의 옵션 5 선택
JCL을 사용하여 Load Module Analyzer 시작
샘플 JCL을 사용하여 Load Module Analyzer를 시작하려면 다음 단계를 수행하십시오.
- 데이터셋 hlq.SEQASAMP에서 EQAZLMA 멤버의 사본을 작성하십시오.
- 멤버에 지시된 대로 사본을 편집하십시오.
- JCL을 제출하십시오.
- 결과를 검토하십시오.
Debug Tool Utilities를 사용하여 Load Module Analyzer 시작
Debug Tool Utilities를 사용하여 Load Module Analyzer를 시작하려면 다음 단계를 수행하십시오.
- Debug Tool Utilities를 시작하십시오.
- 옵션 5를 선택하십시오.
- 패널의 각 필드에 적절한 정보를 입력하십시오. 이 때 다음 동작을 명심하십시오.
- 단일 로드 모듈 또는 분석기 오브젝트를 분석하도록 지정하면 Load Module Analyzer가
TSO 포그라운드에서 실행됩니다.
- 전체 PDS 또는 PDSE를 분석하도록 지정하면
MVS Batch에서 Load Module Analyzer를 시작하도록
JCL이 생성됩니다. 그러므로 반드시 생성된 JCL을 제출하거나 저장해야 합니다.
Load Module Analyzer에 사용할 JCL문에 대한 설명
기본적으로 Load Module Analyzer 프로그램은 EQALIB DD문에서 지정된
PDS 또는 PDSE 내의 모든 멤버를 처리합니다. 제어 명령문을 사용하여 Load Module Analyzer가
데이터셋 연결의 특정 멤버만 처리하도록 지시할 수 있습니다.
Load Module Analyzer에서 사용되는 DD명에 대한 설명
Load Module Analyzer는 다음과 같은 DD명을 사용합니다.
- EQALIB
- 분석할 로드 모듈 또는 프로그램 오브젝트를 포함하는 PDS 또는 PDSE 데이터셋의 연결을
지정합니다. 동일한 멤버가 하나 이상의 연결된 데이터셋에 있으면 첫 번째
멤버만 처리됩니다.
- EQAPRINT
- 출력 보고서를 지정합니다. 133 이상의 논리 레코드 길이(LRECL >=133)를 가진 고정 블록 레코드
형식(RECFM=FBA) 또는 137 이상의 논리 레코드 길이(LRECL >=137)를 가진 가변 블록 레코드 형식(RECFM=VBA)일 수
있습니다.
- EQAIN
- 제어 명령문을 지정합니다. 특정 로드 모듈 또는 프로그램 오브젝트만 처리하도록 지정하려면 다음
구문을 사용하십시오.
SELECT MEMBER=load_module_name
전체 로드 모듈을 처리하려면 이 DD문을 생략하고 DUMMY로 지시하거나 빈 데이터셋으로
지시하십시오. 이 파일은
논리 레코드 길이가 80(LRECL=80)인 고정 블록 레코드
형식(RECFM=FB)이어야 합니다. 각 제어 명령문은 독립 행에 있어야 합니다. 자유 양식으로
입력할 수 있으며 각 키워드 및 연산자 앞뒤에 공백을 사용할 수 있습니다. 열 1에
별표를 사용하여 설명을 포함시킬 수 있습니다.
- EQASYSPF
- 시스템 접두부의 목록을 지정합니다. Load Module Analyzer가 시스템 루틴으로 인식하도록
할 CSECT 이름의 접두부 목록입니다.
이 목록은 표시되는 출력 양을 해당 접두부로 제한하는 데 도움을 줍니다. 이 파일은
논리 레코드 길이가 80(LRECL=80)인 고정 블록 레코드
형식(RECFM=FB)이어야 합니다. Debug Tool은 테이블 라이브러리(SEQATLIB)의 EQALMPFX 멤버 내에 있는
이 파일에 대한 데이터를 제공합니다. 이 파일에 대한 설명은 EQASYSPF 파일 형식에 대한 설명을 참조하십시오.
- EQAPGMNM
- 로드 모듈 IDR 데이터에서 찾은 프로그램 ID에 해당되는 프로그램명 목록을 지정합니다. 이 파일은
논리 레코드 길이가 80(LRECL=80)인 고정 블록 레코드
형식(RECFM=FB)이어야 합니다. Debug Tool은 테이블 라이브러리(EQATLIB)의 EQALMPGM 멤버 내에 있는
이 파일에 대한 데이터를 제공합니다. 이 목록에 항목을 추가하는 방법은 EQAPGMNM 파일 형식에 대한 설명을
참조하십시오.
Load Module Analyzer에서 사용되는 매개변수에 대한 설명
EXEC JCL문의 PARM= 키워드를 사용하여 매개변수를 지정할 수 있습니다.
이 프로그램에 전달된 매개변수 문자열은 쉼표 또는 공백으로 구분된 다음 매개변수 중
어느 매개변수로든 구성될 수 있습니다.
- CKVOLFPRS
- 최소 -Point Registers 8 - 15 중 하나를
사용하는 항목 도는 CSECT만 나열합니다.
OSVSONLY 매개변수와 이 매개변수를 함께 지정할 수 없습니다. 둘 다를 지정하면 마지막으로 지정된 것이
사용됩니다.
- DATEFMT=dateformat
- 날짜 형식을 지정합니다. 바인더 CSECT
ID 레코드(IDR) 데이터의 날짜가 올바른 율리우스일이 아닌 경우
다시 형식이 지정되지 않습니다. 다음 값 중 하나를 사용하십시오.
- YYYYMMDD
- 정렬 형식: YYYY/MM/DD. 기본값입니다.
- MMDDYYYY
- 미국 표준 형식: MM/DD/YYYY
- DDMMYYYY
- 유럽 표준 형식: DD/MM/YYYY
- LEINFO
- 각 CSECT의 텍스트 및 외부 시작점에서 Language Environment 풋프린트를 검사하도록 합니다. 하나가 발견되면
Language Environment 시작점 이름, 연계 유형, 소스 언어 및 변환 날짜 및 시간에 관한 정보가 CSECT 또는 항목의 출력에
포함됩니다. Language Environment 풋프린트가 발견되지 않으면
알려진 비Language Environment 프롤로그 형식의 프롤로그 코드를 검사합니다.
하나가 발견되면 해당되는 언어가 출력에 포함됩니다.
그렇지 않으면 『ASSEMBLER"가 출력이 됩니다.
OS/VS COBOL 및 VS COBOL II 경우에도
사용되는 컴파일러의 버전(VS COBOL II 전용의 경우) 및
컴파일 날짜와 시간을 포함하는 NON-LEINFO 섹션이 포함됩니다.
- LESCAN
- LEINFO 매개변수 밑에서 설명한 액션이 발생합니다. 또한 각 CSECT의 텍스트를
스캔하여 외부 기호에 해당되지 않는 『숨겨진" Language Environment 시작점을 찾습니다. 예를 들어,
C 정적 함수에 대해 존재할 수 있습니다. 이러한
『숨겨진" 시작점을 발견하면
LEINFO에서 설명한 것과 동일한 출력이 생성됩니다.
- LISTLD
- CSECT 이름 외에 레이블 정의(LD) 항목을 모두 나열합니다.
- LOUD
- EQASYSPF 및 EQAPGMNM 파일에서 읽은 데이터를 출력 목록에 표시할 것인지 여부를
지정합니다.
- NATLANG=language_code
- 자국어를 지정합니다. 다음 값 중 하나를 사용하십시오.
- ENU
- 대소문자 혼용 영어입니다. 기본값입니다.
- UEN
- 대문자 영어입니다.
- JPN
- 일본어입니다.
- KOR
- 한국어입니다.
- OSVSONLY
- OS/VS COBOL 컴파일러로 컴파일된 CSECT만 출력에 표시되도록 지정합니다. 다른
모든 CSECT에 관한 정보는 표시하지 않습니다.
CKVOLFPRS 매개변수와 이 매개변수를 함께 지정할 수 없습니다. 둘 다를 지정하면 마지막으로 지정된 것이
사용됩니다.
- SHOWLIB
- EQASYSPF 파일의 포함 표시기를 무시하여
CSECT가 모두 나열되도록 지정합니다.
- SORTBY=sort_option
- 출력에서 CSECT의 이름을 정렬하는 방법을 지정합니다. 다음 값 중 하나를 사용하십시오.
- OFFSET
- 오프셋별로 정렬. 연계 편집기 또는 AMBLIST 출력에서 표시된 순서. 기본값입니다.
- NAME
- CSECT 이름별로 정렬
- PROGRAM
- 변환기 프로그램 ID별로 정렬
- LANGUAGE
- 소스 언어 및 변환기 프로그램 ID별로 정렬
- DATE
- 변환 날짜별로 정렬
EQASYSPF 파일 형식에 대한 설명
이 파일은 시스템 접두부 목록을 포함합니다. Load Module Analyzer가
이 목록의 이름에 의해 접두부가 지정된 이름을 가진 CSECT를 찾았으며
해당 접두부의 항목이 포함되지 않는 접두부로 시작하는 이름을 나타내는 경우
Load Module Analyzer가 해당 CSECT에 대한 개별 항목을 표시하지 않습니다. 대신
발견된 각 접두부의 출력에
지정된 접두부가 있는 하나 이상의 CSECT가 발견되었음을 나타내는 단일 행이 표시됩니다.
Debug Tool은 테이블 라이브러리(SEQATLIB)의 EQALMPFX 멤버 내에 있는
이 파일에 대한 데이터를 제공합니다. 이 파일에 항목을 추가하려면 다음 태스크 중 하나를 수행하십시오.
- hlq.SEQASAMP(EQAUMOD3)의 SMP/E
USERMOD를 통해 hlq.SEQATLIB의 EQALMPFX 멤버를 갱신하십시오.
- 새 항목을 포함하는 데이터셋을 작성하십시오. 그런 다음, 이 데이터셋을 Debug Tool이 제공하는 데이터셋과
연결하십시오.
이 파일의 각 행은 한 항목을 나타냅니다. 항목은 자유 양식이나
각 항목은 반드시 하나 이상의 공백을 사용하여 이전 항목과 분리되어야 합니다. 열 1에
별표를 사용하여 설명을 포함시킬 수 있습니다. 각 행에 다음 구문을 사용하십시오.
prefix I L description
- prefix
- 1에서 7까지 문자 접두부입니다.
- I
- 표시기를 포함시킵니다. 이 접두부로 시작하는 각 CSECT가
일반적인 CSECT로 처리됨을 나타내려면 "1"을 지정하십시오. 이 접두부로
시작하는 CSECT가 개별적으로 나열되지 않음을 나타내려면 "0"을 지정하십시오.
- L
- 언어 또는 시스템 컴포넌트 표시기입니다. 다음 문자 중 하나를 선택하십시오.
- B
- COBOL
- N
- Enterprise COBOL for z/OS®
버전 4 이상
- V
- OS/VS COBOL
- P
- PL/I
- E
- Enterprise PL/I
- C
- C/C++
- A
- Assembler
- L
- Language Environment
- S
- CICS®
- I
- IMS™
- 2
- DB2®
- M
- MVS
- T
- TCP/IP
- *
- 분류되지 않음
- 설명
- 접두부를 소유한 컴포넌트에 대한 12자 설명
EQAPGMNM 파일 형식에 대한 설명
파일이 로드 모듈 IDR 데이터에서 찾은 프로그램 ID에 해당되는 프로그램명 목록을 포함합니다. 이러한
이름은 해당되는 CSECT의 오브젝트를 생성하기 위해 사용한 언어 변환기를 설명하기 위해 출력에서 사용됩니다.
Debug Tool은 테이블 라이브러리(SEQATLIB)의 EQALMPGM 멤버 내에 있는
이 파일에 대한 데이터를 제공합니다. 이 파일에 항목을 추가하려면 다음 태스크 중 하나를 수행하십시오.
- hlq.SEQASAMP(EQAUMOD4)의 SMP/E
USERMOD를 통해 hlq.SEQATLIB의 EQALMPRM 멤버를 갱신하십시오.
- 새 항목을 포함하는 데이터셋을 작성하십시오. 그런 다음, 이 데이터셋을 Debug Tool이 제공하는 데이터셋과
연결하십시오.
각 행은 한 항목을 나타냅니다. 항목은 자유 양식입니다. 프로그램 번호는 반드시 1열에서 시작해야 하며
각 항목은 반드시 하나 이상의 공백을 사용하여 이전 항목과 분리되어야 합니다. 열 1에
별표를 사용하여 설명을 포함시킬 수 있습니다. 이 파일에 순서 번호를 사용할 수 없습니다.
각 행에 다음 구문을 사용하십시오.
program_name L program_description
- program_name
- 일곱자의 프로그램 번호입니다.
- L
- 언어 또는 시스템 컴포넌트 표시기입니다. 가능한 값 목록은 EQASYSPF 파일 형식에 대한 설명을 참조하십시오.
- program_description
- 프로그램에 대한 설명입니다.
Load Module Analyzer에서 작성된 프로그램 출력에 대한 설명
각 로드 모듈 또는 프로그램 오브젝트에 대한 출력이 다음 순서로 표시됩니다.
- 각 로드 모듈 또는 프로그램 오브젝트와의 첫 번째 EQALIB 연결의 모든 멤버가
알파벳 순서로 표시됩니다.
- 이전 연결의 멤버와 중복되지 않는 각 모듈 또는 프로그램 오브젝트와의
두 번째 EQALIB 연결의 모든 멤버가
알파벳 순서로 표시됩니다.
- 이전 연결의 멤버와 중복되지 않는 각 모듈 또는 프로그램 오브젝트와의
다음 EQALIB 연결의 모든 멤버가
알파벳 순서로 표시됩니다.
별명이 다음 방법으로 표시됩니다.
- 1차 멤버명이 있으면 이 이름이
앞에서 설명한 순서대로 출력에 표시됩니다. 해당 멤버의 내용을 출력하기 전에
기본 멤버명의 별명 목록이 제공됩니다.
- 1차 멤버명이 데이터셋에 없으면 별명이 앞에서 설명한 순서대로 표시됩니다.
Load Module Analyzer에서 작성된 출력 내용에 대한 설명
각 CSECT의 출력에 포함되는 정보는 다음과 같습니다.
- CSECT 이름
- 세그먼트 번호(다중 세그먼트 모듈에만 있음)
- 로드 모듈 또는 세그먼트 내의 CSECT 오프셋
- 16진 형식의 CSECT 길이
- 바인더 IDR 데이터에 포함된 것과 같은 프로그램 ID
- 변환기(컴파일 또는 어셈블리) 날짜
- 지정된 프로그램 ID에 제공된 것과 같은 프로그램 설명
- OS/VS COBOL의 경우, PARM=RES 또는 PARM=NORES
- PARM=RES는 로드 모듈 또는 프로그램 오브젝트 내에서 하나 이상의 OS/VS COBOL CSECT가
NORES 컴파일러 옵션을 사용하여 컴파일되었음을 나타냅니다.
- PARM=NORES는 로드 모듈 또는 프로그램 오브젝트 내에서 모든 OS/VS COBOL CSECT가
NORES 컴파일러 옵션을 사용하여 컴파일되었음을 나타냅니다.
- LEINFO, LESCAN 또는 CKVOLFPRS를 지정한 경우
- Language Environment 프롤로그가 발견된 경우 정보가 LEINFO=(...에 의해 식별된 문자열에
포함됩니다.
이 문자열은 이름이 외부 기호, Language Environment 연계 유형, 소스 언어, 변환 날짜, 시간
및 변환기 버전과 동일하다는 것을 표시하기 위해 Language Environment 항목 이름 또는 별표를
포함합니다.
- Language Environment 프롤로그가 발견되지 않았으나 프롤로그가 알려진 비Language Environment 컴파일러인 것으로
나타난 경우 C/C++, COBOL 또는 PL/I 중 하나가 포함됩니다.
- 그렇지 않으면 프로그램이 어셈블러 프로그램일 가능성이 많다는 것을 표시하기 위해
ASSEMBLER가 포함됩니다.
예제: OS/VS COBOL 로드 모듈의 Load Module Analyzer에서
작성된 출력
다음은 OS/VS COBOL 로드 모듈에 대해 표시될 수 있는 출력의 일부분입니다.
1 5655-W45 Debug Tool 버전 11 릴리스 1.2 Load Module Analyzer 2010/11/06 페이지 15
로드 모듈 TSCODEL.CICS.TEST.LOAD(CICK512)
CSECT Sg 오프셋 길이 프로그램-ID Trn-날짜 프로그램-설명
$PRIV000010
28 C58 5688216 1996/12/31 AD/Cycle C/370
$PRIV000011
D00 1CD0 5688216 1996/12/31 AD/Cycle C/370
XINIT@ 29E0 8 5688216 1996/12/31 AD/Cycle C/370
INIT@ 29E8 3D8 5688216 1996/12/31 AD/Cycle C/370
EQADCRXT 2DC0 240 566896201 1995/05/15 Assembler H Version 1 Release 2, 3, OR 4
C2CBL 3118 10 569623400 1995/08/03 High Level Assembler for MVS & VM & VSE Version 1
FETCH 3138 10 569623400 1995/08/03 High Level Assembler for MVS & VM & VSE Version 1
MEMSET 3148 10 569623400 1995/08/03 High Level Assembler for MVS & VM & VSE Version 1
FPRINTF 3158 10 569623400 1995/08/03 High Level Assembler for MVS & VM & VSE Version 1
CS9403 3168 3518 566895807 1995/08/15 VS COBOL II Version 1 Release 3
STRLEN 7398 10 569623400 1995/08/03 High Level Assembler for MVS & VM & VSE Version 1
CEE* (Multiple program ID's)
DFH* 5668962 Assembler H Version 1 Release 2, 3, OR 4
EDC* 5696234 High Level Assembler for MVS & VM & VSE Version 1
IGZ* 5668962 Assembler H Version 1 Release 2, 3, OR 4