The AMBLIST service aid
AMBLIST is useful and even essential in many cases. However, there
are a few limitations that you should be aware of.
- AMBLIST does not display all the internal control blocks of program objects. Therefore, AMBLIST's output may not be sufficient to diagnose a problem which requires knowledge of such information.
- If there is anything wrong with the module (program object or load module), AMBLIST may fail. Sometimes specifying OUTPUT=MODLIST in the AMBLIST job will help in this situation, since the XREF portion of the output is highly dependent on all the cross links between ESD and RLD being correct.
Here are three JCL examples for the invocation of AMBLIST:
//EXAMPLE1 EXEC PGM=AMBLIST,REGION=16M
//SYSPRINT DD SYSOUT=*
//LOADLIB1 DD DSN=APPS.PDSE,DISP=(SHR)
//SYSIN DD *
LISTLOAD DDN=LOADLIB1,MEMBER=(APP1)
/*
//EXAMPLE2 EXEC PGM=AMBLIST,REGION=16M
//SYSPRINT DD SYSOUT=*
//LOADLIB2 DD DSN=GAMES.PDSE,DISP=(SHR)
//SYSIN DD *
LISTLOAD DDN=LOADLIB2,MEMBER=(APP1),OUTPUT=MODLIST
/*
//EXAMPLE3 EXEC PGM=AMBLIST,REGION=16M
//SYSPRINT DD SYSOUT=*
//HFS1 DD PATH='/u/userid/main',PATHDISP=(KEEP,KEEP)
//SYSIN DD *
LISTLOAD DDN=HFS1,OUTPUT=MODLIST
/*
You can also invoke AMBLIST using the UNIX amblist
command. Here are three examples of invoking amblist from the UNIX shell:
echo " LISTLOAD MEMBER=(APP1)" | amblist "//'apps.pdse'" > APP1.both.amblist
echo " LISTLOAD MEMBER=APP1,OUTPUT=MODLIST" > amblist.ctl
amblist "//'apps.pdse'" > APP1.modlist.amblist < amblist.ctl
amblist main | grep 'ENTRY POINT' # where "main" is a program in the working
directory LISTLOAD OUTPUT=MODLIST # needs leading white space; output starts
as (each) control statement is entered ^D # EOF: in raw mode, type CTRL-D, in
OMVS ¢D, by default
For more information, see AMBLIST, in z/OS MVS Diagnosis: Tools and Service Aids.