Document revision date: 30 March 2001

## OpenVMS Alpha System Analysis Tools Manual

Previous | Contents | Index

## SHOW DEVICE

> Displays a list of all devices in the system and their associated data structures, or displays the data structures associated with a given device or devices.

### Format

> SHOW DEVICE [device-name|/ADDRESS=ucb-address|/CDT=cdt_address|
> /CHANNELS|/HOMEPAGE|/PDT|/UCB=ucb-address]

### Parameter

> #### device-name

> Device or devices for which data structures are to be displayed. There are several uses of the device-name parameter.

> To Display the Structures For... | Action
> --- | ---
> All devices in the system | Do not specify a device-name (for example, SHOW DEVICE).
> A single device | Specify an entire device-name (for example, SHOW DEVICE VTA20).
> All devices of a certain type on a single controller | Specify only the device type and controller designation (for example, SHOW DEVICE RTA or SHOW DEVICE RTB).
> All devices of a certain type on any controller | Specify only the device type (for example, SHOW DEVICE RT).
> All devices whose names begin with a certain character or character string | Specify the character or character string (for example, SHOW DEVICE D).
> All devices on a single node or HSC | Specify only the node name or HSC name (for example, SHOW DEVICE GREEN$).
> All devices with a certain allocation class | Specify the allocation class including leading and trailing $, for example, SHOW DEVICE $63$.

### Qualifiers

> #### /ADDRESS=ucb-address

> Indicates the device for which data structure information is to be displayed by the address of its unit control block (UCB). The /ADDRESS qualifier is an alternate method of supplying a device name to the SHOW DEVICE command. If both the device-name parameter and the /ADDRESS qualifier appear in a single SHOW DEVICE command, SDA responds only to the parameter or qualifier that appears first.

> #### /CDT=cdt_address

> Identifies the device by the address of its Connector Descriptor Table (CDT). This applies to cluster port devices only.

> #### /CHANNELS

> Displays information on active Memory Channel channel blocks. This qualifier is ignored for devices other than memory channel.

> #### /HOMEPAGE

> Displays fields from the Memory Channel Home Page. This qualifier is ignored for devices other than memory channel.

> #### /PDT

> Displays the Memory Channel Port Descriptor Table. This qualifier is ignored for devices other than memory channel.

> #### /UCB=ucb-address

> This is a synonym for /ADDRESS=ucb-address as described above.

### Description

> The SHOW DEVICE command produces several displays taken from system data structures that describe the devices in the system configuration.

> If you use the SHOW DEVICE command to display information for more than one device or one or more controllers, it initially produces the DDB (device data block) list to provide a brief summary of the devices for which it renders information in subsequent screens.

> Information in the DDB list appears in five columns, the contents of which are as follows:

> - Address of the device data block (DDB)
> - Controller name
> - Name of the ancillary control process (ACP) associated with the device
> - Name of the device driver
> - Address of the driver prologue table (DPT)

> The SHOW DEVICE command then produces a display of information pertinent to the device controller. This display includes information gathered from the following structures:

> - Device data block (DDB)
> - Primary channel request block (CRB)
> - Interrupt dispatch block (IDB)
> - Driver dispatch table (DDT)

> If the controller is an HSC controller, SHOW DEVICE also displays information from its system block (SB) and each path block (PB).

> Many of these structures contain pointers to other structures and driver routines. Most notably, the DDT display points to various routines located within driver code, such as the start I/O routine, unit initialization routine, and cancel I/O routine.

> For each device unit subject to the SHOW DEVICE command, SDA displays information taken from its unit control block, including a list of all I/O request packets (IRPs) in its I/O request queue. For certain mass storage devices, SHOW DEVICE also displays information from the primary class driver data block (CDDB), the volume control block (VCB), and the ACP queue block (AQB). For units that are part of a shadow set, SDA displays a summary of shadow set membership.

> As it displays information for a given device unit, SHOW DEVICE defines the following symbols as appropriate:

> Symbol | Meaning
> --- | ---
> UCB | Address of unit control block
> SB | Address of system block
> ORB | Address of object rights block
> DDB | Address of device data block
> DDT | Address of driver dispatch table
> CRB | Address of channel request block
> AMB | Associated mailbox UCB pointer
> IRP | Address of I/O request packet
> 2P_UCB | Address of alternate UCB for dual-pathed device
> LNM | Address of logical name block for mailbox
> PDT | Address of port descriptor table
> CDDB | Address of class driver descriptor block for MSCP served device
> 2P_CDDB | Address of alternate CDDB for MSCP served device
> RWAITCNT | Resource wait count for MSCP served device
> VCB | Address of volume control block for mounted device

