Debug and maintenance tools
Debugging a dump does not always provide all necessary information. Sometimes you can locate a module name but cannot determine its maintenance level.
This chapter describes System Modification Program Extended (SMP/E) as the basic tool for installing and maintaining software in OS/390 or z/OS systems and subsystems. It controls the changes at the element level by:
Selecting the proper levels of elements to be installed from a large number of potential changes
Calling system utility programs to install the changes
Keeping records of the installed changes
In other cases you may find a load module name (LMOD) but cannot find the CSECT or member name. AMBLIST is a utility that provides the internal CSECTs of a load module. In addition you can list the object code.
This chapter describes some of the diagnostic aids that can be used via members in SYS1.PARMLIB. These facilities enable you to simplify the diagnostic data collection process by enabling you to prepare data collection parameters in advance to ensure that complex dump procedures do not have to be typed in when a problem arises and prompt, error free action is required. The SYS1.PARMLIB members that can simplify the diagnostic data collection process include:
IEAABD00
IEADMP00
IEADMR00
IEADMCxx
IEASLPxx
 
8.1 Using SMP/E
Figure 8-1 Using SMP/E
Using SMP/E
SMP/E is a tool designed to manage the installation of software products on your z/OS system and to track the modifications you make to those products. Usually, it is the system programmer's responsibility to ensure that all software products and their modifications are properly installed on the system. The system programmer also has to ensure that all products are installed at the proper level so all elements of the system can work together. At first, that might not sound too difficult, but as the complexity of the software configuration increases, so does the task of monitoring all the elements of the system.
The GIMSAMPU member in SYS1.SAMPLIB is a sample job to allocate the prime CSI and SMP/E operational data sets. The following sample job step, which is taken from the sample job in GIMSAMPU, allocates a CSI data set with enough space to have multiple target or distribution zones and then initializes the CSI with the zpool record.
To get a module level using SMP/E, you should select the SMP/E PRIMARY OPTION MENU. as shown in Figure 8-2 on page 231.
 
 
---------------------- SMP/E PRIMARY OPTION MENU ---------------- SMP/E 34.10
===> 3
 
0 SETTINGS - Configure settings for the SMP/E dialogs
1 ADMINISTRATION - Administer the SMPCSI contents
2 SYSMOD MANAGEMENT - Receive SYSMODs and HOLDDATA
and install SYSMODs
3 QUERY - Display SMPCSI information
4 COMMAND GENERATION - Generate SMP/E commands
5 RECEIVE - Receive SYSMODs, HOLDDATA and
support information
6 MIGRATION ASSISTANT- Generate Planning and Migration Reports
7 ORDER MANAGEMENT - Manage ORDER entries in the global zone
D DESCRIBE - An overview of the dialogs
T TUTORIAL - Details on using the dialogs
W WHAT IS NEW - What is New in SMP/E
Specify the name of the CSI that contains the global zone:
SMPCSI DATA SET ===> 'ZOSR17.GLOBAL.CSI'
(Leave blank for a list of SMPCSI data set names.)
Specify YES to have DD statements for SYSOUT and temporary
data sets generated. Specify NO, to use DDDEFs.
Generate DD statements ===> NO
Licensed Materials - Property of IBM
5694-A01 5655-G44
(C) Copyright IBM Corp. 1982, 2005
Figure 8-2 Get the module level and load module information
Enter the SMPCSI data set name in Figure 8-2 and select Option 3 Query as shown in Figure 8-3.
                             QUERY SELECTION MENU
===> 2
1 CSI QUERY - Display SMPCSI entries
2 CROSS-ZONE QUERY - Display status of an entry in
all zones
3 SOURCEID QUERY - Display SOURCEIDs for specified zone
D DESCRIBE - Overview of using QUERY
T TUTORIAL - Information on using QUERY
To return to the SMP/E primary option menu, enter END .
Figure 8-3 Get the module level and load module information
Now select 2 Cross-Zone Query as shown in Figure 8-3 and Figure 8-5 on page 233.
8.2 Find a load module
Figure 8-4 Steps to find a load module
Find a load module
The SMP/E dialogs provide you with an online method of system management, software inventory, data base inquiries, and guidance. For example, with the Query dialogs, you can look up information in the CSI data set. The Query dialogs are one of the easiest and most direct methods you can use to obtain the content and status of any SYSMOD that has been processed by SMP/E. You can use the Query dialogs to display an entry in either a specific zone (CSI query) or in all zones (cross-zone query).
From the QUERY SELECTION MENU shown in Figure 8-3 on page 231, Select Option 2, which then displays the panel shown in Figure 8-5 on page 233.
 
