Structure of a SLIP SET command

In SLIP SET traps, you can indicate what kinds of events you want trapped and the system conditions for the trap, then specify what action the system is to take when the event occurs during the specified conditions.

Events: The kinds of events you can intercept are:
  • Error event: This is also called a non-PER event. The trap is set by the command:
    SLIP SET[,options],END
    The error events are:
    • An ABEND macro issued by a task
    • Dynamic address translation error
    • Software error caused by a machine check
    • Abnormal end of an address space
    • Paging I/O error
    • Program check interruption
    • Restart interruption
    • SVC error
    Note: SLIP does not trap errors that are intercepted by SPIE or ESPIE routines.
  • Program event recording (PER) event: The PER events are:
    • Instruction fetch: The trap is set by the command:
      SLIP SET,IF[,options],END
    • Successful branch: The trap is set by the command:
      SLIP SET,SBT[,options],END
    • Storage access: A storage access trap can be:
      • A storage alteration trap set by one of these commands:
        SET SET,SA[,options],END
        SET SET,SAS[,options],END
      • A zero address detection trap set by this command:
        SET SET,ZAD[,options],END
    Note:
    1. The parameters IF, SA, SAS, SBT, and ZAD are positional. If you specify any one of them, it must directly follow a comma immediately after SLIP SET.
    2. It is not possible to set a SLIP trap for the storage alteration of a hiperspace.

Conditions: The error and PER events you can trap are quite general, and you probably would not want to take an action each time such an event occurs. To narrow the scope of SLIP processing, you can qualify the event by requesting exactly what condition the system must be in when the error or PER event happens in order for the action to occur. The system checks each specified condition to see if it corresponds to the system condition at the time of the error or PER interruption.

The conditions you specify serve as filters to screen out those events in which you are not interested. A match for the trap occurs when the specified conditions are the same as the system conditions. A no-match occurs when the specified conditions are not the same as the system conditions. Only when all the conditions you specify match the system conditions will your action be taken.

Among the conditions you can specify are:
  • The system mode at the time of the error or PER interruption
  • A user or system completion code and reason code associated with an error
  • The name of a job that must be in control at the time of the error or PER interruption
  • The name of the job step program that must be in control at the time of the error or PER interruption
  • The module name, entry point name, or address range where the error or PER interruption must occur
  • The address space that must be in control at the time of the error or PER interruption
  • The contents of specific storage locations and/or registers at the time of the error or PER interruption
If you omit a particular condition, the system does not check for that condition.
Actions: When one of these events occurs, you can take one of the following actions:
  • Request an SVC dump tailored specifically to your needs
  • Cause a system trace record to be written (PER only)
  • Cause a generalized trace facility (GTF) trace record to be written
  • Cause a logrec record to be written
  • Put the system in a wait state
  • Suppress system or problem program dumps (for error events only)
  • Cause the recovery routines of the interrupted program to get control (PER only)
  • Ignore the event
  • Start of changeIssue system commandsEnd of change

You can also request an additional action to be taken before or after the main action.