Calling a nonexistent subroutine

Figure 1 demonstrates the error of calling a nonexistent subroutine. This routine was compiled with the LIST, MAP, and GONUMBER compiler options. It was run with the TERMTHDACT(DUMP) runtime option to generate a traceback.

Figure 1. Example of calling a nonexistent subroutine (Enterprise PL/I)
5655-H31  IBM(R) Enterprise PL/I for z/OS       V3.R6.M0 (Built:20070119)                      2007.01.31 16:02:29   Page     1     
                     Options Specified                                                                                              
  Install:                                                                                                                          
  Command:                                                                                                                          
  Line.File Process Statements                                                                                                      
     1.0    *PROCESS  GONUMBER LIST S STG TEST MAP;                                                                                 
  Install:                                                                                                                          
5655-H31  IBM(R) Enterprise PL/I for z/OS       EXAMPLE1:  PROC  OPTIONS(                      2007.01.31 16:02:29   Page     2     
 Compiler Source                                                                                                                    
    Line.File                                                                                                                       
       2.0      EXAMPLE1:  PROC  OPTIONS(MAIN);                                                                                     
       3.0                                                                                                                          
       4.0          DCL Prog01 entry external;                                                                                      
       5.0                                                                                                                          
       6.0          On error                                                                                                        
       7.0            Begin;                                                                                                        
       8.0              On error system;                                                                                            
       9.0              Call plidump('tbnfs','Plidump called from error On-unit');                                                  
      10.0            End;                                                                                                          
      11.0                                                                                                                          
      12.0          Call prog01;        /* Call enternal program PROG01 */                                                          
      13.0                                                                                                                          
      14.0       End Example1;                                                                                                      
5655-H31  IBM(R) Enterprise PL/I for z/OS       EXAMPLE1:  PROC  OPTIONS(                      2007.01.31 16:02:29   Page     3     
                     Block Name List                                                                                                
    Number  Name                                                                                                                    
         1  EXAMPLE1                                                                                                                
         2  _ON_Begin_7_Blk_2                                                                                                       
5655-H31  IBM(R) Enterprise PL/I for z/OS       EXAMPLE1:  PROC  OPTIONS(                      2007.01.31 16:02:29   Page     4     
                                                                                                                                    
OFFSET OBJECT CODE        LINE#  FILE#    P S E U D O   A S S E M B L Y   L I S T I N G                                             
⋮         

Figure 2 shows the traceback and condition information sections from the dump.

Figure 2. Traceback and condition information of the Language Environment dump (Enterprise PL/I) (Part 1 of 2)
CEE3DMP V1 R12.0: Plidump called from error On-unit                                 01/26/10 4:02:32 PM            Page:    1  
ASID: 0065   Job ID: J0009417   Job name: LEDGSMP2   Step name: GO         UserID: BARBARA                                          
                                                                                                                                    
CEE3845I CEEDUMP Processing started.                                                                                                
PLIDUMP was called from statement number 9 at offset +000000D2 from _ON_Begin_7_Blk_2 with entry address 0B9008A8                   
                                                                                                                                    
Information for enclave EXAMPLE1                                                                                                    
                                                                                                                                    
  Information for thread 8000000000000000                                                                                           
                                                                                                                                    
  Traceback:                                                                                                                        
    DSA   Entry       E  Offset  Statement   Load Mod             Program Unit                   Service  Status                    
    1     IBMPDUMP    +000002AE              IBMPEV11                                            PQ78306  Call                      
    2     _ON_Begin_7_Blk_2                                                                                                         
                      +000000D2  9           EXAMPLE1             _ON_Begin_7_Blk_2                       Call                      
    3     IBMPEONR    +000002A2              IBMPEV11                                            PQ76426  Call                      
    4     IBMPEBOP    +000004DC              IBMPEV11                                            LE19BAS  Call                      
    5     CEEEV011    +00000132              IBMPEV11             CEEEV011                                Call                      
    6     CEEHDSP     +000017D0              CEEPLPKA             CEEHDSP                        D1908    Call                      
    7     EXAMPLE1    -0B9009A8              EXAMPLE1             _ON_Begin_7_Blk_2                       Exception                 
    8     IBMPMINV    +000004DE              IBMPEV11             IBMPMINV                                Call                      
    9     CEEEV011    +00000202              IBMPEV11             CEEEV011                                Call                      
    10    CEEBBEXT    +000001B6              CEEPLPKA             CEEBBEXT                       D1908    Call                      
                                                                                                                                    
    DSA   DSA Addr   E  Addr    PU Addr    PU Offset  Comp Date  Compile Attributes                                                 
    1     0C13DA70   0BBA4E38   0BBA4E38   +000002AE  20061214   LIBRARY   EBCDIC  HFP                                              
    2     0C13D990   0B9008A8   0B9008A8   +000000D2  20070131   ENT PL/I EBCDIC  HFP                                               
    3     0C13D7F8   0BBA7B98   0BBA7B98   +000002A2  20061214   LIBRARY   EBCDIC  HFP                                              
    4     0C13D628   0BBAF390   0BBAF390   +000004DC  20061214   LIBRARY   EBCDIC  HFP                                              
    5     0C13D598   0BB062E8   0BB062E8   +00000132  20061214   LIBRARY                                                            
    6     0C13A478   0B9C3238   0B9C3238   +000017D0  20061215   CEL                                                                
    7     0C13A3B8   0B9009A8   0B9008A8   -0B9009A8  20070131   ENT PL/I EBCDIC  HFP                                               
    8     0C13A180   0BBDD990   0BBDD990   +000004DE  20061214   LIBRARY                                                            
    9     0C13A0F0   0BB062E8   0BB062E8   +00000202  20061214   LIBRARY                                                            
    10    0C13A030   0B991208   0B991208   +000001B6  20061215   CEL                                                                
                                                                                                                                    
  Condition Information for Active Routines                                                                                         
    Condition Information for _ON_Begin_7_Blk_2 (DSA address 0C13A3B8)                                                              
      CIB Address: 0C13AD98                                                                                                         
      Current Condition:                                                                                                            
        CEE3201S The system detected an operation exception (System Completion Code=0C1).                                           
      Location:                                                                                                                     
        Program Unit: _ON_Begin_7_Blk_2                                                                                             
        Entry:        EXAMPLE1 Statement:  Offset: -0B9009A8                                                                        
        Possible Bad Branch:  Statement: 12  Offset: +000001AE                                                                      
      Machine State:                                                                                                                
        ILC..... 0002    Interruption Code..... 0001                                                                                
        PSW..... 078D0600 80000002 
        GPR0..... 00000000_0C13A3B8  GPR1..... 00000000_0B9008A8  GPR2..... 00000000_0B911768  GPR3..... 00000000_0B9009E2  
        GPR4..... 00000000_0C13A0D8  GPR5..... 00000000_00000000  GPR6..... 00000000_0B900DA0  GPR7..... 00000000_00000000          
        GPR8..... 00000000_0B911648  GPR9..... 00000000_00000008  GPR10.... 00000000_0C13A0B0  GPR11.... 00000000_0B900F1C          
        GPR12.... 00000000_0B9129B0  GPR13.... 00000000_0C13A3B8  GPR14.... 00000000_8B900A58  GPR15.... 00000000_00000000          
        FPC...... F0000000                                                                                                          
        FPR0..... 26100000  00000000            FPR1..... 00000000  00000000                                                        
        FPR2..... 18000000  00000000            FPR3..... 00000000  00000000                                                        
        FPR4..... 00000000  00000000            FPR5..... 00000000  00000000                                                        
        FPR6..... 00000000  00000000            FPR7..... 00000000  00000000                                                        
        FPR8..... 00000000  00000000            FPR9..... 00000000  00000000                                                        
        FPR10.... 00000000  00000000            FPR11.... 00000000  00000000                                                        
        FPR12.... 00000000  00000000            FPR13.... 00000000  00000000                                                        
        FPR14.... 00000000  00000000            FPR15.... 00000000  00000000                                                        
                                                                                                                                    
    Storage dump near condition, beginning at location: 00000000                                                                    
      +000000 00000000  Inaccessible storage.                                                                                       
    GPREG STORAGE:                                                                                                                  
      Storage around GPR0 (0C13A3B8)                                                                                                
       -0020 0C13A398  00000000 00000000 00000000 00000000  00000000 00000000 0C13A124 0C13A128 |................................|
       +0000 0C13A3B8  1013A12C 0C13A180 0C13A138 8B900A30  8BBA4490 0B000000 0C13A3B8 0B911768 |..........................t..j..|
       +0020 0C13A3D8  0B9009E2 0C13A0D8 00000000 0B900DA0  00000000 0B911648 00000000 00000000 |...S...Q.............j..........|
      Storage around GPR1 (0B9008A8)                                                                                                
       -0020 0B900888  36000301 0FCC0000 00240008 C5E7C1D4  D7D3C5F1 0B900DA0 0000016C 00000000 |............EXAMPLE1.......%....|
       +0000 0B9008A8  47F0F022 01C3C5C5 000000E0 00000330  47F0F001 58F0C31C 184E05EF 00000000 |.00..CEE.........00..0C..+......|
       +0020 0B9008C8  07F390E7 D00C58E0 D04C4100 E0E05500  C3144130 F03A4720 F01458F0 C28090F0 |.3.X.....<......C...0...0..0B..0|
      Storage around GPR2 (0B911768)                                                                                                
       -0020 0B911748  00000000 00000000 0B9095A8 0B909500  0B909450 00000000 00000106 00000000 |..........ny..n...m&............|
       +0000 0B911768  8B910E58 00000000 00000000 0B901410  00000000 8B9094C8 00030000 0003000B |.j....................mH........|
       +0020 0B911788  00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000 |................................|
Figure 3. Traceback and condition information of the Language Environment dump (Enterprise PL/I) (Part 2 of 2)
      Storage around GPR3 (0B9009E2)                                                                                                
       -0020 0B9009C2  05EF0000 000007F3 90E6D00C 58E0D04C  4100E0C0 5500C314 4130F03A 4720F014 |.......3.W.....<......C...0...0.|
       +0000 0B9009E2  58F0C280 90F0E048 9210E000 50D0E004  18DE5860 30AA5800 309E5000 D0984100 |.0B..0..k...&......-......&..q..|
       +0020 0B900A02  00005000 D09C5810 30A25010 D0A04110  60A85010 D0AC181D 5010D0A4 5000D0A8 |..&......s&.....-y&.....&..u&..y|
      Storage around GPR4 (0C13A0D8)                                                                                                
       -0020 0C13A0B8  0C13A0E0 0B911780 0C13A0D0 0C13A0D8  0C13A0D4 00000000 0B911768 00000000 |.....j.........Q...M.....j......|
       +0000 0C13A0D8  00000000 00000000 00000001 00000000  00000000 00000000 880062CC 0C13A030 |........................h.......|
       +0020 0C13A0F8  0C13A180 8BB064EC 0BBDD990 7D000008  0C13A0B0 0C13A0B0 8BB062E8 8B9912EC |..........R.'..............Y.r..|
      Storage around GPR5 (00000000)                                                                                                
       +0000 00000000    Inaccessible storage.                                                                                     
       +0020 00000020    Inaccessible storage.                                                                                     
       +0040 00000040    Inaccessible storage.                                                                                     
      Storage around GPR6 (0B900DA0)                                                                                                
       -0020 0B900D80  14380000 00000000 0B003203 FFFFFA50  FFFFFFB8 FFFFFAD0 00000000 02000000 |...............&................|
       +0000 0B900DA0  02020240 00000005 02020240 00000021  00000000 0B900DC0 00000000 0B900DC8 |... ....... ...................H|
       +0020 0B900DC0  00000000 0B900DF8 00000000 0B900DD0  00000000 00000000 31010001 00000000 |.......8........................|
      Storage around GPR7 (00000000)                                                                                                
       +0000 00000000    Inaccessible storage.                                                                                     
       +0020 00000020    Inaccessible storage.                                                                                     
       +0040 00000040    Inaccessible storage.                                                                                     
      Storage around GPR8 (0B911648)                                                                                                
       -0020 0B911628  00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000 |................................|
       +0000 0B911648  C3C5C5C5 C4C24040 C0000001 0B912870  0B911D50 00000000 00000000 00000000 |CEEEDB  .....j...j.&............|
       +0020 0B911668  0B911B58 0B911B88 8B914770 0B911198  00000000 00000000 0B911768 00000000 |.j...j.h.j...j.q.........j......|
      Storage around GPR9 (00000008)                                                                                              
       -0008 00000000    Inaccessible storage.                                                                                    
       +0018 00000020    Inaccessible storage.                                                                                    
       +0038 00000040    Inaccessible storage.                                                                                    
      Storage around GPR10(0C13A0B0)                                                                                              
       -0020 0C13A090  00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000 |................................|
       +0000 0C13A0B0  0B9914D0 0B900F1C 0C13A0E0 0B911780  0C13A0D0 0C13A0D8 0C13A0D4 00000000 |.r...........j.........Q...M....|
       +0020 0C13A0D0  0B911768 00000000 00000000 00000000  00000001 00000000 00000000 00000000 |.j..............................|
      Storage around GPR11(0B900F1C)                                                                                              
       -0020 0B900EFC  00220000 00000000 0B900E48 0B900AA0  00000000 00000000 00000000 01000001 |................................|
       +0000 0B900F1C  0B9009A8 0B901410 00000000 18AF47F0  A016C3C5 C5D6D7C9 D7C9F1F2 61F1F561 |...y...........0..CEEOPIPI12/15/|
       +0020 0B900F3C  F0F65830 20005830 30009547 30004770  A06895CE 30054770 A0365830 300847F0 |06........n.......n............0|
      Storage around GPR12(0B9129B0)                                                                                              
       -0020 0B912990  00000000 00000000 C3C5C5C3 C1C14040  00000000 00000000 000058C0 D0640CCC |........CEECAA  ................|
       +0000 0B9129B0  00000800 00000000 0C13A018 0C15A018  00000000 00000000 00000000 00000000 |................................|
       +0020 0B9129D0  00000000 00000000 0B90FA58 00000000  00000000 00000000 00000000 00000000 |................................|
      Storage around GPR13(0C13A3B8)                                                                                              
       -0020 0C13A398  00000000 00000000 00000000 00000000  00000000 00000000 0C13A124 0C13A128 |................................|
       +0000 0C13A3B8  1013A12C 0C13A180 0C13A138 8B900A30  8BBA4490 0B000000 0C13A3B8 0B911768 |..........................t..j..|
       +0020 0C13A3D8  0B9009E2 0C13A0D8 00000000 0B900DA0  00000000 0B911648 00000000 00000000 |...S...Q.............j..........|
      Storage around GPR14(0B900A58)                                                                                              
       -0020 0B900A38  9230D0B1 581030B2 180D5010 D0B45000  D0B84400 C1AC58F0 30B64400 C1C005EF |k.........&...&.....A..0....A...|
       +0000 0B900A58  4400C1C4 4400C1AC 4400C1B4 58F030BA  05EF4400 C1B858D0 D00458E0 D00C9826 |..AD..A...A..0......A.........q.|
       +0020 0B900A78  D01C051E 07070000 00100000 00180180  0B000000 0B900DA0 0B901438 0B9008A8 |...............................y|
      Storage around GPR15(00000000)                                                                                              
       +0000 00000000    Inaccessible storage.                                                                                    
       +0020 00000020    Inaccessible storage.                                                                                    
       +0040 00000040    Inaccessible storage.                                                                                    
⋮ 

To understand the traceback and debug this example routine, use the following steps:

  1. Find the Current® Condition message in the Condition Information for Active Routines section of the dump. The message is CEE3201S The system detected an Operation exception. For more information about this message, see z/OS Language Environment Runtime Messages.

    This section of the dump also provides such information as the name of the active routine and the current statement number at the time of the dump. The Location section indicates that the exception occurred at offset X'-0B9009A8' within entry EXAMPLE1 and that there may have been a bad branch from offset X'+000001AE' statement 12 within entry EXAMPLE1 .

  2. Locate statement 12 in the routine (Figure 1). This statement calls subroutine Prog01. The message CEE3201S, which indicates an operations exception, was generated because of an unresolved external reference.
  3. Check the linkage editor output for error messages.