CSI CROSS-ZONE QUERY - ENTRY SELECTION Row 1 to 5 of 5
Entry Type: MOD
Entry Name: ATRFMQUR
To return to the previous panel, enter END .
To select an entry from a zone, enter S next to the zone.
* - Entry not found in zone.
** - Zone could not be allocated or is not initialized.
-------------------- Status -----------------------------------
ZONE FMID RMID LASTUPD DISTLIB UMID(S)
-------- -------- -------- -------- -------- -------- -------- --------
GLOBAL *
MVSDWAS *
s MVSDZN HBB7770 HBB7770 HBB7770 AOSC5
MVSTWAS *
MVSTZN HBB7770 HBB7770 HBB7770 AOSC5
******************************* Bottom of data********************************
Figure 8-5 Get the module level and load module information
Enter the entry type you would like to get information from. In our case, MOD (module), and then add the module name, ATRFMQUR, as shown in Figure 8-5. To get load module-related information, select the target zone, in our case MVSD700, place an S as shown in Figure 8-5, and press Enter.
 
CSI QUERY - MOD ENTRY Row 1 to 2 of 2
To return to the previous panel, enter END .
Primary Command: FIND
Entry Type: MOD Zone Name: MVSDZN
Entry Name: ATRFMQUR Zone Type: DLIB
FMID: HBB7770 LASTUPD: HBB7770 TYPE=ADD
RMID: HBB7770 DISTLIB: AOSC5
Link-edit Parameters:
STD
-------- -------- -------- -------- -------- -------- --------
LMOD ATRAMPVX
CSECTS ATRFMQUR
******************************* Bottom of data *******************************
Figure 8-6 Get module level and load module information
8.3 AMBLIST job to get LMOD and source information
Figure 8-7 AMBLIST to get load module CSECTs and source listed
Using AMBLIST
AMBLIST is a very powerful utility that is easy to handle. It provides useful debug and diagnosis information. Use AMBLIST when you need information about the content of load modules and program objects or when you have a problem related to the modules on your system. AMBLIST is a program that provides lots of data about modules in the system, such as a listing of the load modules, map of the CSECTs in a load module or program object, list of modifications in a CSECT, map of modules in the LPA, and a map of the contents of the DAT-on (dynamic address translation) nucleus.
These formatted listings can help you diagnose problems related to modules as they currently exist on your system. AMBLIST is a batch job that runs in problem state. AMBLIST provides the following problem data:
Formatted listing of an object module
Map of the control sections (CSECTs) in a load module or program object
List of modifications to the code in a CSECT
Map of all modules in the link pack areas (LPA)
Map of the contents of the DAT-on nucleus
The map no longer represents the IPL version and message AMB129I will be issued.
If you are analyzing a dump, for example, and can only get the load module name and not any CSECT name, you can use the AMBLIST JCL to get CSECT and, if necessary, source information. You need to know in which SYSLIB data set the load module resides. The following JCL shows an AMBLIST request for load Unix System Service module BPXINPVT, which should be in the SYS1.LINKLIB data set.
Obtaining AMBLIST output
To obtain AMBLIST output, you must code JCL, providing control statements as input to the job. These control statements dictate what type of information AMBLIST produces, as shown in Figure 8-8. A snapshot of the output is shown in Figure 8-9.
//HILGAA JOB 7904,HILGER,MSGLEVEL=(1,1),MSGCLASS=K,CLASS=A,
// NOTIFY=HILG3
//AMBLIST EXEC PGM=AMBLIST,REGION=0M
//*YSLIB DD DSN=SYS1.CMDLIB,DISP=SHR
//*YSLIB DD DSN=CEE.SCEELPA,DISP=SHR
//*YSLIB DD DSN=CEE.SCEERUN,DISP=SHR
//*YSLIB DD DSN=IOE.SIOELMOD,DISP=SHR
//*YSLIB DD DSN=SYS1.SCEELKED,DISP=SHR
//SYSLIB DD DSN=SYS1.LINKLIB,DISP=SHR
//*YSLIB DD DSN=SYS1.LOTUS.LPALIB,DISP=SHR
//*YSLIB DD DSN=SYS1.LPALIB,DISP=SHR
//*YSLIB DD DSN=TCPIP.SEZALINK,DISP=SHR
//*YSLIB DD DSN=SYS1.MIGLIB,DISP=SHR
//*YSLIB DD DSN=ISP.V4R4M0.SISPLPA,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
LISTLOAD MEMBER=(BPXINPVT),OUTPUT=XREF
Figure 8-8 AMBLIST JCL job
MEMBER NAME: BPXINPVT
LIBRARY: SYSLIB
** ALIASES ** ENTRY POINT AMODE
BPXBDMI 001E80F8 31
BPXBDSI 001F1EF0 31
BPXFCSIN 002110E8 31
BPXFDNIN 002128F0 31
BPXFPINT 00214BE8 31
BPXFSLIT 00172228 31
BPXFSLM 00153E90 31
BPXFTCLN 00016858 31
 
