부록G. Debug Tool Load Module Analyzer

Debug Tool Load Module Analyzer는 MVS 로드 모듈 또는 프로그램 오브젝트를 분석하여 각 CSECT용 오브젝트를 생성하는 데 사용할 언어 변환기(컴파일러 또는 어셈블러)를 결정합니다. 이 프로그램은 PDS 또는 PDSE 데이터셋과 연결하여 모든 로드 모듈 또는 선택된 로드 모듈 또는 프로그램 오브젝트를 처리할 수 있습니다.

Load Module Analyzer를 시작하는 데 사용되는 메소드 선택

다음 중 한 가지 방법으로 Load Module Analyzer를 시작할 수 있습니다.

JCL을 사용하여 Load Module Analyzer 시작

샘플 JCL을 사용하여 Load Module Analyzer를 시작하려면 다음 단계를 수행하십시오.

  1. 데이터셋 hlq.SEQASAMP에서 EQAZLMA 멤버의 사본을 작성하십시오.
  2. 멤버에 지시된 대로 사본을 편집하십시오.
  3. JCL을 제출하십시오.
  4. 결과를 검토하십시오.

Debug Tool Utilities를 사용하여 Load Module Analyzer 시작

Debug Tool Utilities를 사용하여 Load Module Analyzer를 시작하려면 다음 단계를 수행하십시오.

  1. Debug Tool Utilities를 시작하십시오.
  2. 옵션 5를 선택하십시오.
  3. 패널의 각 필드에 적절한 정보를 입력하십시오. 이 때 다음 동작을 명심하십시오.

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 멤버 내에 있는 이 파일에 대한 데이터를 제공합니다. 이 파일에 항목을 추가하려면 다음 태스크 중 하나를 수행하십시오.

이 파일의 각 행은 한 항목을 나타냅니다. 항목은 자유 양식이나 각 항목은 반드시 하나 이상의 공백을 사용하여 이전 항목과 분리되어야 합니다. 열 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 멤버 내에 있는 이 파일에 대한 데이터를 제공합니다. 이 파일에 항목을 추가하려면 다음 태스크 중 하나를 수행하십시오.

각 행은 한 항목을 나타냅니다. 항목은 자유 양식입니다. 프로그램 번호는 반드시 1열에서 시작해야 하며 각 항목은 반드시 하나 이상의 공백을 사용하여 이전 항목과 분리되어야 합니다. 열 1에 별표를 사용하여 설명을 포함시킬 수 있습니다. 이 파일에 순서 번호를 사용할 수 없습니다. 각 행에 다음 구문을 사용하십시오.

program_name    L   program_description
program_name
일곱자의 프로그램 번호입니다.
L
언어 또는 시스템 컴포넌트 표시기입니다. 가능한 값 목록은 EQASYSPF 파일 형식에 대한 설명을 참조하십시오.
program_description
프로그램에 대한 설명입니다.

Load Module Analyzer에서 작성된 프로그램 출력에 대한 설명

각 로드 모듈 또는 프로그램 오브젝트에 대한 출력이 다음 순서로 표시됩니다.

별명이 다음 방법으로 표시됩니다.

Load Module Analyzer에서 작성된 출력 내용에 대한 설명

각 CSECT의 출력에 포함되는 정보는 다음과 같습니다.

예제: 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