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