CONTROL SECTION
LMOD LOC NAME LENGTH TYPE
00 BPXINPVT 3728 SD
3728 BPXTAVNO 4BD8 SD
8300 BPXPTCRE 25C8 SD
A8C8 P8CRECPY 6E SD
A938 P8CRERET 52 SD
A990 BPXNXFST 4460 SD
Figure 8-9 AMBLIST output
LISTLOAD control statement
Use the LISTLOAD control statement to obtain a listing of load module or program objects; see Figure 8-10 on page 236. The listed data can help you verify why certain link-edit errors might have occurred.
LISTLOAD
  [OUTPUT={MODLIST|XREF|BOTH}]
  [,TITLE=('title',position)]
  [,DDN=ddname]
  [,MEMBER={member|(member1,membern...)}]
  [,RELOC=hhhhhhhh]
  [,ADATA={YES|NO}]
Figure 8-10 LISTLOAD control statement to obtain a listing of load module or program objects
Obtaining AMBLIST output for modules located in HFS and zFS
If an AMBLIST is required from a module that is located in an HFS or ZFS date set, we need to provide the data set name and the directory string where the file, including the module, is located; see Figure 8-11 and Figure 8-12.
//PHILGER JOB (999,POK),'JOB',CLASS=A,REGION=0M,
// MSGCLASS=T,TIME=NOLIMIT,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//AMBLIST EXEC PGM=AMBLIST,REGION=6000K
//SYSLIB DD DSN=HFS.ZOSR1D.Z1DRB1.ROOT,DISP=SHR
//HFS1 DD PATH='/Z1DRB1/bin/IBM/FOMFTSO'
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
LISTLOAD DDN=HFS1,OUTPUT=XREF
//*LISTLOAD DDN=HFS1,OUTPUT=MODLIST
Figure 8-11 AMBLIST JCL to get listing from an LMOD located in a file
** SEGMENT MAP TABLE **
CLASS SEGMENT OFFSET LENGTH LOAD TYPE ALIGNMENT
B_TEXT 1 0 658A INITIAL CAT DOUBLE WORD
** NUMERICAL MAP OF PROGRAM OBJECT **UNIX**
--------------------------------------------------------------------------------
RESIDENT CLASS: B_TEXT
CLAS LOC ELEM LOC LENGTH TYPE ALIGNMENT NAME
0 7C ED DOUBLE WORD CEESTART
80 C ED DOUBLE WORD §§PPA2
90 C ED DOUBLE WORD EDCOEXTS
A0 46E0 ED DOUBLE WORD FOMFTSOC
Figure 8-12 AMBLIST output
8.4 IEAABD00, IEADMP00 and IEADMR00 members
Figure 8-13 SYS1.PARMLIB members for abend dumps
Parmlib members for abend dumps
IEAABD00 contains IBM defaults and/or installation-assigned parameters for ABDUMP, for use when an abend dump is written to a SYSABEND data set.
IEADMP00 contains IBM defaults and installation parameters for ABDUMP for use when an abend dump is written to a SYSUDUMP data set.
IEADMR00 contains IBM defaults and installation parameters for ABDUMP for use when an abend dump is written to a SYSMDUMP data set.
These members contain the SDATA and PDATA options that will be used when an abend dump is triggered.
 
