Document revision date: 30 March 2001

## OpenVMS VAX System Dump Analyzer Utility Manual

Previous | Contents | Index

To examine a range of locations, you can designate starting and ending locations separated by a colon. For example:

    SDA> EXAMINE G40:G200

Alternatively, you can specify a location and a length, in bytes, separated by a semicolon. For example:

    SDA> EXAMINE G400;16

When used to display the contents of a range of locations, the EXAMINE command displays six columns of information:

- Each of the first four columns represents a longword of memory, the contents of which are displayed in hexadecimal format.
- The fifth column lists the ASCII value of each byte in each longword displayed in the previous four columns.
- The sixth column contains the address of the first, or rightmost, longword in each line. This address is also the address of the first, or leftmost, character in the ASCII representation of the longwords. Thus, you read the hexadecimal dump display from right to left, and the ASCII display from left to right.

If a series of virtual addresses does not exist in physical memory, SDA displays a message specifying the range of addresses that were not translated. For example:

    SDA> EXAMINE 100:220

    Virtual locations 00000100 through 000001FF are not in physical memory

    0130011A 0120011B 0130011E 0110011F  ......0... ...0.     00000200
    01200107 02300510 04310216 04210218  ..!...1...0... .     00000210
    01100103 01100104 01200105 01200106  .. ... .........     00000220

Addresses 10016 through 1FF16 do not exist in memory, as the message indicates. SDA displays the contents of those addresses that do exist (20016 through 22016).

If a range of virtual locations contains only zeros, SDA displays this message:

    Zeros suppressed from 'loc1' to 'loc2'

Note that if you make a mistake specifying a virtual address for the EXAMINE command and you are examining global page table entries, your system may crash with a bugcheck. This occurs rarely and only when you use ANALYZE/SYSTEM.

Decoding Locations

You can translate the contents of memory locations into MACRO instruction format by using the /INSTRUCTION qualifier. This qualifier causes SDA to display the location in symbolic notation (if possible) and its contents in instruction format. The operands of decoded instructions are also displayed in symbolic notation.

If the specified range of locations does not begin on an instruction boundary, SDA skips bytes until it locates the next valid instruction and issues the following message:

    %SDA-W-INSKIPPED, unreasonable instruction stream - n bytes skipped

In this message, n represents the number of bytes that SDA could not translate.

Examining Memory Regions

You can display an entire region of virtual memory by using one or more of the qualifiers /ALL, /SYSTEM, /P0, and P1, with the EXAMINE command.

Other Uses

Other uses of the EXAMINE command appear in the following examples.

###

#### Examples

#1
    SDA> EXAMINE/SYSTEM
    System Region Memory
    --------------------
    00040039 8FBC0010 00040038 8FBC0010  ....8.......9...     800000000
       .
       .
       .

> This example shows only the first two lines of the display generated by the EXAMINE/SYSTEM command. Note that in the dump the fifth byte from the right contains the value 3816. The ASCII value of 3816, the character 8, is represented in the fifth character from the left in column 5.

> Likewise, the thirteenth byte from the right in the dump columns contains the value 3916. The ASCII value of 3916 is 9, and 9 is represented in the ASCII column as the thirteenth character from the left.

#2
    SDA> EXAMINE/PSL G1268
            CMP TP FPD IS CURMOD PRVMOD IPL DV FU IV T N Z V C
             1   0  0   0  KERN   KERN   00  0  1  0 1 1 1 0 0

> This example shows the display produced by the EXAMINE/PSL command. The address of the longword examined is 8000126816.

#3
    SDA> EXAMINE/PTE G775F480

>       |31       28|27       24|23       20|19       16|15       12|11        8|7
>       |           |           |           |           |           |           |
>       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-->
>       |1 |  1 1 1 0  |1 |--| 0 0 |--| 0|                          00F0F4
>       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-->
>       Vld  Prot= URKW M     Own=K     W                      Page Frame Number

>                  Page is Active and Valid

> The EXAMINE/PTE command displays and formats the system page table entry at 8775F48016.

#4
    SDA> EXAMINE/TIME EXE$GQ_SYSTIME
    18-FEB-1993 02:07:25.88

> The EXAMINE/TIME command displays the formatted value of the system time quadword (EXE$GQ_SYSTIME).

## EXIT

> Exits from an SDA display or from the SDA utility.

### Format

> EXIT

### Parameters

> None.

### Qualifiers

> None.

### Description

