BLOCK Macro

Read syntax diagramSkip visual syntax diagram BLOCK blocknameATLRUblockaddrOptionsQUERYlib1
Options
Read syntax diagramSkip visual syntax diagram SEtvar NOMapMAPCHarsHEx2BItsNOBitsdispldispl.lengthdisp-displ2FIeldsfieldn
Notes:
  • 1 BLOCK QUERYlib is deprecated, use VMDTQRY BLKLIBS in its place.
  • 2 The default is the VMDTSET BITS setting.

Purpose

The BLOCK subcommand allows you to analyze the contents of control blocks in the dump, and to determine the search sequence of VMDTDATA libraries that are used by the BLOCK and ANALYZE subcommands.

Operands

blockname
specifies the name of the block to be displayed.
AT blockaddr
blockaddr
is the one- to sixteen-significant digit hexadecimal address in the dump of the control block to be displayed.
L, R, or U
is an optional address space prefix character. Use L for Logical, R for Real, or U for User-defined. There should be no space between the prefix character and blockaddr. If not specified, the address space specified or defaulted by the VMDTSET ADDRESS subcommand will be used.
SEtvar
specifies that each field name requested (determined by the presence or absence of the FIELDS option) is treated as a REXX variable name, and set to its value from the block being displayed. This option can be invoked only from a macro.

If CHars is specified or defaulted the data stored into each REXX variable is in raw hex (character form) as obtained from the dump. The length of the data is established by the length of the field in the control block source. If a field is requested that has a zero length, a null value is returned to the REXX variable.

If HEx is specified the value set in the variable is converted to readable hex and then stored in the variable.

NOMap
specifies that address values should not be mapped.
MAP
specifies that values found in the control block which are thought to be addresses should be mapped to a module names and displacements where possible.
BIts
specifies that definitions of bits and codes should be displayed.
NOBits
specifies that definitions of bits and codes should not be displayed.
CHars
specifies that values returned in variables should not be converted from their internal form.
HEx
specifies that values returned in variables should be converted to readable hex before being loaded into the variable. These values are directly usable as input to other VM Dump Tool subcommands and macros without any other conversion.
FIelds fieldn
specifies the names of the fields to be displayed (and have their values stored in REXX variables if the SETVAR option was specified).
displ
specifies the 1-character to 4-character hexadecimal value of the only or starting displacement to be displayed from the control block.
length
specifies the 1-character to 4-character hexadecimal length of data to be displayed from the control block.
displ2
specifies the 1-character to 4-character hexadecimal ending displacement of data to be displayed from the control block.
QUERYlib
Displays the search sequence of VMDTDATA libraries that are used by the BLOCK and ANALYZE subcommands. The use of BLOCK QUERYlib is deprecated, the names of libraries currently in use are available via the VMDTQRY BLKLIBS subcommand. This list can be set or overridden by the VMDTSET BLKLIBS subcommand.

Usage Notes

  1. You can specify any single parameter as an underscore character (_). Place the cursor on an address in the file area of the screen, and press ENTER. The underscore in the subcommand will be replaced by the value pointed to by the cursor.
  2. BLOCK chooses the data file appropriate to the release and 32– or 64–bit mode of the dump.
  3. See Format of Block Data for more information about how and where the control block definition data is stored.
  4. When you use the FIELDS option, the fields are displayed in the order they appear in the original COPY file, not in the order they are listed in the command line.
  5. If neither BIts nor NOBits is specified here, the value established or defaulted for VMDTSET BITS is used.

Examples

Typical use of and output from the BLOCK subcommand:
>>> block sfxbk 1A115698 0.6 nobits
+0000 SFXINEXT       00000000           POINTER TO NEXT SFXBK
+0004 SFXICMSK       FF162402           INTERRUPT CODES AND MASK
                                        VALUES
+0004 SFXISFMB       FF                 SOFTWARE MASK BIT NUMBER
                                        (1-31)
+0005 SFXICR0B       16                 CR0 MASK BIT NUMBER (1-31)
 
>>> block sfxbk 1A115698 bits
+0000 SFXINEXT       00000000           POINTER TO NEXT SFXBK
+0004 SFXICMSK       FF162402           INTERRUPT CODES AND MASK
                                        VALUES
+0004 SFXISFMB       FF                 SOFTWARE MASK BIT NUMBER
                                        (1-31)
      01 Indicates that the routine whose address is in SFXICALL is a
         fullreg routine. This bit must be turned off before using the
         address
      FE (undefined)
+0005 SFXICR0B       16                 CR0 MASK BIT NUMBER (1-31)
      16 (undefined)
+0006 SFXICODE       2402               SOFTWARE EXTERNAL INTERRUPT
                                        CODE
+0006 SFXIEXCL       24                 EXTERNAL INTERRUPTION CLASS
      24 CLASS 24 EXTERNAL INTERRUPTS (SERVICE SIGNALS)
+0007 SFXIEXCT       02                 EXTERNAL INTERRUPTION CLASS
      02 CODE X'1202' EXTERNAL CALL
      02 CODE X'2402' PVM LOGICAL DEVICE
+0008 SFXIPARM       02000006           PARAMETER TO PASS CALLED
                                        ROUTINE
+000C SFXICALL       HCPLDCEF           ADDRESS OF ROUTINE TO BE
                                        CALLED plus the last bit is
                                        used as a flag to indicate
                                        whether the routine whose
                                        address is in this field is
                                        fullreg or not
+000F SFXICAL3       D0                 Last byte of call address
      D0 (undefined)