Note: The ABDUMP initialization routine reads IEAABD00 to get ABDUMP parameters. If during initialization, IEAABD00 is invalid or cannot be located, the operator is notified. No prompting occurs. If both valid and invalid options are included in the member, or a syntax error is encountered, a message lists the valid options that were accepted before the error occurred.
SDATA options
Following are the SDATA options:
ALLSDATA All the following options are automatically specified (except ALLVNUC and NOSYM).
The following parameters request a dump of specific SDATA areas, as indicated:
ALLVNUC Entire virtual nucleus. SQA, LSQA, and the PSA are included.
NOSYM No symptom dump is to be produced.
SUM Requests that the dump contain summary data, which includes the following:
 – Dump title.
 – Abend code and PSW at the time of the error.
 – If the PSW at the time of the error points to an active load module: (1) the name and address of the load module, (2) the offset into the load module indicating where the error occurred, and (3) the contents of the load module.
 – Control blocks related to the failing task.
 – Recovery termination control blocks.
 – Save areas.
 – Registers at the time of the error.
 – Storage summary consisting of 1K (1024) bytes of storage before and 1K bytes of storage after the addresses pointed to by the registers and the PSW. The storage will be printed only if the user is authorized to obtain it, and, when printed, duplicate addresses will be removed.
 – System trace table entries for the dumped address space.