> If SDA is displaying information about a video display terminal---and if that information extends beyond one screen---SDA displays a screen overflow prompt at the bottom of the screen:4

>     Press RETURN for more.
>     SDA>

> If you want to discontinue the current display at this point, enter the EXIT command. If you want SDA to execute another command, enter that command. SDA discontinues the display as if you entered EXIT, and then executes the command you entered.

> When the screen overflow prompt does not immediately precede the SDA> prompt, entering EXIT causes your process to cease executing the SDA utility. When you issue EXIT within a command procedure (either the SDA initialization file or a command procedure invoked with the @ command), SDA terminates execution of the procedure and returns to the SDA prompt.

Note ##### 4 On hardcopy terminals, SDA does not display such a prompt.

## FORMAT

> Displays a formatted list of the contents of a block of memory.

### Format

> FORMAT [/qualifier] location

### Parameter

> #### location

> Location of the beginning of the data block. The location can be given as any valid SDA expression.

### Qualifier

> #### /TYPE=block-type

> Forces SDA to characterize and format a data block at location as the specified type of data structure. The /TYPE qualifier thus overrides the default behavior of the FORMAT command in determining the type of a data block, as described in the Description section. The block-type can be the symbolic prefix of any data structure.

### Description

> The FORMAT command performs the following actions:
> - Characterizes a range of locations as a system data block
> - Assigns, if possible, a symbol to each item of data within the block
> - Displays all the data within the block
> Normally, you use the FORMAT command without the /TYPE qualifier. Used in this manner, it examines the byte in the structure that contains the type of the structure. In most data structures, this byte occurs at an offset of 0A16 into the structure. If this byte does not contain a valid block type, the FORMAT command halts with this message:

>     %SDA-E-INVBLKTYP, invalid block type in specified block

> However, if this byte does contain a valid block type, SDA checks the next byte (offset 0B16) for a secondary block type. When SDA has determined the type of block, it searches for the symbols that correspond to that type of block.

> If SDA cannot find the symbols associated with the block type it has found (or that you specified in the /TYPE qualifier), it issues this message:

>     No "block-type" symbols found to format this block

> If you receive this message, you might want to read additional symbols into the SDA symbol table and retry the FORMAT command. Most symbols that define data structures are contained within SYS$SYSTEM:SYSDEF.STB. Thus, you would issue the following command:

>     $ READ SYS$SYSTEM:SYSDEF.STB

> Certain data structures do not contain a block type at offset 0A16. If this byte contains information other than a block type---or the byte does not contain a valid block type---SDA displays this message:

>     %SDA-E-INVBLKTYP, invalid block type in specified block

> To format such a block, you must reissue the FORMAT command, using the /TYPE qualifier to designate a block-type.

> The FORMAT command produces a 3-column display:

> - The first column shows the virtual address of each item within the block.
> - The second column lists each symbolic name associated with a location within the block.
> - The third column shows the contents of each item in hexadecimal format.

### Example

    SDA> READ SYS$SYSTEM:SYSDEF.STB
    SDA> FORMAT 800B81F0
    800B81F0   UCB$L_FQFL              80000F10
               UCB$L_RQFL
               UCB$W_MB_SEED
               UCB$W_UNIT_SEED
    800B81F4   UCB$L_FQBL              800026A8
               UCB$L_RQBL
    800B81F8   UCB$W_SIZE                  00E0
    800B81FA   UCB$B_TYPE                10
    800B81FB   UCB$B_FLCK              07
    800B81FC   UCB$L_ASTQFL            800F80E0
               UCB$L_FPC
               UCB$T_PARTNER
    800B8200   UCB$L_ASTQBL            8002CF80
               UCB$L_FR3
    800B8204   UCB$L_FIRST             8002CA00
               UCB$L_FR4
               UCB$W_MSGMAX
               UCB$W_MSGCNT
       .
       .
       .

> From SYS$SYSTEM:SYSDEF.STB, the READ command loads into SDA's symbol table the symbols needed for formatting system data structures. The FORMAT command displays the data structure that begins at 800B81F016, a unit control block (UCB). If a field has more than one symbolic name, all such names are displayed. Thus, the field that starts at 800B820416 has three designations: UCB$L_FIRST and UCB$L_FR4, alternative names for the longword; and the two subfields, UCB$W_MSGMAX and UCB$W_MSGCNT.

