VLM (View Load Module)

Purpose
List symbols in a load module.
Usage notes
Use this function to print a list of the symbols (CSECTs, common sections, entry points, and ZAPs) in a load module.
Options
The list can be sorted by symbol address (offset within module) or symbol name.
Related functions
None.
Figure 1. Syntax

1 VLM
1! INPUT=DDIN
1 INPUT=ddname
1  DSNIN=dsname?VOLSERIN=volser
1  MEMSTART=startstring MEMEND=endstring
1 MEMBER=member
3? MEMLIST=(+ ,view_mem)
1! SORTBY=ADDRESS
1 SORTBY=NAME
1! FUNCTION=LIST
1 FUNCTION=PRINT
1! DATEFORM=YYYYDDD
1 DATEFORM=YYMMDD
1! DATEMASK='YYYY.DDD'
1 DATEMASK='mask_value'
1! SUMMARY=NO
1 SUMMARY=YES
1! XLABEL=NO
1 XLABEL=YES
1! COPTION=NO
1 COPTION=YES
1! IDENTIFY=NO
1 IDENTIFY=YES
1! TEXT=NO
1 TEXT=YES
1! ZAP=NO
1 ZAP=YES
1! ATTR=NO
1 ATTR=YES

1? SCNAME=(+ ,comp_filter)
1! SCNAMEALL=NO
1 SCNAMEALL=YES

1? SCOPT=(+ ,copt_filter)
1! SCOPTALL=NO
1 SCOPTALL=YES

1? SCSECT=(+ ,csct_filter)
1! SCSECTALL=NO
1 SCSECTALL=YES

1? CSECTS=(+ ,csect_filter)
1! XCSECTS=NO
1 XCSECTS=YES
INPUT=ddname
Refers to a DD or TSO ALLOC statement. The default is DDIN for input, and DDOUT for output.
DSNIN=dsname
Defines the name of the input data set. If any DD statements are specified, they are not used. The name may include a member name or pattern in parenthesis. If the member is specified here, the associated Member parameter must be empty. To further describe the data set, use the appropriate keywords as shown in the syntax diagram. You can further describe this data set using:
VOLSER=volser
Volume serial number for a non-cataloged data set.
MEMBER=member
The name of a single member or pattern in a PDS load module.
MEMSTART=startstring
Is used to specify the start of a range of member names to be included in the processing. If MEMSTART is specified but MEMEND is omitted, all members of the PDS(E) from the startstring value onwards are included. startstring can have the same values, including wild cards, as for the member parameter of the MEMBER keyword.
MEMEND=endstring
Is used to specify the end of a range of member names to be included in the processing. If MEMEND is specified but MEMSTART is omitted, all members of the PDS(E) up to the endstring value onwards are included. endstring can have the same values, including wild cards, as for the memold parameter of the MEMOLD keyword.
MEMLIST
Provides a means of selecting members from a load library where no generic name pattern and no member name range has been specified. If the MEMLIST keyword is specified, only those members included in the MEMLIST arguments are processed. Members selected by the MEMBER=member that are not included in the MEMLIST arguments are not processed.
view_mem
The name of the member to be processed. Generic name masks are not allowed.
FUNCTION
The command that you want to execute:
LIST
Display the list (the default)
PRINT
Print the list
Note: The FUNCTION parameter is ignored in batch mode.
SORTBY
Sorts the list or print output by one of the following:
ADDRESS
Sort by the address of the symbol
NAME
Sort by the name of the symbol
DATEFORM
Specifies Gregorian or Julian format of dates:
YYYYDDD
Dates shown in the YYYY.DDD format
YYMMDD
Dates shown in YY/MM/DD format
DATEMASK=mask_value
Where the mask value is specified as a string (maximum 19 bytes) that contains picture characters that are supported by the Language Environment® date callable services. If the mask contains blanks, enclose it in quotation marks. All dates in the report follow this format.
Example mask         Result