> If you are examining a driver-related system failure, you may find it helpful to issue a SHOW STACK command after the appropriate SHOW DEVICE command, to examine the stack for any of these symbols. Note, however, that although the SHOW DEVICE command defines those symbols relevant to the last device unit it has displayed, and redefines symbols relevant to any subsequently displayed device unit, it does not undefine symbols. (For instance, SHOW DEVICE DUA0 defines the symbol PDT, but SHOW DEVICE MBA0 does not undefine it, even though the PDT structure is not associated with a mailbox device.) To maintain the accuracy of such symbols that appear in the stack listing, use the DEFINE command to modify the symbol name. For example:

>     SDA> DEFINE DUA0_PDT PDT
>     SDA> DEFINE MBA0_UCB UCB

> See the descriptions of the READ and FORMAT commands for additional information on defining and examining the contents of device data structures.

### Examples

#1
    SDA> SHOW DEVICE/ADDRESS=8041E540
    OPA0                                   VT300_Series       UCB address    8041E540

    Device status:   00000010 online
    Characteristics: 0C040007 rec,ccl,trm,avl,idv,odv
                     00000200 nnm
    Owner UIC [000001 ,000004]  Operation count        160    ORB address    8041E4E8
          PID         00010008  Error count              0    DDB address    8041E3F8
    Class/Type           42/70  Reference count          2    DDT address    8041E438
    Def. buf. size          80  BOFF              00000001    CRB address    8041E740
    DEVDEPEND         180093A0  Byte count        0000012C    I/O wait queue 8041E5AC
    DEVDEPND2         FB101000  SVAPTE            80537B80
    DEVDEPND3         00000000  DEVSTS            00000001
    FLCK index              3A
    DLCK address      8041E880
    *** I/O request queue is empty ***

> This example reproduces the SHOW DEVICE display for a single device unit, OPA0. Whereas this display lists information from the UCB for OPA0, including some addresses of key data structures and a list of pending I/O requests for the unit, it does not display information about the controller or its device driver. To display the latter information, specify the device-name as OPA (for example, SHOW DEVICE OPA).

#2
    SDA>  SHOW DEVICE DU
    I/O data structures
    -------------------
                                DDB list
                                --------

           Address    Controller     ACP         Driver               DPT
           -------    ----------   --------   ------------            ---

          80D0B3C0    BLUES$DUA     F11XQP    SYS$DKDRIVER          807735B0
          8000B2B8    RED$DUA       F11XQP    SYS$DKDRIVER          807735B0
          80D08BA0    BIGTOP$DUA    F11XQP    SYS$DKDRIVER          807735B0
          80D08AE0    TIMEIN$DUA    F11XQP    SYS$DKDRIVER          807735B0
       .
       .
       .
    Press RETURN for more.
       .
       .
       .

> This excerpt from the output of the SHOW DEVICE DU command illustrates the format of the DDB list. In this case, the DDB list concerns itself with those devices whose device type begins with DU. It displays devices of these types attached to various HSCs (RED$ and BLUES$) and systems in a cluster (BIGTOP$ and TIMEIN$).

## SHOW DUMP

> Displays formatted information from the header, error log buffers, logical memory blocks (LMBs), memory map, compression data, and a summary of the dump. Also displays hexadecimal information of individual blocks.

### Format

> SHOW DUMP {/ALL|/BLOCK[=m[{:|;}n]]
> |[/COMPRESSION_MAP[=m[:n]] |/ERROR_LOGS|/HEADER
> |/LMB[={ALL|n}]|/SUMMARY
> |/MEMORY_MAP]}

### Parameters

> None.

### Qualifiers

> #### /ALL

> Displays the equivalent to specifying all the /SUMMARY, /HEADER, /ERROR_LOGS, /COMPRESSION_MAP, /LMB=ALL, and /MEMORY_MAP qualifiers.

> #### /BLOCK[=m[{:|;}n]]

> Displays a hexadecimal dump of one or more blocks. You can specify ranges by using the following syntax:

> no value | Displays next block
> m | Displays single block
> m:n | Displays a range of blocks from m to n, inclusive
> m;n | Displays a range of blocks starting at m and continuing for n blocks

> #### /COMPRESSION_MAP[=m[:n]]

