It depends what you mean by failing program. If you mean "the name of the program associated with the RB that is in control", that is usuallypossible if it's a PRB (program RB, such as created due to ATTACH or LINK). A PRB will generally have RBCDE1 set to point to a CDE or LPDE. Other types of RB's will not. If RBCDE1 is not 0, it points to a CDE/LPDE, then CDNAME/LPDENAME within the CDE/LPDE contains the name of the routine.
The entry point address in the RB, with the "AMODE bits" stripped off, can, alternately, be used as the argument of the INADDR keyword of CSVQUERY. That is the extent of "program name" that the system knows about. That might only loosely be associated with what module actually blew up. Perhaps you called some service routine, for example, The time of error address can indicate what blew up or what issued an abend. You could use NUCLKUP and CSVQUERY for LPA and CSVQUERY for JPQ to try to determine the load module/program object/csect name associated with that address. Peter Relson z/OS Core Technology Design
