[OpenVMS documentation]
[Site home] [Send comments] [Help with this site] [How to order documentation] [OpenVMS site] [Compaq site]
Updated: 11 December 1998

OpenVMS VAX System Dump Analyzer Utility Manual


Previous Contents Index

EVALUATE

Computes and displays the value of the specified expression in both hexadecimal and decimal. Alternative evaluations of the expression are available with the use of the qualifiers defined for this command.

Format

EVALUATE {/CONDITION_VALUE|/PSL|/PTE|/SYMBOLS} expression


Parameter

expression

SDA expression to be evaluated. Section 7.2 describes the components of SDA expressions.

Qualifiers

/CONDITION_VALUE

Displays the message that the $GETMSG system service obtains for the value of the expression.

/PSL

Evaluates the specified expression in the format of a processor status longword.

/PTE

Interprets and displays the expression as a page table entry (PTE). The individual fields of the PTE are separated and an overall description of the PTE's type is provided.

/SYMBOLS

Specifies that all symbols that are known to be equal to the evaluated expression are to be listed in alphabetical order. The default behavior of the EVALUATE command displays only the first several such symbols.

Description

If the expression is equal to the value of a symbol in the SDA symbol table, that symbol is displayed. If no symbol with this value is known, the next lower valued symbol is displayed with an appropriate offset if the offset is small enough for the selected symbol to be considered useful.

Examples

#1

SDA> EVALUATE -1
Hex = FFFFFFFF   Decimal = -1           PR$_XSID_N8NNN
      

The EVALUATE command evaluates a numeric expression, displays the value of that expression in hexadecimal and decimal notation, and displays a symbol that has been defined to have an equivalent value.

#2

SDA> EVALUATE 1
Hex = 00000001   Decimal = 1            ACP$V_SWAPGRP
                                        ACP$V_WRITECHK
                                        EVT$_EVENT
      

The EVALUATE command evaluates a numeric expression and displays the value of that expression in hexadecimal and decimal notation. This example also shows the symbols that have the displayed value. A finite number of symbols are displayed by default.

#3

SDA> DEFINE TEN = A
SDA> EVALUATE TEN
Hex = 0000000A   Decimal = 10           EXE$V_FATAL_BUG
                                        SGN$C_MINWSCNT
                                        TEN
      

This example shows the definition of a symbol named TEN. The EVALUATE command then shows the value of the symbol.

Note that A, the value assigned to the symbol by the DEFINE command, could be a symbol. When SDA evaluates a string that can be either a symbol or a hexadecimal numeral, it first searches its symbol table for a definition of the symbol. If SDA finds no definition for the string, it evaluates the string as a hexadecimal number.

#4

SDA> EVALUATE (((TEN * 6) + (-1/4)) + 6)
Hex = 00000042   Decimal = 66
      

This example shows how SDA evaluates an expression of several terms, including symbols and rational fractions. SDA evaluates the symbol, substitutes its value in the expression, and then evaluates the expression. Note that the fraction --1/4--is truncated to 0.

#5

SDA> EVALUATE/CONDITION 80000018
%SYSTEM-W-EXQUOTA, exceeded quota
      

This example shows the output of an EVALUATE/CONDITION command.

#6

SDA> EVALUATE/PSL 04080009
        CMP TP FPD IS CURMOD PRVMOD IPL DV FU IV T N Z V C
         0   0  0   1  KERN   KERN   08  0  0  0 0 1 0 0 1
      

SDA interprets the entered value 04080009 as though it were a processor status longword (PSL) and displays the resulting field values of that longword.

#7

SDA> EVALUATE/PTE ABCDFFEE
      


  |31       28|27       24|23       20|19       16|15       12|11        8|7 
  |           |           |           |           |           |           | 
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--> 
  |1 |  0 1 0 1  |0 |--| 1 1 |--| 0|                          0DFFEE 
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--> 
  Vld  Prot= EW   M     Own=U     W                      Page Frame Number 
 
             Page is Active and Valid 

The EVALUATE/PTE command displays the expression ABCDFFEE as a page table entry (PTE) and labels the fields. It also describes the status of the page.

EXAMINE

Displays either the contents of a location or range of locations in physical memory, or the contents of a register. You can use location parameters to display specific locations or use qualifiers to display entire process and system regions of memory.

Format

EXAMINE [/qualifier[,...]] [location]


Parameter

location

Location in memory to be examined. You can represent a location by any valid SDA expression (see Section 7.2). To examine a range of locations, use the following format:
m:n Range of locations to be examined, from m to n
m;n Range of locations to be examined, starting at m and continuing for n bytes

The default location that SDA uses is initially 0 in the program region (P0) of either of the following:

Subsequent uses of the EXAMINE command with no parameter specified increase the last address examined by 4. Use of the /INSTRUCTION qualifier increases the default address as appropriate to the translation of the instruction. To examine memory locations of other processes, you must use the SET PROCESS command.


Qualifiers

/ALL

Examines all the locations in the program and control regions and parts of the writable system region, displaying the contents of memory in hexadecimal longwords. Do not specify parameters when you use this qualifier.

/CONDITION_VALUE

Examines the specified longword, displaying the message the $GETMSG system service obtains for the value in the longword.

/INSTRUCTION

Translates the contents of the specified range of memory locations into MACRO instruction format. If more than 16 bytes are specified in the range, /INSTRUCTION processing might skip some bytes at the beginning of the range to ensure that SDA is properly synchronized with the start of each instruction. You can override this synchronization by specifying the /NOSKIP qualifier.

The length of the instruction displayed varies according to the opcode and addressing mode. If SDA cannot decode a memory location, it issues the following message:


%SDA-E-NOINSTRAN, cannot translate instruction 

When you use this qualifier with the EXAMINE command, SDA calculates subsequent default addresses by adding the length of the last instruction, including all operands, to the last address examined.

/NOSKIP

Causes the EXAMINE command not to skip any bytes in the range when translating the contents of memory into MACRO instructions. The /NOSKIP qualifier causes the execution of the /INSTRUCTION qualifier by default.

/NOSUPPRESS

Inhibits the suppression of zeros when displaying memory with one of the following qualifiers: /ALL, /P0, /P1, /SYSTEM.

/P0

Displays the entire program region for the default process. Do not specify parameters when you use this qualifier.

/P1

Displays the entire control region for the default process. Do not specify parameters when you use this qualifier.

/PSL

Examines the specified longword, displaying its contents in the format of a processor status longword. This qualifier must precede any parameters used in the command line.

/PTE

Interprets and displays the specified longword as a page table entry (PTE). The display separates individual fields of the PTE and provides an overall description of the PTE's type.

/SYSTEM

Displays portions of the writable system region. Do not specify parameters when you use this qualifier.

/TIME

Examines the specified quadword, displaying its contents in the format of a system-date-and-time quadword.

Description

The following sections describe how to use the EXAMINE command.

Examining Locations

When you use the EXAMINE command to look at a location, SDA displays the location in symbolic notation (symbolic name plus offset), if possible, and its contents in hexadecimal and ASCII formats:


SDA> EXAMINE G6605C0
806605C0:  80002119  ".!.."

If the ASCII character that corresponds to the value contained in a byte is not printable, SDA displays a period (.). If the specified location does not exist in memory, SDA displays this message:


%SDA-E-NOTINPHYS, address : not in physical memory 

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:

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: 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:


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.


Previous Next Contents Index

[Site home] [Send comments] [Help with this site] [How to order documentation] [OpenVMS site] [Compaq site]
[OpenVMS documentation]

Copyright © Compaq Computer Corporation 1998. All rights reserved.

Legal
4556PRO_006.HTML