HP OpenVMS Systems Documentation
OpenVMS Alpha System Analysis Tools Manual
Displays either the contents of a location or range of locations in physical memory, or the contents of a register. Use location parameters to display specific locations or use qualifiers to display the entire process and system regions of memory.
EXAMINE [/qualifier[,...]] [location]
The following sections describe how to use the EXAMINE command.
SDA> EXAMINE/PS 7FF95E78 MBZ SPAL MBZ IPL VMM MBZ CURMOD INT PRVMOD 0 00 00000000000 08 0 0 KERN 0 EXEC
This example shows the display produced by the EXAMINE/PS command.
SDA> EXAMINE/PTE @^QMMG$GQ_L1_BASE
3 3 2 2 2 1 1 1 1 0 9 7 0 8 6 5 7 6 0 +-+-+--+--------------+-+-+---+-+---------------+-+-----------+-+ |0|1|00| 0000 |0|X| 00|0| 11 |X| 04 |1| +-+-+--+--------------+-+-+---+-+---------------+-+-----------+-+ | 00000C37 | +---------------------------------------------------------------+ Valid PTE: Read Prot = K---, Write Prot = K--- Owner = K, Fault on = -E--, ASM = 00, Granularity Hint = 00 CPY = 00 PFN = 00000C37
The EXAMINE/PTE command displays and formats the level 1 page table entry at FFFFFFFF.FF7FC000.
If SDA is displaying information on a video display terminal---and if that information extends beyond one screen---SDA displays a screen overflow prompt at the bottom of the screen:
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 SDA> prompt is not immediately preceded by the screen overflow prompt, entering EXIT causes your process to cease executing the SDA utility. When issued within a command procedure (either the SDA initialization file or a command procedure invoked with the execute command (@)), EXIT causes SDA to terminate execution of the procedure and return to the SDA prompt.
FORMAT [/TYPE=block-type] location [/PHYSICAL]
locationLocation of the beginning of the data block. The location can be given as any valid SDA expression.
/TYPE=block-typeForces 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 and/or subtype of a data block, as described in the Description section. The block-type can be the symbolic prefix of any data structure defined by the operating system.
/PHYSICALSpecifies that the location given is a physical address.
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
Most OpenVMS Alpha control blocks include two bytes that indicate the block type and/or subtype at offsets 0A16 and 0B16, respectively. The type and/or subtype associate the block with a set of symbols that have a common prefix. Each symbol's name describes a field within the block, and the value of the symbol represents the offset of the field within the block.
If the type and/or subtype bytes contain a valid block type/subtype combination, SDA retrieves the symbols associated with that type of block (see $DYNDEF) and uses their values to format the block.
For a given block type, all associated symbols have the form
where field is one of the following:
B Byte W Word L Longword Q Quadword O Octaword A Address C Constant G Global Longword P Pointer R Structure (variable size) T Counted ASCII string (up to 31 characters)
If SDA cannot find the symbols associated with the block type specified in the block-type byte or by the /TYPE qualifier, it issues this message:
%SDA-E-NOSYMBOLS, no <block type> symbols found to format this block
If you receive this message, you may want to read additional symbols into the SDA symbol table and retry the FORMAT command. Many symbols that define OpenVMS Alpha data structures are contained within SDA$READ_DIR:SYSDEF.STB. Thus, you would issue the following command:
SDA> READ SDA$READ_DIR:SYSDEF.STB
If SDA issues the same message again, try reading additional symbols. Table 2-4 lists additional modules provided by the OpenVMS operating system. Alternatively, you can create your own object modules with the MACRO-32 Compiler for OpenVMS Alpha. See the READ command description for instructions on creating such an object module.
Certain OpenVMS Alpha data structures do not contain a block type and/or subtype. If bytes contain information other than a block type/subtype---or do not contain a valid block type/subtype---SDA either formats the block in a totally inappropriate way, based on the contents of offsets 0A16 and 0B16, or 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, including symbolization if a suitable symbol exists.
SDA> READ SDA$READ_DIR:SYSDEF.STB %SDA-I-READSYM, 913 symbols read from SYS$COMMON:[SYS$LDR]SYSDEF.STB SDA> FORMAT G41F818 FFFFFFFF.8041F818 UCB$L_FQFL 8041F818 UCB UCB$L_MB_MSGQFL UCB$L_RQFL UCB$W_MB_SEED UCB$W_UNIT_SEED FFFFFFFF.8041F81C UCB$L_FQBL 8041F818 UCB UCB$L_MB_MSGQBL UCB$L_RQBL FFFFFFFF.8041F820 UCB$W_SIZE 0110 FFFFFFFF.8041F822 UCB$B_TYPE 10 FFFFFFFF.8041F823 UCB$B_FLCK 2C FFFFFFFF.8041F824 UCB$L_ASTQFL 00000000 UCB$L_FPC UCB$L_MB_W_AST UCB$T_PARTNER . . .
The READ command loads the symbols from SDA$READ_DIR:SYSDEF.STB into SDA's symbol table. The FORMAT command displays the data structure that begins at G41F81816, 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 8041F82416 has four designations: UCB$L_ASTQFL, UCB$L_FPC, UCB$L_MB_W_AST, and UCB$T_PARTNER.
The contents of each field appear to the right of the symbolic name of the field. Thus, the contents of UCB$L_FQBL are 8041F81816.
Displays information about the SDA utility, its operation, and the format of its commands.
topic-nameTopic for which you need information. A topic can be a command name or one of the following keywords.
Keyword Function ANALYZE_USAGE_SUMMARY Describes the parameters and qualifiers for the ANALYZE/CRASH_DUMP and ANALYZE/SYSTEM DCL commands CPU_CONTEXT Describes the concept of CPU context as it governs the behavior of SDA EXECUTE_COMMAND Describes the use of @ file 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 SDA_CLUE_EXTENSION_COMMANDS Provides an overview of SDA CLUE (Crash Log Utility Extractor) SDA_EXTENSION_ROUTINES Describes how to write, debug, and invoke an SDA extension and provides details of all callable routines SDA_SPINLOCK_TRACING_COMMANDS Provides an overview of SDA SPL (Spinlock Tracing Utility) SYMBOLS Describes the symbols used by SDA
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 the features of SDA and those commands and topics for which you can request help, as follows:
SDA> HELP HELP The System Dump Analyzer (SDA) allows you to inspect the contents of memory as saved in the dump taken at crash time or as exists in a running system. You can use SDA interactively or in batch mode. You can send the output from SDA to a listing file. You can use SDA to perform the following operations: Assign a value to a symbol Examine memory of any process Format instructions and blocks of data Display device data structures Display memory management data structures Display a summary of all processes on the system Display the SDA symbol table Copy the system dump file Send output to a file or device Read global symbols from any object module Send output to a file or device Read global symbols from any object module Search memory for a given value For help on performing these functions, use the HELP command and specify a topic. Format HELP [topic-name] Additional information available: ANALYZE_Usage_Summary ATTACH CLUE COPY CPU_Context DEFINE DUMP EVALUATE EXAMINE Execute_Command EXIT Expressions FORMAT HELP Initialization MAP MODIFY Operation Process_Context READ REPEAT SDA_CLUE_Extension_Commands SDA_Extension_Routines SDA_Spinlock_Tracing_Commands SEARCH SET SHOW SPAWN SPL Symbols UNDEFINE VALIDATE Topic?
Transforms an address into an offset in a particular image.
addressAddress to be identified.
The MAP command identifies the image name and offset corresponding to an address. With this information, you can examine the image map to locate the source module and program section offset corresponding to an address. MAP searches for the specified address in executive images first. It then checks activated images in process space to include those images installed using the /RESIDENT qualifier of the Install utility. Finally, it checks all image-resident sections in system space.
If the address cannot be found, MAP displays the following message:
%SDA-E-NOTINIMAGE, Address not within a system/installed image
SDA> MAP G90308 Image Base End Image Offset SYS$VM Nonpaged read only 80090000 800ABA00 00000308
Examining the image map identified by this MAP command (SYS$VM.MAP) shows that image offset 308 falls within psect EXEC$HI_USE_PAGEABLE_CODE because the psect goes from offset 0 to offset 45D3:
Specifically, image offset 308 is located within source module SYSCREDEL. Therefore, to locate the corresponding code, you would look in SYSCREDEL for offset 308 in psect EXEC$HI_USE_PAGEABLE_CODE.
. . . EXEC$HI_USE_PAGEABLE_CODE 00000000 000045D3 000045D4 ( 17876.) 2 ** 5... SYSCREDEL 00000000 0000149B 0000149C ( 5276.) 2 ** 5 SYSCRMPSC 000014A0 000045D3 00003134 ( 12596.) 2 ** 5 EXEC$NONPAGED_CODE 000045E0 0001B8B3 000172D4 ( 94932.) 2 ** 5... EXECUTE_FAULT 000045E0 0000483B 0000025C ( 604.) 2 ** 5 IOLOCK 00004840 000052E7 00000AA8 ( 2728.) 2 ** 5 LOCK_SYSTEM_PAGES . . .
SDA> MAP G550000 Image Base End Image Offset SYS$DKDRIVER 80548000 80558000 00008000
In this example, the MAP command identifies the address as an offset into an executive image that is not sliced. The base and end addresses are the boundaries of the image.
SDA> MAP G550034 Image Base End Image Offset SYS$DUDRIVER Nonpaged read/write 80550000 80551400 00008034
In this example, the MAP command identifies the address as an offset into an executive image that is sliced. The base and end addresses are the boundaries of the image section that contains the address of interest.
SDA> MAP GF0040 Image Resident Section Base End Image Offset MAILSHR 800F0000 80119000 00000040
The MAP command identifies the address as an offset into an image-resident section residing in system space.
SDA> MAP 12000 Activated Image Base End Image Offset MAIL 00010000 000809FF 00002000
The MAP command identifies the address as an offset into an activated image residing in process-private space.
SDA> MAP B2340 Compressed Data Section Base End Image Offset LIBRTL 000B2000 000B6400 00080340