AT ALLOCATE gives z/OS Debugger control when storage for a named controlled variable or aggregate is dynamically allocated by PL/I. When the AT ALLOCATE breakpoint occurs, the allocated storage has not yet been initialized; initialization, if any, occurs when control is returned to the program.
>>-AT--+--------------+--ALLOCATE--+-identifier-----------+-----> '-every_clause-' | .-,----------. | | V | | +-(----identifier-+--)-+ '-*--------------------' >--command--;--------------------------------------------------><
Usage notes
Examples
AT ALLOCATE area_name LIST ADDR (area_name);
DECLARE temp CHAR(80) CONTROLLED INITIAL('abc');
AT ALLOCATE temp;
BEGIN;
AT CHANGE temp;
BEGIN;
LIST (temp);
GO;
END;
GO;
END;
GO;
temp = 'The first time.';
temp = 'The second time.';
temp = 'The second time.';
When temp is allocated the value of temp has not yet been initialized. When it is initialized to 'abc' by the INITIAL phrase, the first AT CHANGE is recognized and 'abc' is listed. The three assignments to temp cause the value to be set again but the third assignment doesn't change the value. This example results in one ALLOCATE breakpoint and three CHANGE breakpoints.
Refer to the following topics for more information related to the material discussed in this topic.