Language Environment debugger interfaces area

The debugger interfaces area (DIA), as shown in the code example below, is a control block that is allocated in the key of the caller when Language Environment is initialized. The DIA is pointed to by CEELCA_DIA. For mapping information on the DIA, see the SCEEMAC(CEEDIA) data set.

1   CEEDIA

      OFFSET   OFFSET
     DECIMAL     HEX  TYPE        LENGTH  NAME (DIM)     DESCRIPTION
    ======== ======== ========= ========  ============== ===============================
           0      (0) STRUCTURE        0  CEEDIA         DIA Mapping
           0      (0) CHARACTER      680   CEEDIALEN(0)  Length used for dwrd filler
           0      (0) CHARACTER        4   CEEDIAEYE     eyecatcher 'DIA '
           4      (4) SIGNED           4   CEEDIAVER     version
           8      (8) CHARACTER       68   CEEDIAHOOKS(0)
                                                         Hook control words
           8      (8) CHARACTER        4   CEEDIAALLOC   ALLOCATE descr. Built
          12      (C) CHARACTER        4   CEEDIASTATE   New statement begins
          16     (10) CHARACTER        4   CEEDIAENTRY   Block entry
          20     (14) CHARACTER        4   CEEDIAEXIT    Block exit
          24     (18) CHARACTER        4   CEEDIAMEXIT   Multiple block exit
          28     (1C) CHARACTER       32   CEEDIAPATHS(0)
                                                         PATH hooks
          28     (1C) CHARACTER        4   CEEDIALABEL   At a label constant
          32     (20) CHARACTER        4   CEEDIABCALL   Before CALL
          36     (24) CHARACTER        4   CEEDIAACALL   After CALL
          40     (28) CHARACTER        4   CEEDIADO      DO block starting
          44     (2C) CHARACTER        4   CEEDIAIFTRUE  True part of IF
          48     (30) CHARACTER        4   CEEDIAIFFALSE False part of IF
          52     (34) CHARACTER        4   CEEDIAWHEN    WHEN group starting
          56     (38) CHARACTER        4   CEEDIAOTHER   OTHERWISE group
          60     (3C) CHARACTER        4   CEEDIACGOTO   GOTO hook for C
          64     (40) CHARACTER        4   CEEDIARSVDH1  Reserved hook
          68     (44) CHARACTER        4   CEEDIARSVDH2  Reserved hook
          72     (48) CHARACTER        4   CEEDIAMULTEVT Multiple Event Hook
          76     (4C) BITSTRING        4   CEEDIAMEVMASK Multiple Event Hook Mask
          80     (50) ADDRESS          8   CEEDIAHLLEXIT HLL Exit
          88     (58) CHARACTER       80   CEEDIADBG(0)  CodeDT CAA Debug Fields
          88     (58) ADDRESS          8   CEEDIADBGCTLA PL/I-CodeDT Interface
          96     (60) ADDRESS          8   CEEDIADBGVIEW Bas-View CodeDT CB
         104     (68) ADDRESS          8   CEEDIADBGGOTO Gto_Goto_Rec CodeDT CB
         112     (70) ADDRESS          8   CEEDIADBGMFET DT Module Fetch Struct
         120     (78) ADDRESS          8   CEEDIABOSADDR Bas_BOSS_Control DT CB
         128     (80) CHARACTER       16   CEEDIAOHPSW   PSW for Overlay Hooks
         144     (90) ADDRESS          8   CEEDIAOHRESUME
                                                         Overlay Hooks Resume
         152     (98) CHARACTER        8   CEEDIADBGFLAG(0)
                                                         CodeDT Flags Area
         152     (98) BITSTRING        1   CEEDIADBGFLG0 CodeDT Flag Byte 0
         153     (99) BITSTRING        1   CEEDIADBGFLG1 CodeDT Flag Byte 1
         154     (9A) BITSTRING        1   CEEDIADBGFLG2 CodeDT Flag Byte 2
         155     (9B) BITSTRING        1   CEEDIADBGFLG3 CodeDT Flag Byte 3
         156     (9C) BITSTRING        1   CEEDIADBGFLG4 CodeDT Flag Byte 4
         157     (9D) CHARACTER        3   *             Reserved
         160     (A0) SIGNED           4   CEEDIADBGINVS Recursive CodeDT Invoc.
         164     (A4) CHARACTER        4   *             Reserved

              CEEDIAHOOK Code to Pass Control to Hook Handler: STG
              R8,2096(4) LLGT R8,PSALAA-PSA(,0) USING CEELAA,R8 LG
              R8,CEELAA_LCA64 DROP R8 USING CEELCA,R8 LLGT R8,CEELCA_DIA
              DROP R8 USING CEEDIA,R8 STMG 0,15,CEEDIA_R0 LG R6,DIA_DIMA
              LMG R5,R6,0(R6) BASR R7,R6 NOPR 0
    ====================================================================================
         168     (A8) BITSTRING       46   CEEDIAHOOK    Code to pass control
         216     (D8) ADDRESS          8   CEEDIADIMA    A(debugger entry)
      OFFSET   OFFSET
     DECIMAL     HEX  TYPE        LENGTH  NAME (DIM)     DESCRIPTION
    ======== ======== ========= ========  ============== ===============================

              Register Save Area - When an event hook hits, an EX statement
              transfers control to the CEEDIAHOOK code via a BRAS and the users 
              registers are saved in locations CEEDIAR0 through CEEDIAR15. Because 
              a BRAS stores the return address in R0, we can use that value as the
              IP portion of the PSW which is constructed for use by an RP instruction
              that returns control back to the program.
    ====================================================================================
         224     (E0) CHARACTER      136   CEEDIAHOOKSA(0)
                                                         Hooks Save Area
         224     (E0) CHARACTER       16   CEEDIAPSW(0)  PSW
         224     (E0) SIGNED           8   CEEDIATOP     PSW Modes, Mask, etc
         232     (E8) ADDRESS          8   CEEDIAR0      Register 0
         240     (F0) ADDRESS          8   CEEDIAR1      Register 1
         248     (F8) ADDRESS          8   CEEDIAR2      Register 2
         256    (100) ADDRESS          8   CEEDIAR3      Register 3
         264    (108) ADDRESS          8   CEEDIAR4      Register 4
         272    (110) ADDRESS          8   CEEDIAR5      Register 5
         280    (118) ADDRESS          8   CEEDIAR6      Register 6
         288    (120) ADDRESS          8   CEEDIAR7      Register 7
         296    (128) ADDRESS          8   CEEDIAR8      Register 8
         304    (130) ADDRESS          8   CEEDIAR9      Register 9
         312    (138) ADDRESS          8   CEEDIAR10     Register 10
         320    (140) ADDRESS          8   CEEDIAR11     Register 11
         328    (148) ADDRESS          8   CEEDIAR12     Register 12
         336    (150) ADDRESS          8   CEEDIAR13     Register 13
         344    (158) ADDRESS          8   CEEDIAR14     Register 14
         352    (160) ADDRESS          8   CEEDIAR15     Register 15

              CEEHCHK5 Save Area - When the hook handler is BASRed into,
              it has to determine if the calling routine was a leaf before
              adjusting R4 to obtain stack storage. CEEHCHK5 will be called
              to make this determination. The following fields and associated
              storage will be pre allocated and made available to construct a
              parameter list and to provide a save area for CEEHCHK5.
    ====================================================================================
         360    (168) CHARACTER      256   CEEDIACHK5(0) Storage for CEEHCHK5 call
         360    (168) ADDRESS          8   CEEDIACHK5CAL Address of CEEHCHK5
         368    (170) CHARACTER       48   CEEDIACHK5PRMS(0)
                                                         Storage for CHK5 Parms
         368    (170) ADDRESS          8   CEEDIAPRM1    CHK5 Parm 1
         376    (178) ADDRESS          8   CEEDIAPRM2    CHK5 Parm 2
         384    (180) ADDRESS          8   CEEDIAPRM3    CHK5 Parm 3
         392    (188) ADDRESS          8   CEEDIAPRM4    CHK5 Parm 4
         400    (190) ADDRESS          8   CEEDIAPRM5    CHK5 Parm 5
         408    (198) ADDRESS          8   CEEDIAPRM6    CHK5 Parm 6
         416    (1A0) CHARACTER      144   CEEDIACHK5SA  Save Area for HCHK5 call
         560    (230) SIGNED           4   CEEDIACHK5RC  HCHK5 Return Code
         564    (234) SIGNED           4   *             Padding
         568    (238) ADDRESS          8   CEEDIACHK5DSA HCHK5 Good DSA Pointer
         576    (240) ADDRESS          8   CEEDIACHK5EP  HCHK5 EP Pointer
         584    (248) CHARACTER       32   *             Reserved for CHK5 exp
         616    (268) CHARACTER       64   *             Reserved for DIA exp.
         680    (2A8) CHARACTER        8   *             Dword boundary filler
         680    (2A8)                      CEEDIA_LEN    "*-CEEDIA"