> In a compressed dump, displays details of the compression data. You can specify levels of detail by using the following syntax:

> no value | Displays a summary of all compression map blocks
> m | Displays contents of a single compression map block
> m:n | Displays details of single compression map entry

> #### /ERROR_LOGS

> Displays a summary of the error log buffers.

> #### /HEADER

> Displays the formatted contents of the dump header.

> #### /LMB[={ALL|n}]

> In a selective dump, displays the formatted contents of logical memory block (LMB) headers and the virtual address (VA) ranges within the LMB. LMBs to be displayed can be expressed by using the following syntax:

> no value | Displays next LMB
> n | Displays LMB at block n of the dump
> ALL | Displays all LMBs

> #### /MEMORY_MAP

> In a full dump, displays the contents of the memory map.

> #### /SUMMARY

> Displays a summary of the dump. This is the default.

### Description

> The SHOW DUMP command displays information about the structure of the dump file. It displays the header, the error log buffers, and, if appropriate, the compression map, the logical memory block (LMB) headers and/or the memory map. Use this command when troubleshooting dump analysis problems.

### Examples

#1
    SDA> SHOW DUMP/SUMMARY
    Summary of dump file DKA300:[SYS0.SYSEXE]SYSDUMP.DMP;8
    ------------------------------------------------------
    Dump type:                   Compressed selective
    Size of dump file:           000203A0/000203A0 (132000./132000.)
    Highest VBN written:         0000D407          (54279.)
    Uncompressed equivalent:     0001AF1C          (110364.)
    Compression ratio:           2.03:1            (49.2%)

                                                                         Uncomp    Uncomp
                          Dump file section             VBN     Blocks     VBN     blocks
    ----------------------------------------------  ---------- --------  -------  --------
    Dump header                                       00000001 00000002
    Error log buffers                                 00000003 00000020
    Compression map                                   00000023 00000010
    LMB 0000 (PT space)                               00000033 00000038  00000033 000000D2
    LMB 0001 (S0/S1 space)                            0000006B 0000621B  00000105 000095A5
    LMB 0002 (S2 space)                               00006286 000001A3  000096AA 00000352
    LMB 0003 (Page tables of key process "SYSTEM")    00006429 00000005  000099FC 00000062
    LMB 0004 (Memory of key process "SYSTEM")         0000642E 00000071  00009A5E 00000342
       .
       .
       .
    LMB 0003 (Page tables of key process "NETACP")    0000697B 00000009  0000AE14 00000052
    LMB 0004 (Memory of key process "NETACP")         00006984 000013F7  0000AE66 00001F42
    LMB 0005 (Key global pages)                       00007D7B 000002BA  0000CDA8 00000312
    LMB 0006 (Page tables of process "DTWM")          00008035 00000013  0000D0BA 00000082
    LMB 0007 (Memory of process "DTWM")               00008048 000013A3  0000D13C 000022E4
       .
       .
       .
    LMB 0006 (Page tables of process "Milord_FTA1:")  0000C5E3 00000005  00019A44 00000062
    LMB 0007 (Memory of process "Milord_FTA1:")       0000C5E8 00000074  00019AA6 00000222
    LMB 0008 (Remaining global pages)                 0000C65C 00000DAC  00019CC8 00001255

> This example of the SHOW DUMP/SUMMARY command gives a summary of a selective dump. ``

#2
    SDA> SHOW DUMP/HEADER
    Dump header
    -----------
        Header field                      Meaning                        Value
    --------------------  ---------------------------------------  -----------------
    DMP$W_FLAGS           Flags                                                 0FC1
                           DMP$V_OLDDUMP:    Dump has been analyzed
                           DMP$V_WRITECOMP:  Dump write was completed
                           DMP$V_ERRLOGCOMP: Error log buffers written
                           DMP$V_DUMP_STYLE: Selective dump
                                             Verbose messages
                                             Dump off system disk
                                             Compressed
    DMP$B_FLAGS2          Additional flags                                        09
                           DMP$V_COMPRESSED: Dump is compressed
                           DMP$V_ALPHADUMP:  This is an OpenVMS Alpha dump
    DMP$Q_SYSIDENT        System version                                  "X69G-FT1"
    DMP$Q_LINKTIME        Base image link date/time        " 8-JUN-1996 02:07:27.31"
    DMP$L_SYSVER          Base image version                                03000000
    DMP$W_DUMPVER         Dump version                                          0704
    DMP$L_DUMPBLOCKCNT    Count of blocks dumped for memory                 0000D3D5
    DMP$L_NOCOMPBLOCKCNT  Uncompressed blocks dumped for memory             0001AEEA
    DMP$L_SAVEPRCCNT      Number of processes saved                         00000014
       .
       .
       .
    EMB$Q_CR_TIME         Crash date/time                  " 3-JUL-1996 09:30:13.36"
    EMB$L_CR_CODE         Bugcheck code                                 "SSRVEXCEPT"
    EMB$B_CR_SCS_NAME     Node name                                       "SWPCTX  "
    EMB$T_CR_HW_NAME      Model name                            "DEC 3000 Model 400"
    EMB$T_CR_LNAME        Process name                                      "SYSTEM"
    DMP$L_CHECKSUM        Dump header checksum                              439E5E91

