/\ can be used for FFDC.\/ /\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/

#pragma exception_handler (UNEXPECTED_HDLR, ffdc_info, ð, _C2￿_MH_ESCAPE)

/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/

/\ Set the pointer to null, then try to increment. This

will

\/

/\

generate an MCH36ð1

error that will be trapped by the

 

\/

/\

unexpected handler.

 

 

\/

/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/ nulptr = NULL;

nulptr++;

#pragma disable_handler } /\ main \/ /\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/

/\

FUNCTION NAME:

UNEXPECTED_HDLR

\/

/\

 

 

\/

/\

FUNCTION:

Handle unexpected exception. This exception

\/

/\

 

handler is used to log the software error via

\/

/\

 

FFDC.

\/

/\

 

 

\/

/\

INPUT:

Interrupt handler information

\/

/\

 

 

\/

/\

OUTPUT:

NONE

\/

/\

 

 

\/

/\

EXCEPTIONS:

CPFxxxx - All unexpected CPF exceptions

\/

/\

 

MCHxxxx - All unexpected MCH exceptions

\/

/\

 

 

\/

/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/ void UNEXPECTED_HDLR(_INTRPT_Hndlr_Parms_T \errmsg)

{

typedef struct {

char obj_name[3ð]; char obj_lib[3ð]; char obj_type[1ð];

} obj_info_t;

typedef struct {

int data_offset;

int data_length; } data_info_t;

charpgm_suspected[1ð], msg_id[12], msg_key[4], print_job_log, data[2\(sizeof(char \))], \data_item, ile_mod_name[11];

intpoint_of_failure, num_items, num_objs;

data_info_t data_info[2];

obj_info_t obj_info[1];

6-4System API Programming V4R1

Page 132
Image 132
IBM Version 4 manual Unexpectedhdlr Function, Ffdc Input