BLOCK Macro
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
- 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. - BLOCK chooses the data file appropriate to the release and 32– or 64–bit mode of the dump.
- See Format of Block Data for more information about how and where the control block definition data is stored.
- 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.
- 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)