Updated: 11 December 1998 |
OpenVMS Alpha System Analysis Tools Manual
Previous | Contents | Index |
READ can read both OpenVMS VAX and OpenVMS Alpha format files. READ should not be used to read OpenVMS VAX format files that contain VAX specific symbols, as this might change the behavior of other OpenVMS Alpha SDA commands. |
Most often the file is provided in SYS$LOADABLE_IMAGES. Many SDA applications, for instance, need to load the definitions of system data structures by issuing a READ command specifying SYSDEF.STB. Others require the definitions of specific global entry points within the executive image.
Table 4-1 lists the files in SYS$LOADABLE_IMAGES that define global locations within executive images.
File | Contents |
---|---|
DDIF$RMS_EXTENSION.EXE | Support for Digital Document Interchange Format (DDIF) file operations. |
ERRORLOG.STB | Error-logging routines and system services |
EXCEPTION.STB | Bugcheck and exception-handling routines and those system services that declare condition and exit handlers |
EXEC_INIT.STB | Initialization code |
F11BXQP.STB | File system support |
IMAGE_MANAGEMENT.STB | Image activator and the related system services |
IO_ROUTINES.STB | $QIO system service, related system services (for example, $CANCEL and $ASSIGN), and supporting routines |
LOCKING.STB | Lock management routines and system services |
LOGICAL_NAMES.STB | Logical name routines and system services |
MESSAGE_ROUTINES.STB | System message routines and system services (including $SNDJBC and $GETTIM) |
PROCESS_MANAGEMENT.STB | Scheduler, report system event, and supporting routines and system services |
RECOVERY_UNIT_SERVICES.STB | Recovery unit system services |
RMS.STB | Global symbols and entry points for RMS |
SECURITY.STB | Security management routines and system services |
SHELL xxK.STB | Process shell |
SYS$ xxDRIVER.EXE | Run-time device drivers |
SYS$CPU_ROUTINES_ xxx.EXE | Processor-specific data and initialization routines |
SYS$NETWORK_SERVICES.EXE | DECnet support |
SYS$PUBLIC_VECTORS.EXE 1 | System service vector base image |
SYS$VCC.STB | Virtual I/O cache |
SYS$VM.STB | System pager and swapper, along with their supporting routines, and management system services |
SYSDEVICE.STB | Mailbox driver and null driver |
SYSGETSYI.STB | Get System Information system service ($GETSYI) |
SYSLDR_DYN.STB | Dynamic executive image loader |
SYSLICENSE.STB | Licensing system service ($LICENSE) |
SYSTEM_PRIMITIVES*.STB | Miscellaneous basic system routines, including those that allocate system memory, maintain system time, create fork processes, and control mutex acquisition |
SYSTEM_SYNCHRONIZATION*.STB | Routines that enforce synchronization |
The following MACRO program can be used to obtain symbols in addition to those in SYS$BASE_IMAGE.EXE:
.TITLE GLOBALS $PHDDEF GLOBAL ; Process header definitions $DDBDEF GLOBAL ; Device data block $UCBDEF GLOBAL ; Unit control block $VCBDEF GLOBAL ; Volume control block $ACBDEF GLOBAL ; AST control block $IRPDEF GLOBAL ; I/O request packet ; more can be inserted here .END |
Use the command below to generate an object module file containing the globals defined in the program.
$MACRO GLOBALS+SYS$LIBRARY:LIB/LIBRARY /OBJECT=GLOBALS.STB |
SDA can also read symbols from an image .EXE or .STB produced by the linker. The STB and EXE files only contain universal symbols. The STB file, however, can be forced to have global symbols for the image if the SYMBOL_TABLE=GLOBAL option is used in the linker options file.
A number of ready-built symbol table files ship with OpenVMS Alpha. They can be found in the directory SYS$LOADABLE_IMAGES, and all have names of the form xyzDEF.STB. Of these files, SDA automatically reads REQSYSDEF.STB on activation. The symbols in the other files can be added to SDA's symbol table using the READ command. Table 2-4 lists the files that OpenVMS Alpha provides in SYS$LOADABLE_IMAGES that define data structure offsets.
#1 |
---|
SDA> READ SDA$READ_DIR:SYSDEF.STB %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYSEXE]SYSDEF.STB;1 |
The READ command causes SDA to add all the global symbols in SDA$READ_DIR:SYSDEF.STB to the SDA symbol table. Such symbols are useful when you are formatting an I/O data structure, such as a unit control block or an I/O request packet.
#2 |
---|
SDA> SHOW STACK Process stacks (on CPU 00) -------------------------- Current operating stack (KERNEL): 00000000.7FF95CD0 FFFFFFFF.80430CE0 SCH$STATE_TO_COM+00040 00000000.7FF95CD8 00000000.00000000 00000000.7FF95CE0 FFFFFFFF.81E9CB04 LNM$SEARCH_ONE_C+000E4 00000000.7FF95CE8 FFFFFFFF.8007A988 PROCESS_MANAGEMENT_NPRO+0E988 SP =>00000000.7FF95CF0 00000000.00000000 00000000.7FF95CF8 00000000.006080C1 00000000.7FF95D00 FFFFFFFF.80501FDC 00000000.7FF95D08 FFFFFFFF.81A5B720 . . . SDA> READ/IMAGE SYS$LOADABLE_IMAGES:PROCESS_MANAGEMENT %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]PROCESS_MANAGEMENT.STB;1 SDA> SHOW STACK Process stacks (on CPU 00) -------------------------- Current operating stack (KERNEL): 00000000.7FF95CD0 FFFFFFFF.80430CE0 SCH$FIND_NEXT_PROC 00000000.7FF95CD8 00000000.00000000 00000000.7FF95CE0 FFFFFFFF.81E9CB04 LNM$SEARCH_ONE_C+000E4 00000000.7FF95CE8 FFFFFFFF.8007A988 SCH$INTERRUPT+00068 SP =>00000000.7FF95CF0 00000000.00000000 00000000.7FF95CF8 00000000.006080C1 00000000.7FF95D00 FFFFFFFF.80501FDC 00000000.7FF95D08 FFFFFFFF.81A5B720 . . . |
The initial SHOW STACK command contains an address that SDA resolves into an offset from the PROCESS_MANAGEMENT executive image. The READ command loads the corresponding symbols into the SDA symbol table such that the reissue of the SHOW STACK command subsequently identifies the same location as an offset within a specific process management routine.
Repeats execution of the last command issued. On terminal devices, the KP0 key performs the same function as the REPEAT command.
REPEAT
None.
None.
The REPEAT command is useful for stepping through a linked list of data structures, or for examining a sequence of memory locations.This command provides a convenient method of displaying a series of data structures in a linked list or examining a sequence of locations.
SDA> SHOW CALL_FRAME Call Frame Information ---------------------- Stack Frame Procedure Descriptor Flags: Base Register = FP, Jacket, Native Procedure Entry: FFFFFFFF.80080CE0 MMG$RETRANGE_C+00180 Return address on stack = FFFFFFFF.8004CF30 EXCEPTION_NPRO+00F30 Registers saved on stack ------------------------ 7FF95E80 FFFFFFFF.FFFFFFFD Saved R2 7FF95E88 FFFFFFFF.8042DBC0 Saved R3 EXCEPTION_NPRW+03DC0 7FF95E90 FFFFFFFF.80537240 Saved R4 7FF95E98 00000000.00000000 Saved R5 7FF95EA0 FFFFFFFF.80030960 Saved R6 MMG$IMGRESET_C+00200 7FF95EA8 00000000.7FF95EC0 Saved R7 7FF95EB0 FFFFFFFF.80420E68 Saved R13 MMG$ULKGBLWSL E 7FF95EB8 00000000.7FF95F70 Saved R29 . . . SDA> SHOW CALL_FRAME/NEXT_FP Call Frame Information ---------------------- Stack Frame Procedure Descriptor Flags: Base Register = FP, Jacket, Native Procedure Entry: FFFFFFFF.80F018D0 IMAGE_MANAGEMENT_PRO+078D0 Return address on stack = FFFFFFFF.8004CF30 EXCEPTION_NPRO+00F30 Registers saved on stack ------------------------ 7FF95F90 FFFFFFFF.FFFFFFFB Saved R2 7FF95F98 FFFFFFFF.8042DBC0 Saved R3 EXCEPTION_ NPRW+03DC0 7FF95FA0 00000000.00000000 Saved R5 7FF95FA8 00000000.7FF95FC0 Saved R7 7FF95FB0 FFFFFFFF.80EF8D20 Saved R13 ERL$DEVINF O+00C20 7FF95FB8 00000000.7FFA0450 Saved R29 . . . SDA> REPEAT Call Frame Information ---------------------- Stack Frame Procedure Descriptor Flags: Base Register = FP, Jacket, Native Procedure Entry: FFFFFFFF.80F016A0 IMAGE_MANAGEMENT_PRO+076A0 Return address on stack = 00000000.7FF2451C Registers saved on stack ------------------------ 7FFA0470 00000000.7FEEA890 Saved R13 7FFA0478 00000000.7FFA0480 Saved R29 . . . |
The first SHOW CALL_FRAME displays the call frame indicated by the current FP value. Because the /NEXT_FP qualifier to the instruction displays the call frame indicated by the saved FP in the current call frame, you can use the REPEAT command to repeat the SHOW CALL_FRAME/NEXT_FP command and follow a chain of call frames.
Scans a range of memory locations for all occurrences of a specified value.
SEARCH [/qualifier] range [=] expression
range
Location in memory to be searched. A location can be represented by any valid SDA expression. To search a range of locations, use the following syntax:
m:n Range of locations to be searched, from m to n m;n Range of locations to be searched, starting at m and continuing for n bytes expression
Indication of the value for which SDA is to search. SDA evaluates the expression and searches the specified range of memory for the resulting value. For a description of SDA expressions, see Section 2.6.2.Note that if no equals sign is used to seperate range and expression, then a space must be inserted between them.
/LENGTH={QUADWORD|LONGWORD|WORD |BYTE}
Specifies the size of the expression value that the SEARCH command uses for matching. If you do not specify the /LENGTH qualifier, the SEARCH command uses a longword length by default./MASK=n
Allows the SEARCH command finer qranularity in its matches. It compares only the given bits of a byte, word, longword, or quadword. To compare bits when matching, you set the bits in the mask; to ignore bits when matching, you clear the bits in the mask./STEPS={QUADWORD|LONGWORD|WORD |BYTE}
Specifies the step factor of the search through the specified memory range. After the SEARCH command has performed the comparison between the value of expression and memory location, it adds the specified step factor to the address of the memory location. The resulting location is the next location to undergo the comparison. If you do not specify the /STEPS qualifier, the SEARCH command uses a step factor of a longword./PHYSICAL
Specifies that the addresses used to define the range of locations to be searched are physical addresses.
SEARCH displays each location as each value is found. If you press Ctrl/T while using the SEARCH command, the system displays how far the search has progressed.
#1 |
---|
SDA> SEARCH GB81F0;500 60068 Searching from FFFFFFFF.800B81F0 to FFFFFFFF.800B86F0 in LONGWORD steps for 00060068... Match at FFFFFFFF.800B8210 SDA> |
The SEARCH command finds the value 0060068 in the longword at FFFFFFFF.800B8210.
#2 |
---|
SDA> SEARCH/STEPS=BYTE 80000000;1000 6 Searching from FFFFFFFF.80000000 to FFFFFFFF.80001000 in BYTE steps for 00000006... Match at FFFFFFFF.80000A99 SDA> |
The SEARCH command finds the value 00000006 in the longword at FFFFFFFF.80000A99.
#3 |
---|
SDA> SEARCH/LENGTH=WORD 80000000;2000 6 Searching from FFFFFFFF.80000000 to FFFFFFFF.80002000 in LONGWORD steps for 0006... Match at FFFFFFFF.80000054 Match at FFFFFFFF.800001EC Match at FFFFFFFF.800012AC Match at FFFFFFFF.800012B8 SDA> |
The SEARCH command finds the value 0006 in the longword locations FFFFFFFF.80000054, FFFFFFFF.800001EC, FFFFFFFF.800012AC, and FFFFFFFF.800012B8.
#4 |
---|
SDA> SEARCH/MASK=FF000000 80000000;2000 80000000 Searching from FFFFFFFF.80000000 to FFFFFFFF.80001FFF in LONGWORD steps for 80000000... Match at FFFFFFFF.80001000 SDA> |
The SEARCH command finds the value 80 in the upper byte of longword at FFFFFFFF.80001000, regardless of the contents of the lower three bytes.
Selects a processor to become the SDA current CPU.
SET CPU cpu-id
cpu-id
Numeric value from 0016 to 1F16 indicating the identity of the processor to be made the current CPU. If you specify a value outside this range or a cpu-id of a processor that was not active at the time of the system failure, SDA displays the following message:
%SDA-E-CPUNOTVLD, CPU not booted or CPU number out of range
None.
When you invoke SDA to examine a system dump, the SDA current CPU context defaults to that of the processor that caused the system to fail. When analyzing a system failure from a multiprocessing system, you may find it useful to examine the context of another processor in the configuration.The SET CPU command changes the current SDA CPU context to that of the processor indicated by cpu-id. The CPU specified by this command becomes the current CPU for SDA until you exit from SDA or change SDA CPU context by issuing one of the following commands:
The following commands also change SDA CPU context if the process-name, pcb-address, or index number (nn) refers to a current process:
- SET PROCESS process-name
- SET PROCESS/ADDRESS=pcb-address
- SET PROCESS/INDEX=nn
- SET PROCESS/SYSTEM
- SHOW PROCESS process-name
- SHOW PROCESS/ADDRESS=pcb-address
- SHOW PROCESS/INDEX=nn
- SHOW PROCESS/SYSTEM
Changing CPU context can cause an implicit change in process context under the following circumstances:
- If there is a current process on the CPU made current, SDA changes its process context to that of that CPU's current process.
- If there is no current process on the CPU made current, SDA process context is undefined and no process-specific information is available until you set SDA process context to that of a specific process.
See Chapter 2, Section 2.5 for further discussion on the way in which SDA maintains its context information.
You cannot use the SET CPU command when examining the running system with SDA.
Enables or disables the automatic clearing of the screen before each new page of SDA output.
SET ERASE_SCREEN {ON|OFF}
ON
Enables the screen to be erased before SDA outputs a new heading. This setting is the default.OFF
Disables the erasing of the screen.
None.
SDA's usual behavior is to erase the screen and then show the data. By setting the OFF parameter, the clear screen action is replaced by a blank line. This action does not affect what's written to a file when the SET LOG or SET OUTPUT commands are used.
#1 |
---|
SDA> SET ERASE_SCREEN ON |
The clear screen action is now enabled.
#2 |
---|
SDA>SET ERASE_SCREEN OFF |
The clear screen action is disabled.
Sets the default size of address data manipulated by the EXAMINE and EVALUATE commands.
SET FETCH [{QUADWORD|LONGWORD|WORD|BYTE}][,][{PHYSICAL|VIRTUAL}]
QUADWORD
Sets the default size to 8 bytes.LONGWORD
Sets the default size to 4 bytes.WORD
Sets the default size to 2 bytes.BYTE
Sets the default size to 1 byte.PHYSICAL
Sets the default access method to physical addresses.VIRTUAL
Set the default access method to virtual addresses. Note that one and only one parameter out of each group can be specified. If both size and access method are to be changed, the two parameters should be separated by spaces and/or a comma. A comma may only be included if a parameter from both groups is specified. See examples 5 and 6.
None.
Sets the default size of address data manipulated by EXAMINE and EVALUATE commands. SDA uses the current default size unless it is overridden by use of the ^Q, ^L, ^W, or ^B qualifier on the @ unary operator in an expression.This command also can set the default access method for address data manipulated by EXAMINE and EVALUATE commands. SDA uses the current default access method unless it is overridden by use of the ^P or ^V qualifier on the @ unary operator in an expression.
#1 |
---|
SDA> EXAMINE MMG$GQ_SHARED_VA_PTES MMG$GQ_SHARED_VA_PTES: FFFFFFFD.FF7FE000 ".`a....." |
This shows the location's contents of a 64-bit virtual address.
#2 |
---|
SDA>SET FETCH LONG SDA>EXAMINE @MMG$GQ_SHARED_VA_PTES %SDA-E-NOTINPHYS, FFFFFFFF.FF7FE000 : virtual data not in physical memory |
This shows a failure because the SET FETCH LONG causes SDA to assume it should take the lower 32 bits of the location's contents as a longword value, sign extend them, and use that value as an address.
#3 |
---|
SDA>EXAMINE @^QMMG$GQ_SHARED_VA_PTES FFFFFFFD.FF7FE000: 000001D0.40001119 "...@..." |
This shows the correct results by overriding the SET FETCH LONG with the ^Q qualifier on the @ operator. SDA takes the full 64-bits of the location's contents and uses that value as an address.
#4 |
---|
SDA>SET FETCH QUAD SDA>EXAMINE @MMG$GQ_SHARED_VA_PTES FFFFFFFD.FF7FE000: 000001D0.40001119 "...@..." |
This shows the correct results by changing the default fetch size to a quadword.
#5 |
---|
SDA>SET FETCH /PHYSICAL SDA>EXAMINE /PHYSICAL @0 |
This command uses the contents of the physical location 0 as the physical address of the location to be examined.
#6 |
---|
SDA>SET FETCH QUADWORD, PHYSICAL |
This command sets the default fetch size and default access method at the same time.
Previous | Next | Contents | Index |
Copyright © Compaq Computer Corporation 1998. All rights reserved. Legal |
6549PRO_007.HTML
|