YY/MM/DD             16/04/20
MM/DD/YYYY           04/20/2022
DD/MM/YYYY           20/04/2022
'Www Mmm DD, YYYY'   Wed Apr 20, 2022 
Note: If specified, DATEMASK takes precedence over DATEFORM. Use DATEMASK because DATEFORM only remains for compatibility with old JCL.
SUMMARY=NO
CSECT information is not suppressed.
SUMMARY=YES
CSECT information is suppressed.
XLABEL=NO
Section labels (type LD) are included in the report.
XLABEL=YES
Section labels (type LD) are excluded from the report.
COPTION=NO
Compile options are not shown in the report.
COPTION=YES
Compile options are shown in the report if they can be determined.
IDENTIFY=NO
User data from the IDENTIFY statement is not shown in the report.
IDENTIFY=YES
User data from the IDENTIFY statement is shown in the report.
TEXT=NO
Text data is not produced.
TEXT=YES
Text data is produced in dump format for each control section in the report.
ZAP=NO
ZAP data is not shown in the report.
ZAP=YES
ZAP data is shown in the report.
ATTR=NO
Programming language attributes for a CSECT are not shown in the report.
ATTR=YES
Programming language attributes for a CSECT, if available, are shown in the report.
SCNAME
Provides a way to include for processing load modules containing CSECTs that were created with selected compilers.
comp_filter
Specifies strings that will be used to find matching names or product IDs (PIDs) of the compilers used to create CSECTs in the load module.

To specify a filter containing lowercase characters, use a character string in the format c'string'. Filters can also be specified as hexadecimal strings in the format x'hex-digits'.

When multiple search strings are specified, by default any string that is found in a compiler name or PID is treated as a match for the load module. If you need all of the search strings to be found to constitute a match, specify YES for the SCNAMEALL option.

If other search arguments are specified with the SCOPT or SCSECT options, these must also be found in the load module to have it included in the report.

SCNAMEALL
Specifies whether all of the compiler name search strings provided in SCNAME must be found in a load module to constitute a match.
NO
If any of the compiler name search strings is found in a load module it is deemed a match.
YES
All of the compiler name search strings must be found in a load module to constitute a match.
SCOPT
Provides a way to include for processing load modules containing CSECTs that were created with selected compiler options.
copt_filter
Specifies strings that will be used to search for a match in the set of compiler options used to create CSECTs in the load module.

To specify a filter containing lowercase characters, use a character string in the format c'string'. Filters can also be specified as hexadecimal strings in the format x'hex-digits'.

When multiple search strings are specified, by default any of those strings found in the set of compiler options is treated as a match for the load module. If you need all of the search strings to be found to constitute a match, specify YES for the SCOPTALL option.

If other search arguments are specified with the SCNAME or SCSECT options, these must also be found in the load module to have it included in the report.

SCOPTALL
Specifies whether all of the compiler option search strings provided in SCOPT must be found in a load module to constitute a match.
NO
If any of the compiler option search strings is found in a load module it is deemed a match.
YES
All of the compiler option search strings must be found in a load module to constitute a match.
SCSECT
Provides a way to include for processing load modules containing CSECTs with selected names.
csct_filter
Specifies strings that will be used to search for a match in the names of the CSECTs in the load module. Strings can contain the * and % wildcard characters.

To specify a filter containing lowercase characters, use a character string in the format c'string'. Filters can also be specified as hexadecimal strings in the format x'hex-digits'.

When multiple search strings are specified, by default any of those strings found in the CSECT names is treated as a match for the load module. If you need all of the search strings to be found to constitute a match, specify YES for the SCSECTALL option.

If other search arguments are specified with the SCNAME or SCOPT options, these must also be found in the load module to have it included in the report.

SCSECTALL
Specifies whether all of the CSECT name search strings provided in SCSECT must be found in a load module to constitute a match.
NO
If any of the CSECT name search strings is found in a load module it is deemed a match.
YES
All of the CSECT name search strings must be found in a load module to constitute a match.
CSECTS
Provides a way to exclude or include CSECTs from the report. The XCSECTS option identifies whether the filters are used to exclude or include CSECTs.
csect_filter
A CSECT name filter identifying one or more CSECTs to be either included or excluded from the report. The wildcard characters * and % can be used to define a CSECT name pattern representing multiple CSECTs.
XCSECTS=NO
Use the CSECTS option to identify CSECTs to be included in the report.
XCSECTS=YES
Use the CSECTS option to identify CSECTs to be excluded from the report.
//VLM JOB (acct),'name' View Load Module
//*
//FMBAT    PROC
//FMBAT    EXEC PGM=FMNMAIN
//STEPLIB  DD DSN=FMNUSER.FMN310.TSTLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSABEND DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//         PEND
//*
//FMNMAIN EXEC FMBAT
//DDIN     DD DSN=FMNUSER.FMN310.TSTLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *
$$FILEM VLM MEMBER=FMNMAIN
$$FILEM EOJ
/*