NUC Read/write portion of the control program nucleus. SQA, LSQA, and the PSA are included.
PCDATA Program call information for the task being dumped.
SQA The system queue area.
LSQA Local system queue area for the address space. If storage is allocated for subpools 229, 230 and 249, they will be dumped for the current task.
SWA Scheduler work area used for the failing task.
CB Control blocks related to the failing task.
ENQ Global resource serialization control blocks for the task.
TRT System trace table and GTF trace, as available.
DM Data management control blocks (DEB, DCB, IOB) for the task.
IO IOS control blocks (UCB, EXCPD) for the task.
ERR Recovery termination control blocks (RTM2WA, registers from the SDWA, SCB, EED) for the task.
8.5 PDATA options (only valid for IEADMP00)
Figure 8-14 The PDATA options for ABEND dumps
PDATA options for abend dumps
Following are the PDATA options:
ALLPDATA All the following options are automatically specified.
The following parameters request dump of specific PDATA areas, as indicated:
PSW Program status word at entry to abend.
REGS Contents of general registers at entry to abend.
SA or SAH SA requests save area linkage information and a backward trace of save areas. This option is automatically selected if ALLPDATA is specified.
SAH Requests only save area linkage information.
JPA Contents of the job pack area that relate to the failing task. These include module names and contents.
LPA Contents of the LPA related to the failing task. These include module names and contents. Also includes active SVCs related to the failing task.
ALLPA Contents of both the job pack area and the LPA, as they relate to the failing task, plus SVCs related to the failing task.
SPLS User storage subpools (0-127, 129-132, 244, 251, and 252) related to the failing task.
SUBTASKS Problem data (PDATA) options requested for the designated task will also be in effect for its subtasks.
8.6 SDATA and PDATA recommendations
Figure 8-15 SDATA and PDATA options for dumps and SLIP traps
SDATA and PDATA options
The following SDATA and PDATA parameters will provide you and IBM with sufficient data to solve most problems.
SDATA=(CSA,RGN,PSA,SQA,LSQA,TRT,SUM),
PDATA=(PSW,REGS,SPLS,ALLPA,SA)
IEADMCxx (dump command parameter library)
IEADMCxx enables you to supply DUMP command parameters through a parmlib member. It enables the operator to specify the collection of dump data without having to remember and identify all the systems, address spaces, and data spaces involved.
This parmlib enables you to specify lengthy DUMP commands without having to reply to multiple writes to operator with reply (WTORs). Any errors in an original specification may be corrected and the DUMP command respecified.
IEADMCxx is an installation-supplied member of SYS1.PARMLIB that can contain any valid DUMP command. A dump command may span multiple lines and contain system static and (DUMP command SYMDEF defined) symbols and comments.
Figure 8-16 on page 241 shows a sample of what might be included in a SYS1.PARMLIB(IEADMCxx) member. As you can see, to key in this data when we need to capture a dump would be time-consuming and prone to errors. This simplifies the process and when you need to capture a dump you can refer to the IEADMCxx parmlib member with the dump command. For example:
DUMP TITLE=(CICS Looping), PARMLIB=CI
where CI is the IEADMCxx parmlib member using the suffix, SYS1.PARMLIB(IEADMCCI).
The title is the name (1 to 100 characters) you want the dump to have. This title becomes the first record in the dump data set. COMM= and TITLE= are synonyms.
You can also use the parmlib parameter as follows:
DUMP COMM=(..........),PARMLIB=(xx)
TITLE=(DYNDUMP FOR IMS810I,IVP8IRC1,IVP8IDL1,IVP8IM11,
IVP8IM12,IVP8IM13,RRS,APPC)
JOBNAME=(IMS810I,IVP8IRC1,IVP8IDL1,IVP8IM11,IVP8IM12,IVP8IM13,
RRS,APPC)
DSPNAME=('APPC'.*,'RRS'.*)
SDATA=(PSA,SQA,LSQA,RGN,LPA,TRT,CSA,SWA,SUM,ALLNUC,GRSQ)
Figure 8-16 IEADMCxx example
IEASLPxx (SLIP commands)
Use the IEASLPxx parmlib member to contain SLIP commands. The commands can span multiple lines; the system processes the commands in order.
We recommend that you move any SLIP commands in the COMMNDxx and IEACMDxx parmlib members into a IEASLPxx parmlib member. By using IEASLPxx to contain your SLIP commands, you avoid restrictions found in other parmlib members.
Figure 8-17 shows a sample of what may be contained in SYS1.PARMLIB(IEASLPxx). In this example we are actually suppressing dumps.
SLIP SET,C=013,ID=X013,A=NOSVCD,J=JES2,END
SLIP SET,C=213,ID=X213,A=NOSVCD,END
SLIP SET,C=028,ID=X028,A=NOSVCD,END
SLIP SET,C=058,ID=X058,A=NODUMP,DATA=(15R,EQ,4,OR,15R,EQ,8,OR,
15R,EQ,C,OR,15R,EQ,10,OR,15R,EQ,2C,OR,15R,EQ,30,OR,
15R,EQ,3C),END
SLIP SET,C=0E7,ID=X0E7,A=NOSVCD,END
SLIP SET,C=0F3,ID=X0F3,A=NODUMP,END
SLIP SET,C=13E,ID=X13E,A=NODUMP,END
SLIP SET,C=1C5,RE=00090004,ID=X1C5,A=NODUMP,END
SLIP SET,C=222,ID=X222,A=NODUMP,END
SLIP SET,C=322,ID=X322,A=NODUMP,END
SLIP SET,C=33E,ID=X33E,A=NODUMP,END
SLIP SET,C=422,ID=X422,A=NODUMP,END
SLIP SET,C=47B,DATA=(15R,EQ,0,OR,15R,EQ,8),ID=X47B,A=NODUMP,END
SLIP SET,C=622,ID=X622,A=NODUMP,END
Figure 8-17 SYS1.PARMLIB(IEASLPxx)
Figure 8-18 on page 242 shows a much more complex SLIP that will capture dumps in multiple MVS images, when a certain message, IXC521I, is generated and Register 5 contains some specific data. It will dump the Console address space, the MSOPS address space, and also the XCFAS address space.
SLIP SET,MSGID=IXC521I,
DATA=(5R?+0,EQ,C8C1E240,+4,EQ,D9C5C1C3),
ACTION=SVCD,JOBLIST=(CONSOLE,XCFAS),
DSPNAME=('XCFAS'.IXCDSL01),
REMOTE=(SYSLIST=(SC55,SC66),
JOBLIST=(CONSOLE,MSOPS,XCFAS),DSPNAME=('XCFAS'.IXCDSL01)),
SDATA=(NUC,CSA,GRSQ,LPA,LSQA,PSA,RGN,SQA,SWA,TRT),
MATCHLIM=3,ID=RON1,END
Figure 8-18 SLIP example with increased complexity
The DATA option specified in the SLIP means the following:
Take the address from register 5 and jump to this area. Check at offset 0 whether it shows C8C1E240, and in addition offset 4 should show the value D9C5C1C3. If this is true, take a dump.
The SLIP is activated by issuing the SET SLIP=xxxx command, where xxxx is the IEASLPxx parmlib member you want to activate.
SLIP can be disabled by issuing the SLIP MOD,ID=xxxx,DISABLE command.
To enable a slip, issue the following command:
SLIP MOD,ID=xxxx,EN
 
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.152.198