> The contents of each field appear to the right of the symbolic name of the field. Thus, the contents of UCB$L_FIRST are 8002CA0016.

## HELP

> Displays information about the SDA utility, its operation, and the format of its commands.

### Format

> HELP [command-name]

### Parameter

> #### command-name

> Command for which you need information.

> You can also specify the following keywords in place of command-name.

> Keyword | Function
> --- | ---
> CPU_CONTEXT | Describes the concept of CPU context as it governs the behavior of SDA in uniprocessor and multiprocessor environments
> EXECUTE_COMMAND | Causes SDA to execute SDA commands contained in a file
> EXPRESSIONS | Prints a description of SDA expressions
> INITIALIZATION | Describes the circumstances under which SDA executes an initialization file when first invoked
> OPERATION | Describes how to operate SDA at your terminal and by means of the site-specific startup procedure
> PROCESS_CONTEXT | Describes the concept of process context as it governs the behavior of SDA in uniprocessor and multiprocessor environments
> SYMBOLS | Consists of up to 31 letters and numbers, and can include the dollar sign ($) and underscore (_) characters. When you invoke SDA, it reads in the global symbols from symbols table psect of SYS$BASE_IMAGE.EXE, and from REQSYSDEF.STB, a required subset of the symbols in the file SYSDEF.STB. You can add other symbols to SDA's symbol table by using the DEFINE and READ commands.

### Qualifiers

> None.

### Description

> The HELP command displays brief descriptions of SDA commands and concepts on the terminal screen (or sends these descriptions to the file designated in a SET OUTPUT command). You can request additional information by specifying the name of a topic in response to the Topic? prompt.

> If you do not specify a parameter in the HELP command, it lists those commands and topics for which you can request help, as follows:

>       Information available:

>       ATTACH     COPY       CPU_Context     DEFINE          EVALUATE   EXAMINE
>       Execute_Command       EXIT       Expressions          FORMAT     HELP
>       Initialization        Operation  Process_Context      READ       REPEAT
>       SEARCH     SET        SHOW       SPAWN      Symbols   VALIDATE QUEUE

>     Topic?

## READ

> Loads the global symbols contained in the specified object module into the SDA symbol table.

### Format

> READ {/EXECUTIVE directory-spec| [RELOCATE=expression]|filespec}

### Parameter

> #### filespec

> Name of the device, directory, and file that contains the object module from which you want to copy global symbols. The filespec defaults to SYS$DISK:[default-dir]filename.STB, where SYS$DISK and [default-dir] represent the disk and directory specified in your last SET DEFAULT command. You must specify a file name.

### Qualifiers

> #### /EXECUTIVE directory-spec

> Reads into the SDA symbol table all global symbols and global entry points defined within all loadable images that make up the executive. (See Table SDA-13 for a list of those images.)

> The directory-spec is the name of the directory containing the loadable images of the executive. This parameter defaults to SYS$LOADABLE_IMAGES.

> #### /RELOCATE=expression

> Adds the value of expression to the value of each symbol in the symbol table file to be read. You can use the /RELOCATE qualifier only if you also specify a filespec. The /RELOCATE qualifier is useful for examining images that are position independent and are loaded at a base of zero.

### Description

> The READ command symbolically identifies locations in memory for which the default symbol table (SYS$SYSTEM:SYS.STB) provides no definition. In other words, the required global symbols are located in modules that have been compiled and linked separately from the executive.5

> The object module file specified in the READ command can be one of the following:

> - Output of a compiler or assembler (for example, an .OBJ file)
> - Output generated by the linker qualifier /SYMBOL_TABLE (for example, an .STB file)

> Most often the object module file is a file provided by the operating system in SYS$SYSTEM or SYS$LOADABLE_IMAGES. Many SDA applications, for instance, need to load the definitions of system data structures by issuing a READ command specifying SYS$SYSTEM:SYSDEF.STB. Others require the definitions of specific global entry points within the executive image that are contained within those object modules included in the executive.

> Table SDA-12 lists those object module files provided in SYS$SYSTEM. Table SDA-13 lists those loadable images in SYS$LOADABLE_IMAGES that define locations within the executive image.