The following code sample provides the cross reference to the DIA.

1     CROSS REFERENCE
                                                   HEX          HEX
      NAME                                         OFFSET      VALUE     LEVEL
      ====                                         ======     ========   =====
      CEEDIA                                            0                    1
      CEEDIA_LEN                                      2A8          2B0       2
      CEEDIAACALL                                      24                    2
      CEEDIAALLOC                                       8                    2
      CEEDIABCALL                                      20                    2
      CEEDIABOSADDR                                    78                    2
      CEEDIACGOTO                                      3C                    2
      CEEDIACHK5                                      168                    2
      CEEDIACHK5CAL                                   168                    2
      CEEDIACHK5DSA                                   238                    2
      CEEDIACHK5EP                                    240                    2
      CEEDIACHK5PRMS                                  170                    2
      CEEDIACHK5RC                                    230                    2
      CEEDIACHK5SA                                    1A0                    2
      CEEDIADBG                                        58                    2
      CEEDIADBGCTLA                                    58                    2
      CEEDIADBGFLAG                                    98                    2
      CEEDIADBGFLG0                                    98                    2
      CEEDIADBGFLG1                                    99                    2
      CEEDIADBGFLG2                                    9A                    2
      CEEDIADBGFLG3                                    9B                    2
      CEEDIADBGFLG4                                    9C                    2
      CEEDIADBGGOTO                                    68                    2
      CEEDIADBGINVS                                    A0                    2
      CEEDIADBGMFET                                    70                    2
      CEEDIADBGVIEW                                    60                    2
      CEEDIADIMA                                       D8                    2
      CEEDIADO                                         28                    2
      CEEDIAENTRY                                      10                    2
      CEEDIAEXIT                                       14                    2
      CEEDIAEYE                                         0                    2
      CEEDIAHLLEXIT                                    50                    2
      CEEDIAHOOK                                       A8                    2
      CEEDIAHOOKS                                       8                    2
      CEEDIAHOOKSA                                     E0                    2
      CEEDIAIFFALSE                                    30                    2
      CEEDIAIFTRUE                                     2C                    2
      CEEDIALABEL                                      1C                    2
      CEEDIALEN                                         0                    2
      CEEDIAMEVMASK                                    4C                    2
      CEEDIAMEXIT                                      18                    2
      CEEDIAMULTEVT                                    48                    2
      CEEDIAOHPSW                                      80                    2
      CEEDIAOHRESUME                                   90                    2
      CEEDIAOTHER                                      38                    2
      CEEDIAPATHS                                      1C                    2
      CEEDIAPRM1                                      170                    2
      CEEDIAPRM2                                      178                    2
      CEEDIAPRM3                                      180                    2
      CEEDIAPRM4                                      188                    2
      CEEDIAPRM5                                      190                    2
      CEEDIAPRM6                                      198                    2
      CEEDIAPSW                                        E0                    2
      CEEDIARSVDH1                                     40                    2
      CEEDIARSVDH2                                     44                    2
      CEEDIAR0                                         E8                    2
      CEEDIAR1                                         F0                    2
      CEEDIAR10                                       138                    2
      CEEDIAR11                                       140                    2
      CEEDIAR12                                       148                    2
      CEEDIAR13                                       150                    2
      CEEDIAR14                                       158                    2
      CEEDIAR15                                       160                    2
      CEEDIAR2                                         F8                    2
      CEEDIAR3                                        100                    2
      CEEDIAR4                                        108                    2
      CEEDIAR5                                        110                    2
      CEEDIAR6                                        118                    2
      CEEDIAR7                                        120                    2
      CEEDIAR8                                        128                    2
      CEEDIAR9                                        130                    2
      CEEDIASTATE                                       C                    2
      CEEDIATOP                                        E0                    2
      CEEDIAVER                                         4                    2
      CEEDIAWHEN                                       34                    2