The CVAF table contains a debug trap area. The address of the CVAF
table is in field CVTCVAF at offset 12 (X'0C') in the VS1/VS2
common extension to the communication vector table (CVT). The debug
trap area can be used to acquire additional information for diagnosing
a problem in CVAF.
At offset 12 (
X'0C') into the CVAF table is the flag byte,
CVFDTFG, which contains the bits that can be set to invoke debugging
options of CVAF. The bits and their names are:
- Bit 0
- CVFSVWA
- Bit 1
- CVFENT
- Bit 2
- CVFEXIT
- Bit 3
- CVFJOB
- Bit 4
- CVFLOOP
- Bit 5-7
- Reserved
At offset 15 (X'0F') into the CVAF table is the 5-byte
field CVFSTPNM. This field can be set to the last 5 bytes of a CVAF
module name for which a debug trap is to be set. (The first 3 bytes
of the module name are implicitly ICV.)
At offset 20 (X'14') into the CVAF table is the 8-byte
field CVFJOBNM. This field can be set to the name of a job for which
a debug trap is to be set. The job name must be padded on the right
with blanks if the job name is less than 8 characters.
You can modify the CVAF table using the CVAFGTF program that follows.
There are two debug trap options:
- Save CVAF module work areas
As each module in CVAF gains control,
a module work area is allocated for its use. The module work area
is released when the module exits. That module work area may be allocated
to a subsequent module that gains control. A few CVAF modules ICVCMW00
(and entry point ICVCMG00), ICVCMW01 (and entry point ICVCMG01), and
ICVLSN00 do not obtain module work areas. The work area used by CVAF
module CVAFGTF cannot be saved.
It is desirable to make available
for inspection a dump of all CVAF module work areas for all CVAF modules
that gain control. Set the CVFSVWA flag bit to 1 to prevent release
of a CVAF module work area when a module returns control to its caller.
Subsequent module work areas will be allocated so as not to overlay
work areas of modules previously in control.
Note: All
of the saved module work areas will be released when CVAF returns
to its caller.
If the CVFJOB flag bit is set
to 0, the facility that saves CVAF module work areas is active for
all CVAF calls. If the CVFJOB bit is set to 1 and CVFJOBNM is set
to a job name, the CVAF module work area is saved only when the job
name is the same as that stored in CVFJOBNM.
- Trap module entry/exit
You might want to stop processing either
when a specific CVAF module is given control (entry) or when it returns
control to its caller (exit). Set the CVFENT bit to 1 to set such
a trap on entry to a module. set the CVFEXIT bit to 1 to set a trap
on exit from a module. The last 5 bytes of the module name for which
a trap is set are stored in the CVFSTPNM field of the CVAF table.
The
entry trap logic is contained in module ICVCMW00 when that module
is called to allocate a module work area. The exit trap logic is contained
in module ICVCMW01 when that module is called to release a module
work area.
Modules ICVCMW00 (and entry point ICVCMG00), ICVCMW01
(and entry point ICVCMG01), ICVLSN00, and CVAFGTF cannot be trapped
this way.
The trap can be either a program check or a write-to-operator-with-reply
(WTOR) followed by a loop that waits for a reply.
If the CVFLOOP
bit is set to 0, the trap is a program check (0C1). If the CVFLOOP
bit is set to 1, the trap is a write-to-operator (CVAF LOOP - jobname,
modulename. Reply to continue.) followed by a loop until the reply
is received. Before the reply is received, you can alter the CVFSTPNM
field from the operator's console to identify another module. Reply
xx,y to continue. (xx is the reply number.)
The trap can be
for all CVAF calls or for only the CVAF calls issued by a job with
a specified job name. Set the CVFJOB bit to 0 to set the trap for
all jobs. Set the CVFJOB bit to 1 to set the trap for only the job
whose name is stored in the CVFJOBNM field of the CVAF table.
To invoke the CVAF debug trap options (program CVAFGTF), do the
following procedure:
- Enter the following command from the operator's console:
START CVAFTR
- CVAFGTF issues a command message prompting the operator
to supply a specific trace command. The message is:
CVGTF01 ENTER CVAF TRACE COMMAND ENDT, OR DBUG
- Enter command DBUG.
- CVAFGTF then issues a command message prompting the operator to
supply the debug trap options:
CVGTF04 ENTER CVAF DEBUG PARAMETERS
- Reply to this message, using the following format:
SET/RESET,SAVE/NOSAVE,jobname,modname,ENTRY,EXIT,LOOP/PGMCHK
The first positional parameter must be:
- SET
- All previously set options are disabled, and the following parameters
are inspected to determine the options desired.
- RESET
- Subsequent parameters are ignored, and all debug trap options
are removed.
The second positional parameter must
be:
- SAVE
- The save CVAF module work-area option is enabled. If jobname is
not supplied as the third parameter, SAVE is active for all jobs.
If jobname is supplied as the third parameter, SAVE is active
only for that job.
- NOSAVE
- The save CVAF module work-area option is disabled or not enabled.
- omitted
- Indicated by a comma or by the first parameter being the end
of the reply to CVGTF04. Operation is the same as if NOSAVE were specified.
The third positional parameter must be:
- jobname
- Specifies a 1- to 8-character job name. This job name will be
used to qualify the save CVAF module work area option, if SAVE is
specified as the second parameter. The job name will also be used
to qualify the module entry/exit trap if ENTRY is specified as the
fifth parameter and EXIT is specified as the sixth parameter.
- omitted
- Indicated by a comma, or by the first or second parameter being
the end of the reply to CVGTF04.
The fourth positional parameter must be:
- modname
- Specifies the last 5 characters of a CVAF module name. The first
3 characters of the module name are assumed to be ICV. For example,
if DSD01 is supplied as the fourth parameter, the CVAF module will
be ICVDSD01. This module will be used for the module entry/exit trap.
If modname is supplied, ENTRY must be supplied as the fifth
parameter, or EXIT must be supplied as the sixth parameter, or both.
- omitted
- Indicated by a comma or by the third or earlier parameter being
the end of the reply to CVGTF04. The module entry/exit trap option
is not enabled.
The fifth positional parameter must be:
- ENTRY
- Specifies that the module entry trap option is to be enabled.
A module name must be specified as the fourth parameter, or ENTRY
will be ignored. If jobname is supplied as the third parameter,
the module entry trap is enabled only for the specified job. If PGMCHK
is specified as the seventh parameter (or the seventh parameter is
omitted), the module entry trap results in a 0C1 program check. If
LOOP is specified as the seventh parameter, the module entry trap
results in an enabled loop.
- omitted
- Indicated by a comma or by the fourth or earlier parameter being
the end of the reply to CVGTF04. The module entry/exit trap option
is not enabled.
The sixth positional parameter must
be:
- EXIT
- Specifies that the module exit trap option is to be enabled.
A module name must be specified as the fourth parameter, or EXIT will
be ignored. If jobname is supplied as the third parameter, the module
exit trap is enabled only for the specified job. If PGMCHK is specified
as the seventh parameter (or the seventh parameter is omitted), the
module exit trap results in a 0C1 program check. If LOOP is specified
as the seventh parameter, the module exit trap results in an enabled
loop.
- omitted
- Indicated by a comma or by the fifth or earlier parameter being
the end of the reply to CVGTF04. The module entry/exit trap option
is not enabled.
The seventh positional parameter must be:
- PGMCHK
- The module entry/exit trap results in a 0C1 program check when
the specified module gains control. ENTRY must be specified as the
fifth parameter, and EXIT must be specified as the sixth parameter.
- LOOP
- The module entry/exit trap results in an enabled loop. The loop
continues until the job time limit is reached or the job is canceled,
or until CVAFGTF is invoked to change or remove the module entry/exit
trap.
- omitted
- Indicated by a comma or by the sixth or earlier parameter being
the end of the reply to CVGTF04. Operation is the same as if PGMCHK
had been supplied.
- CVAFGTF then issues the following message to inform the operator
of the debug trap options that are in effect:
CVGTF05 CVAF DEBUG PARAMETERS ARE p1,p2,...,p7
Parameters
p1 through p7 have the same format as the preceding positional parameters
1 through 7. Parameters are the same as the reply to CVGTF04 if all
requirements for invoking the options have been met.
- CVAFGTF then reissues message CVGTF01 as in step 2.
If ENDT is supplied in response to CVGTF01, the CVAFGTF program terminates,
but leaves any selected options set until a reset parameter is issued.