Appendix G. Debug Tool Load Module Analyzer
The Debug Tool Load Module Analyzer analyzes MVS load
modules or program objects to determine the language translator (compiler
or assembler) used to generate the object for each CSECT. This program
can process all or selected load modules or program objects in a concatenation
of PDS or PDSE data sets.
Choosing a method to start Load Module Analyzer
You can start the Load Module Analyzer in one of the following
ways:
- Editing sample JCL provided in member EQAZLMA of data set hlq.SEQASAMP,
then submitting the JCL to run as a batch job.
- By selecting option 5 of Debug Tool Utility ISPF panel.
Starting the Load Module Analyzer by using JCL
To start the Load Module Analyzer by using sample JCL, do the following
steps:
- Make a copy of member EQAZLMA in data set hlq.SEQASAMP.
- Edit that copy, as instructed in the member.
- Submit the JCL.
- Review the results.
Starting the Load Module Analyzer by using Debug Tool Utilities
To start the Load Module Analyzer by using Debug Tool Utilities, do
the following steps:
- Start Debug Tool Utilities.
- Select option 5.
- Enter the appropriate information into each field on the panel,
keeping in mind the following behavior:
- If you specify that you want a single load module or program object
analyzed, Load Module Analyzer is run in the TSO foreground.
- If you specify that you want an entire PDS or PDSE analyzed, JCL
is generated to start Load Module Analyzer in MVS batch.
Then, you must submit or save the generated JCL.
Description of the JCL statements to use with Load
Module Analyzer
By default, the Load Module Analyzer program processes all members
in the PDS or PDSE specified in the EQALIB DD statement. You can use
control statements to instruct Load Module Analyzer to process only
specific members of the data set concatenation.
Description of DD names used by Load Module Analyzer
Load Module Analyzer uses the following DD names:
- EQALIB
- Specifies a concatenation of PDS or PDSE data sets containing
the load modules or program objects to be analyzed. If the same member
is present in more than one of the concatenated data sets, only the
first member is processed.
- EQAPRINT
- Specifies the output report. It can be in fixed block record
format (RECFM=FBA) with a logical record length of 133 or more (LRECL
>=133) or in variable block record format (RECFM=VBA) with a logical
record length of 137 or more (LRECL >= 137).
- EQAIN
- Specifies the control statements. If you want only specific
load modules or program objects to be processed, use the following
syntax:
SELECT MEMBER=load_module_name
If you
want all load modules to be processed, you can omit this DD statement,
direct it to DUMMY, or direct it to empty data set. This file must
be in fixed block record format (RECFM=FB) with a logical record length
of 80 (LRECL=80). Each control statement must be on a separate line.
The entries are free-form and you can use blanks before or after
each keyword and operator. You can include comments by placing an
asterisk in column 1.
- EQASYSPF
- Specifies a list of system prefixes. This is a list of prefixes
of names of CSECTs that you want Load Module Analyzer to recognize
as system routines. The list helps limit the amount of output displayed
for these prefixes. This file must be in fixed block record format
(RECFM=FB) with a logical record length of 80 (LRECL=80). Debug Tool provides
data for this file in member EQALMPFX of the table library (SEQATLIB).
See Description of EQASYSPF file format for a description of this file.
- EQAPGMNM
- Specifies a list of program names corresponding to program IDs
found in the load module IDR data. This file must be in fixed block
record format (RECFM=FB) with a logical record length of 80 (LRECL=80).
Debug Tool provides data for this file in member EQALMPGM of the table
library (EQATLIB). See Description of EQAPGMNM file format for directions on how
to add entries to this list.
Description of parameters used by Load Module Analyzer
You can specify parameters by using the PARM= keyword of the EXEC
JCL statement. The parameter string passed to this program can consist
of any of the following parameters, separated by commas or blanks:
- CKVOLFPRS
- Lists only CSECTs or entries that use at least one of the
Additional Floating-Point Registers 8 through 15. You
cannot specify this parameter with the OSVSONLY parameter. If you
specify both, the last one specified is used.
- DATEFMT=dateformat
- Specifies how dates are to be formatted. If a date from the
binder CSECT identification record (IDR) data does not appear to be
a valid Julian date, it is not reformatted. Use one of the following
values:
- YYYYMMDD
- Sort format: YYYY/MM/DD. (Default)
- MMDDYYYY
- U.S. standard format: MM/DD/YYYY.
- DDMMYYYY
- European standard format: DD/MM/YYYY.
- LEINFO
- Causes the text for each CSECT and external entry point to be
inspected for a Language Environment footprint. If one is found, information
about the Language Environment entry point name, linkage type, source language,
and translation date and time is included in the output for the CSECT
or entry. If no Language Environment footprint is found, the prologue code is
inspected for known non-Language Environment prologue formats. If one is discovered,
the corresponding language is included in the output. Otherwise, "ASSEMBLER"
is output.
- LESCAN
- Causes the actions described under the LEINFO parameter. In
addition, the text for each CSECT is scanned looking for "hidden" Language Environment entry
points that do not correspond to an external symbol. For example,
these might be present for C static functions. If such "hidden"
entry points are detected, the same output as described for LEINFO
in generated.
- LISTLD
- Lists all label definition (LD) entries in addition to CSECT
names.
- LOUD
- Specifies that the data read from the EQASYSPF and EQAPGMNM
files is displayed in the output listing.
- NATLANG=language_code
- Specifies the national language. Use one of the following values:
- ENU
- Mixed-case English. (Default)
- UEN
- Upper-case English.
- JPN
- Japanese.
- KOR
- Korean.
- OSVSONLY
- Specifies that only CSECTs compiled with the OS/VS COBOL compiler
are to be displayed in the output. Information about all other CSECTs
is suppressed.
You cannot specify this parameter with the CKVOLFPRS
parameter. If you specify both, the last one specified is used.
- SHOWLIB
- Specifies that the include indicator in the EQASYSPF file is
to be ignored so that all CSECTs are listed.
- SORTBY=sort_option
- Specifies how to sort the names of the CSECTs in the output.
Use one of the following values:
- OFFSET
- Sort by offset; the order shown in the linkage editor or AMBLIST
output. (Default)
- NAME
- Sorts by CSECT name.
- PROGRAM
- Sort by the translator program ID.
- LANGUAGE
- Sorts by the source language and by the translator program ID.
- DATE
- Sorts by the translation date.
Description of EQASYSPF file format
This file contains a list of system prefixes. When Load Module
Analyzer finds a CSECT that has a name prefixed by a name in this
list and the entry for that prefix indicates that names beginning
with that prefix are not to be included, Load Module Analyzer does
not display an individual entry for that CSECT. Instead, a single
line is displayed in the output for each prefix found that indicates
that one or more CSECTs with the specified prefix was found.
Debug Tool supplies data for this file in member EQALMPFX of the table
library (SEQATLIB). If you want to add entries to this file, do one
of the following tasks:
- Update the EQALMPFX member in hlq.SEQATLIB through the
SMP/E USERMOD in hlq.SEQASAMP(EQAUMOD3).
- Create a data set containing the new entries. Then, concatenate
this data set to the one that ships with Debug Tool.
Each line in this file represents one entry. The entries are free-form;
however, each item must be separated from the previous item by one
or more blanks. You can include comments by placing an asterisk in
column 1. Use the following syntax for each line:
prefix I L description
- prefix
- A one to seven character prefix.
- I
- Include indicator. Specify a "1" to indicate that
each CSECT beginning with this prefix is to be treated as an ordinary
CSECT. Specify a "0" to indicate that CSECTs beginning
with this prefix are not to be listed individually.
- L
- Language or system component indicator. Choose from one of
the following characters:
- B
- COBOL
- N
- Enterprise COBOL for z/OS, Version 4 or later
- 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
- *
- Unclassified.
- description
- A twelve-character description of the component owning the prefix.
Description of EQAPGMNM file format
This file contains a list of program names corresponding to program
IDs found in the load module IDR data. These names are used in the
output to describe the language translator used to generate the object
for the corresponding CSECT.
Debug Tool provides data for this file in member EQALMPGM of the table
library (SEQATLIB). If you want to add entries to this file, do one
of the following tasks:
- Update the EQALMPRM member in hlq.SEQATLIB through the
SMP/E USERMOD in hlq.SEQASAMP(EQAUMOD4).
- Create a data set containing the new entries. Then, concatenate
this data set to the one that ships with Debug Tool.
Each line represents one entry. The entries are free-form. The
program number must begin in column 1 and each item must be separated
from the previous item by one or more blanks. You can include comments
by placing an asterisk in column 1. You cannot use sequence numbers
in this file. Use the following syntax for each line:
program_name L program_description
- program_name
- A seven character program number.
- L
- Language or system component indicator. See Description of EQASYSPF file format for
a list of possible values.
- program_description
- A description of the program.
Description of program output created by Load Module
Analyzer
The output for each load module or program object is displayed
in the following order:
- All members of the first EQALIB concatenation with each load module
or program object appearing in alphabetical order
- All members of the second EQALIB concatenation that are not duplicates
of members in the previous concatenation, with each load module or
program object appearing in alphabetical order
- All members of the next EQALIB concatenation that are not duplicates
of members in the previous concatenation, with each load module or
program object appearing in alphabetical order
Alias names are displayed in the following manner:
- If the primary member name exists, this name is displayed in the
output in the order previously described. Before the output of the
contents of that member, a list of alias names for the primary member
name is given.
- If the primary member name is not present in the data set, the
alias is displayed the order previously described.
Description of output contents created by Load Module
Analyzer
The following information is included in the output for each CSECT:
- CSECT name
- Segment number (present only for a multi-segment module)
- CSECT offset in load module or segment
- CSECT length in hexadecimal
- Program-ID as contained in the binder IDR data
- Translator (compile or assembly) date
- Program description as supplied for the specified program ID.
- For OS/VS COBOL, PARM=RES or PARM=NORES.
- PARM=RES indicates that one or more OS/VS COBOL CSECTs in the
load module or program object were compiled with the NORES compiler
option.
- PARM=NORES indicates that all OS/VS COBOL CSECTs in the load module
or program object were compiled with the NORES compiler option.
- If you specify LEINFO, LESCAN, or CKVOLFPRS:
- If a Language Environment prologue was detected, information is included
in a string identified by LEINFO=(.... This string
contains the Language Environment entry name or an asterisk to indicate that
the name is the same as the external symbol, Language Environment linkage type,
source language, and translation date, time, and translator version.
- If no Language Environment prologue was detected, but the prologue appears
to be that of a known, non-Language Environment compiler, one of the following
is included: C/C++, COBOL, or PL/I.
- Otherwise, ASSEMBLER is included to indicate that the program
is likely to be an assembler program.
Example: Output created by Load Module Analyzer
for an OS/VS COBOL load module
The following is a fragment of output that might appear for an
OS/VS COBOL load module:
1 5655-U27 Debug Tool Version 9 Release 1.2 Load Module Analyzer 2008/11/03 Page 15
Load Module TSCODEL.CICS.TEST.LOAD(CICK512)
CSECT Sg Offset Length Program-ID Trn-Date Program-Description
$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
|
This information center is powered by Eclipse technology. (http://www.eclipse.org)