> This example of the SHOW DUMP/HEADER command shows the information in the header.

## SHOW EXECUTIVE

> Displays the location and size of each loadable image that makes up the executive.

### Format

> SHOW EXECUTIVE [execlet-name|/SUMMARY]

### Parameter

> #### execlet-name

> Displays only the data for the specified loadable image. You can use wildcards in execlet-name, in which case SDA displays data for all matching loadable images. The default action is for SDA to display data for all loadable images.

### Qualifier

> #### /SUMMARY

> Displays a single line of output for all loadable images.

### Description

> The executive consists of two base images and a number of other executive images.

> The base image called SYS$BASE_IMAGE.EXE contains:

> - Symbol vectors for universal executive routines and data cells
> - Procedure descriptors for universal executive routines
> - Globally referenced data cells

> The base image called SYS$PUBLIC_VECTORS.EXE contains:

> - Symbol vectors for system service procedures
> - Procedure descriptors for system services
> - Transfer routines for system services

> The base images are the pathways to routines and system service procedures in the other executive images.

> The SHOW EXECUTIVE command lists the location and size of each executive image. It can enable you to determine whether a given memory address falls within the range occupied by a particular image. (Table 4-1 describes the contents of each executive image.)

> SHOW EXECUTIVE also displays the base address and length for each nonzero length image section.

> On OpenVMS Alpha the execlets may be sliced. This means each different image section can be relocated in system memory so that they are no longer contiguous. The SHOW EXECUTIVE display contains information on where each image section resides.

> The difference between a sliced image and a non-sliced image in the display is that the base, the end, and the length of a sliced image are blank. Only the image section base, end, and length are valid.

> There are six different image section types: non-paged read only, non-paged read-write, paged read only, paged read-write, init and fixup. Only the image sections loaded into system memory are displayed.

> The MAP command makes it easier to find out in which execlet an address resides. See the description of the MAP command for details.

> By default, SDA displays each location within an executive image as an offset from the beginning of the image, for instance, EXCEPTION+00282. Similarly, those symbols that represent system services point to the transfer routine in SYS$PUBLIC_VECTORS.EXE and not to the actual system service procedure. When tracing the course of a system failure through the listings of modules contained within a given executive image, you may find it useful to load into the SDA symbol table all global symbols and global entry points defined within one or all executive images. See the description of the READ command for additional information.

> The SHOW EXECUTIVE command usually shows all components of the executive, as illustrated in the following example. In rare circumstances, you may obtain a partial listing. For instance, once it has loaded the EXCEPTION module (in the INIT phase of system initialization), the system can successfully post a bugcheck exception and save a crash dump before loading all the executive images that are normally loaded.

### Examples

