CEEURTB — produce a user routine traceback

The CEEURTB CWI generates a traceback of user routines from the point of the call to CEEURTB. The traceback consists of, where determinable, entry name, program unit name, statement number, offset and entry address. The output of the traceback is directed to the MSGFILE. When complete, execution continues.

Syntax

void (*CEECELVMURTB) (levels, [fc]);
INT4      *levels;
FEED_BACK *fc;
CEECELVMURTB
Call this CWI interface as follows:
L     R15,CEECAACELV-CEECAA(,R12)   Address of CAA in R12
L     R15,3368(,R15)
BALR  R14,R15
levels (input)
A fixed-binary (31) number representing the maximum number of levels of user routines to trace back. If levels is 0, then all user routines are traced back.
fc (output/optional)
A 12-byte feedback code passed by reference. If specified as an argument, feedback information (a condition token) is returned to the calling routine. If omitted, and the requested operation was not successfully completed, the condition is signaled to the condition manager.

The following symbolic conditions can result from this service:

Condition  
CEE000 Severity 0
Msg_No N/A
Message The service completed successfully.
CEE30Q Severity 3
Msg_No 3098
Message The user routine traceback could not be completed.
Explanation The user routine traceback could not be completed due to an error detected in tracing back through the DSA chain.
Programmer Response Attempt to perform problem determination through the use of a dump.
System Action The user routine traceback is not completed.
Usage Notes:
  1. levels refers to the number of program unit level qualifiers within an application. For example, nested PL/I begin blocks are treated as one level.
  2. If levels is 1, the format of the traceback is as follows. The traceback is in text; the traceback stops at the first program unit level qualifier. For example, nested PL/I begin blocks are treated as one level.
    from entry BEGIN BLOCK at entry offset +00000082 at address 00020D70
    from entry EXT_AB at entry offset +00000036 at address 00020D78
    from entry EXT_01 at entry offset +00000040 at address 00020C58
    from program unit DUMP03 at entry LABEL_E: BEGIN at statement 22 at offset
    +00000082 at address 00020598
  3. If levels is 0 (complete traceback) or greater than 1, the traceback is generated in a table format for the requested number of levels. The format of the traceback is as follows.
    traceback of user routines:
    Program Unit  Entry           Statement PU Offset Entry Offset Address
                  BEGIN BLOCK               +00000D70   +00000082  00020D70
                  EXT_AB                    +00000D28   +00000036  00020D28
                  EXT_01                    +00000C58   +00000040  00020C58
    DUMP03        LABEL_E: BEGIN
                                         22 +00000598   +00000082  00020598
    DUMP03        E                      21 +000004F8   +00000082  000204F8
    DUMP03        D                      17 +00000454   +00000086  00020454
    DUMP03        %BLOCK5                14 +000003AC   +0000008E  000203AC
    DUMP03        C                      13 +00000318   +0000007E  00020318
    DUMP03        B                      11 +0000020C   +000000EE  0002020C
    DUMP03        A                       6 +0000015C   +00000092  0002015C
    DUMP03        DUMP03                  4 +000000AC   +000000AC  000200AC