> Table SDA-12 Modules Containing Global Symbols and Data Structures Used by SDA
> File | Contents
> --- | ---
> CLUSTRLOA.STB | Symbols for loadable VAXcluster management code
> DCLDEF.STB | Symbols for the DCL interpreter
> IMGDEF.STB | Symbols for the image activator
> NETDEF.STB | Symbols for DECnet data structures
> RMSDEF.STB | Symbols that define RMS internal and user data structures and RMS$_ xxx completion codes
> SCSDEF.STB | Symbols that define data structures for system communications services
> SYSDEF.STB | Symbols that define system data structures, including the I/O database
> TCPIP$NET_GLOBALS.STB 1 | Data structure definitions for TCP/IP internet driver, execlet, and ACP data structures
> TCPIP$NFS_GLOBALS.STB 1 | Data structure definitions for TCP/IP NFS server
> TCPIP$PROXY_GLOBALS.STB 1 | Data structure definitions for TCP/IP proxy execlet
> TCPIP$PWIP_GLOBALS.STB 1 | Data structure definitions for TCP/IP PWIP driver, and ACP data structures
> TCPIP$TN_GLOBALS.STB 1 | Data structure definitions for TCP/IP TELNET/RLOGIN server driver data structures

1Only available if TCP/IP has been installed. These are found in SYS$SYSTEM, so that all files are not automatically read in when you issue a READ/EXEC command.

Table SDA-13 Modules Defining Global Locations Within the Executive Image
File | Contents
--- | ---
CPULOA.EXE | Processor-specific data and initialization routines
ERRORLOG.EXE | Error logging routines and system services
EVENT_FLAGS_AND_ASTS.EXE | Event flag and AST delivery routines and system services
EXCEPTION.EXE | Bugcheck and exception handling routines and those system services that declare condition and exit handlers
IMAGE_MANAGEMENT.EXE | Image activator and the related system services
IO_ROUTINES.EXE | $QIO system service, related system services (for example, SYS$CANCEL and SYS$ASSIGN), and supporting routines
LMF$GROUP_TABLE.EXE | Data for valid, licensed product groups
LOCKING.EXE | Lock management routines and system services
LOGICAL_NAMES.EXE | Logical name routines and system services
MESSAGE_ROUTINES.EXE | System message routines and system services (including SYS$SNDJBC and SYS$GETTIM)
PAGE_MANAGEMENT.EXE | System pager, its supporting routines, and page management system services (including SYS$CRMPSC, SYS$CREDEL, and SYS$ADJSTK)
PRIMITIVE_IO.EXE | Console I/O routines
PROCESS_MANAGEMENT.EXE | Scheduler, report system event, and supporting routines and system services
RECOVERY_UNIT_SERVICES.EXE | Recovery unit system services
RMS.EXE | Global symbols and entry points for RMS
SECURITY.EXE | Security management routines and system services
SYSDEVICE.EXE | Mailbox driver and null driver
SYSGETSYI.EXE | Get System Information system service (SYS$GETSYI)
SYSLICENSE.EXE | Licensing system service (SYS$LICENSE)
SYSMSG.EXE | System messages
SYSTEM_PRIMITIVES.EXE | Miscellaneous basic system routines, including those that allocate system memory, maintain system time, create fork processes, and control mutex acquisition
SYSTEM_SYNCHRONIZATION.EXE | Routines that enforce synchronization in a multiprocessing system
TCPIP$BGDRIVER.STB 1 | TCP/IP internet driver
TCPIP$INETACP.STB 1 | TCP/IP internet ACP
TCPIP$INTERNET_SERVICES.STB 1 | TCP/IP internet execlet
TCPIP$NFS_SERVICES.STB 1 | Symbols for the TCP/IP NFS server
TCPIP$PROXY_SERVICES.STB 1 | Symbols for the TCP/IP proxy execlet
TCPIP$PWIPACP.STB 1 | TCP/IP PWIP ACP
TCPIP$PWIPDRIVER.STB 1 | TCP/IP PWIP driver
TCPIP$TNDRIVER.STB 1 | TCP/IP TELNET/RLOGIN server driver
WORKING_SET_MANAGEMENT.EXE | Swapper, its supporting routines, and working set management system services

1Only available if TCP/IP has been installed. These are found in SYS$SYSTEM, so that all files are not automatically read in when you issue a READ/EXEC command.

###

#### Examples

#1
    SDA>  READ SYS$SYSTEM:SYSDEF.STB
    %SDA-I-READSYM, reading symbol table  SYS$COMMON:[SYSEXE]SYSDEF.STB;1

> Note ##### 5 SDA extracts no local symbols from the object module.

> Previous | Next | Contents | Index

> | privacy and legal statement |
> 4556PRO_006.HTML