#1
    SDA> SHOW EXECUTIVE
    VMS Executive layout
    --------------------
    Image                                     Base     End     Length   SymVec
    --------------------------------------- -------- -------- -------- --------
    SYS$WSDRIVER                            A21B2000 A21BA000 00008000
        Nonpaged read only                  A21B2000 A21B3600 00001600
        Nonpaged read/write                 A21B6000 A21B6800 00000800
            Linked  5-APR-1998 12:08          LDRIMG 80DA0700 --< not sliced >--

    SYS$LTDRIVER                            A217A000 A21B2000 00038000
        Nonpaged read only                  A217A000 A21A8800 0002E800
        Nonpaged read/write                 A21AA000 A21AEA00 00004A00
            Linked  4-APR-1998 22:42          LDRIMG 80D8F600 --< not sliced >--

    LAT$RATING                              A2172000 A217A000 00008000
        Nonpaged read only                  A2172000 A2172600 00000600
        Nonpaged read/write                 A2176000 A2176600 00000600
            Linked  4-APR-1998 22:45          LDRIMG 80D8F740 --< not sliced >--

    SYS$RTTDRIVER                           A216A000 A2172000 00008000
        Nonpaged read only                  A216A000 A216D600 00003600
        Nonpaged read/write                 A216E000 A216EA00 00000A00
            Linked  4-APR-1998 22:56          LDRIMG 80D86C80 --< not sliced >--
            .
            .
            .
            .
            .
    SYS$OPDRIVER
        Nonpaged read only                  80022000 80025800 00003800
        Nonpaged read/write                 9E92F000 9E92FA00 00000A00
            Linked  4-APR-1998 22:42          LDRIMG 80C1E8C0 --< sliced >--

    SYS$CNBTDRIVER
        Nonpaged read only                  80020000 80021000 00001000
        Nonpaged read/write                 9E92EC00 9E92F000 00000400
            Linked  4-APR-1998 22:35          LDRIMG 80C1D7C0 --< sliced >--

    SYS$CPU_ROUTINES_1605
        Nonpaged read only                  8000E000 8001EE00 00010E00
        Nonpaged read/write                 9E92AA00 9E92EC00 00004200
            Linked  8-APR-1998 10:04          LDRIMG 80C1DB80 --< sliced >--

    SYS$BASE_IMAGE                                                     9E916320
        Nonpaged read only                  80002000 8000D000 0000B000
        Nonpaged read/write                 9E905C00 9E92AA00 00024E00
            Linked  6-APR-1998 16:00          LDRIMG 80C1DA40 --< sliced >--

    SYS$PUBLIC_VECTORS                                                 9E903CB8
        Nonpaged read only                  80000000 80002000 00002000
        Nonpaged read/write                 9E900000 9E905C00 00005C00
            Linked  4-APR-1998 22:22          LDRIMG 80C1D900 --< sliced >--

> The SHOW EXECUTIVE command displays the location and length of executive images.

#2
    SDA> SHOW EXECUTIVE SYS$GAL*
    VMS Executive layout
    --------------------
    Image                                     Base     End     Length   SymVec
    --------------------------------------- -------- -------- -------- --------
    SYS$GALAXY                              A1A62000 A1A8A000 00028000
        Nonpaged read only                  A1A62000 A1A83600 00021600
        Nonpaged read/write                 A1A86000 A1A89A00 00003A00
            Linked  4-APR-1998 22:43          LDRIMG 80CCA280 --< not sliced >--

> This example displays the use of the wildcard with the SHOW EXECUTIVE command.

#3
    SDA> SHOW EXECUTIVE/SUMMARY
    VMS Executive layout summary
    ----------------------------
    Image                                    LDRIMG    Base     End     Length   SymVec
    --------------------------------------- -------- -------- -------- -------- --------

    SYS$MADDRIVER                           80D2A900 83848000 83860000 00018000
    SYS$DADDRIVER                           80E00C80 83838000 83848000 00010000
    SYS$LASTDRIVER                          80E3C600 8381C000 83838000 0001C000
    SYS$LTDRIVER                            80E305C0 837E4000 8381C000 00038000
    LAT$RATING                              80E35500 837DC000 837E4000 00008000
    SYS$RTTDRIVER                           80DCDF00 837D4000 837DC000 00008000
    SYS$CTDRIVER                            80D7BFC0 837C4000 837D4000 00010000
    NDDRIVER                                80D86000 8377A000 83782000 00008000
    SYS$FTDRIVER                            80DD4280 83772000 8377A000 00008000
       .
       .
       .
       .
       .
       .
    SYSTEM_PRIMITIVES                       80D13580       --< sliced >--
    SYSTEM_DEBUG                            80D12840 82FA4000 82FF4000 00050000
    SYS$OPDRIVER                            80D11B00       --< sliced >--
    SYS$ESBTDRIVER                          80D10DC0       --< sliced >--
    SYS$NISCA_BTDRIVER                      80D10080       --< sliced >--
    SYS$CNBTDRIVER                          80D0EF80       --< sliced >--
    SYS$CPU_ROUTINES_0402                   80D0F340       --< sliced >--
    SYS$BASE_IMAGE                          80D0F200       --< sliced >--       80C16300
    SYS$PUBLIC_VECTORS                      80D0F0C0       --< sliced >--       80C03C78

> Previous | Next | Contents | Index

> | privacy and legal statement |
> 6549PRO_011.HTML