Basic System Problem Analysis - August 2003

10
Process Management Structures: continued
Two other fields in the PIB worth noting are the PIB_TRAP_PC and PIB_TRAP_ISM.
These two fields are used for certain types of process traps. The PC (program counter) of
the trap and the interrupt stack marker (ISM) active at the time of the trap are loaded into
these fields. If the system should fail as the result of a process trap it may be possible to
use the command “INITNM” supplying the ISM pointer in PIB_TRAP_ISM to restore
the stack as it was at the time of the trap. Unfortunately it is often the case that the old
stack location has been overwritten by activity that transpired from the time of the trap to
the time of the abort. It is always worth a shot to see if something meaningful can be
retrieved. At the very least PIB_TRAP_PC can tell you what piece of code caused it, e.g.
DCS [the value of PIB_TRAP_PC]
Useful process management macros are PM_PTREE which is a more full-featured
version of the built-in DPTREE. Unlike DPTREE the PM_PTREE macro will display the
job or session number. This can be used as input to some of the UI macros
PM_FAMILY provides similar output as PM_PTREE but for the whole process family.
Note that you get a more complete list of the family tree using the JSMAIN pin. This will
give you the JSMAIN, the CI under it and any descendents under that. The
UI_SHOWJOB macro lists the JSMAIN pin for each job or session.
The PM_FPIB macro is an almost complete formatting of the PIB structure and can be
useful in describing the overall state of the process. The input to this macro is, oddly
enough a string so the macro would be called like this,
$1d6 ($21d) nmdat > pm_fpib('pin')
Or
$1d7 ($21d) nmdat > pm_fpib('21d')