Previous Topic: Valid BreakpointsNext Topic: Command Considerations


Program Currency

Determines Abend Trapping

When a task abends or when a program checks occurs, the setting of program currency determines whether or not the debugger traps the abend and transfers control to you.

DC/UCF and Debugger Currency

The DC/UCF system assigns currency on the basis of the most recent program to have been given control with #LINK or #XCTL program control services.

The debugger assigns currency according to these rules:

Sample Program Structure

The following examples illustrate how program currency can affect whether the DC/UCF system passes control to the debugger. Each of the examples is based on the sample program structure:

Sample Program Structure for Examples

Example 1

During the setup phase, you define Programs A, B, and C to the debugger. When the program is executing, a program check occurs in Program B.

These currencies are now in effect:

You receive control under the debugger because Program B, one of the programs defined to the debugger, contains the address of the interrupt.

Example 2

During the setup phase, you define Program A to the debugger. When the program is executing, a program check occurs in Program B.

These currencies are now in effect:

You receive control under the debugger because the current DC/UCF program has also been defined to the debugger.

Example 3

During the setup phase, you define Program C to the debugger. When the program is executing, a program check occurs in Program B.

These currencies are now in effect:

You do not receive control under the debugger because no debugger currency can be set. The program abends without an interruption from the debugger, and the system issues a standard abend message.

Example 4

During the setup phase, you define Program A to the debugger. During execution, Program B branches into unknown storage and a program check occurs.

These currencies are now in effect:

You receive control under the debugger because the current DC/UCF program has also been defined to the debugger.