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. #3
SDA> MAP G550034 Image Base End Image Offset SYS$DUDRIVER Nonpaged read/write 80550000 80551400 00008034
#4In 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
#5The 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
#6The 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
#7The MAP command identifies the address as being within a compressed data section. When an image is installed with the Install utility using the /RESIDENT qualifier, the code sections are mapped in system space. The data sections are compressed into process-private space to reduce null pages or holes in the address space left by the absence of the code section. The SHOW PROCESS/IMAGE display shows how the data has been compressed; the MAP command searches this information to map an address in a compressed data section to an offset in an image.
SDA> MAP 7FC06000 Shareable Address Data Section Base End Image Offset LIBRTL 7FC06000 7FC16800 00090000
#8The MAP command identifies the address as an offset into a shareable address data section residing in P1 space.
SDA> MAP 7FC26000 Read-Write Data Section Base End Image Offset LIBRTL 7FC26000 7FC27000 000B0000
#9The MAP command identifies the address as an offset into a read-write data section residing in P1 space.
SDA> MAP 7FC36000 Shareable Read-Only Data Section Base End Image Offset LIBRTL 7FC36000 7FC3F600 000C0000
#10The MAP command identifies the address as an offset into a shareable read-only data section residing in P1 space.
SDA> MAP 7FC56000 Demand Zero Data Section Base End Image Offset LIBRTL 7FC56000 7FC57000 000E0000
The MAP command identifies the address as an offset into a demand zero data section residing in P1 space.
Allows a given byte, word, longword, or quadword in the dump to be modified.
MODIFY DUMP {/BLOCK=n/OFFSET=n|/NEXT} [/CONFIRM=n] {/BYTE|/WORD|/LONGWORD (d)|/QUADWORD}
value
The new value deposited in the specified location in the dump file.
/BLOCK=n
Block number to be modified. Required unless the /NEXT qualifier is given./OFFSET=n
Byte offset within block to be modified. Required unless the /NEXT qualifier is given./CONFIRM=n
Checks existing contents of location to be modified./NEXT
Indicates that the byte(s) immediately following the location altered by the previous MODIFY DUMP command is/are to be modified. Is used instead of the /BLOCK=n and /OFFSET=n qualifiers./BYTE
Indicates that only a single byte is to be replaced./WORD
Indicates that a word is to be replaced./LONGWORD
Indicates that a longword is to be replaced. This is the default./QUADWORD
Indicates that a quadword is to be replaced.
The MODIFY DUMP command is used on a dump file that cannot be analyzed without specifying the /OVERRIDE qualifier on the ANALYZE/CRASH_DUMP command. The MODIFY DUMP command corrects the problem that prevents normal analysis of a dump file. The MODIFY DUMP command can only be used when SDA has been invoked with the ANALYZE/CRASH_DUMP/ OVERRIDE command.
Important
This command is not intended for general use. It is provided for the benefit of Digital support personnel when investigating crash dumps that cannot be analyzed in other ways.
Note that if the block being modified is part of the dump header, the error log buffers, or the compression map, the changes made are not seen when the appropriate SHOW DUMP command is issued, unless you first exit from SDA and then reissue the ANALYZE/CRASH_DUMP command.
The MODIFY DUMP command sets a bit in the dump header to indicate that the dump has been modified. Subsequent ANALYZE/CRASH_DUMP commands issued to that file produce the following warning message:
%SDA-W-DUMPMOD, dump has been modified
SDA> MODIFY DUMP/BLOCK=10/OFFSET=100/WORD FF
This example shows the dump file modified with word value of 0000 at offset 100 in block 00000010 replaced by 00FF.
SDA> MODIFY DUMP/BLOCK=10/OFFSET=100/WORD 0/CONFIRM=EE
This example shows that the actual word value of 00FF at offset 100 in block 00000010 does not match given value of 00EE. The following message is displayed:
%SDA-E-NOMATCH, expected value does not match value in dump; dump not updated
SDA> MODIFY DUMP/BLOCK=10/OFFSET=100/WORD 0/CONFIRM=FF
This example shows the dump file modified with a word value of 00FF at offset 100 in block 00000010 replaced by 0000.
Loads the global symbols contained in the specified file into the SDA symbol table.
READ [/LOG|/NOLOG|/RELOCATE =expression|/SYMVA=expression]
{/EXECUTIVE [directory spec]|/FORCE filespec
|/IMAGE filespec|filespec}
directory-spec
The directory-spec is the name of the directory containing the loadable images of the executive. This parameter defaults to SDA$READ_DIR which is a search list of SYS$LOADABLE_IMAGES and SYS$LIBRARY.filespec
Name of the device, directory, and file that contains the file from which you want to read global symbols. The filespec defaults to SYS$DISK:[default-dir]filename.type, where SYS$DISK and [default-dir] represent the disk and directory specified in your last DCL command SET DEFAULT. If no type has been given in filespec, SDA first tries .STB and then .EXE.If no device or directory is given in the file specification, and the file specification is not found in SYS$DISK:[default_dir], then SDA attempts to open the file SDA$READ_DIR:filename.type. If no type has been given in filespec, SDA first tries .STB and then .EXE.
If the file name is the same as that of an execlet or image, but the symbols in the file are not those of the execlet or image, then you must use the /FORCE qualifier, and optionally /RELOCATE and /SYMVA qualifiers, to tell SDA how to interpret the symbols in the file.
/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. For all the execlets in the system, SDA reads the .STB or .EXE files in the requested directory./FORCE filespec
Forces SDA to read the symbols file, regardless of what other information or qualifiers are specified. If you do not specify the /FORCE qualifier, SDA may not read the symbols file if the specified filespec matches the image name in either the executive loaded images or the current processes activated image list, and one of the following conditions is true:
- The image has a symbols vector (is a shareable image), and a symbols vector was not specified with the /SYMVA or /IMAGE qualifier.
- The image is sliced, and slicing information was not provided with the /IMAGE qualifier.
- The shareable or executive image is not loaded at the same address it was linked at, and the relocation information was not provided with either the /IMAGE or /RELOCATE qualifier.
The use of /FORCE [/SYMVA=addr][/RELOCATE=addr] file spec is a variant of the /IMAGE qualifier and avoids fixing up the symbols to match an image of the same name.
/IMAGE filespec
Searches the executive loaded image list and the current process activated image list for the image specified by filespec. If the image is found, the symbols are read in using the image symbol vector (if there is one) and either slicing or relocation information.This is the preferred way to read in the .STB files produced by the linker. These .STB files contain all universal and global symbols, unless SYMBOL_TABLE=GLOBAL is in the linker options file, in which case the .STB file contains global symbols only.
/LOG
The /LOG qualifier causes SDA to output the %SDA-I-READSYM message for each symbol table file it reads. This is the default. The /LOG qualifier can be specified with any other combination of parameter and qualifier.
/NOLOGThe /NOLOG qualifier suppresses the output of the %SDA-I-READSYM messages. The /NOLOG qualifier can be specified with any other combination of parameter and qualifier.
/RELOCATE=expression
Changes the relative addresses of the symbols to absolute addresses by adding the value of expression to the value of each symbol in the symbol-table file to be read. This qualifier changes those addresses to absolute addresses in the address space into which the dump is mapped.The relocation only applies to symbols with the relocate flag set. All universal symbols must be found in the symbol vector for the image. All constants are read in without any relocation.
If the image is sliced (image sections are placed in memory at different relative offsets than how the image is linked), then the /RELOCATE qualifier does not work. SDA compares the file name used as a parameter to the READ command against all the image names in the executive loaded image list and the current processes activated image list. If a match is found, and that image contains a symbol vector, an error results. At this point you can either use the /FORCE qualifier or the /IMAGE qualifier to override the error.
/SYMVA=expression
Informs SDA whether the absolute symbol vector address is for a shareable image (SYS$PUBLIC_VECTORS.EXE) or base system image (SYS$BASE_IMAGE.EXE). All symbols found in the file with the universal flag are found by referencing the symbol vector (that is, the symbol value is a symbol vector offset).
The READ command symbolically identifies locations in memory and the definitions used by SDA for which the default files (SDA$READ_DIR:SYS$BASE_IMAGE.EXE and SDA$READ_DIR:REQSYSDEF.STB) provide no definition. In other words, the required global symbols are located in modules and symbol tables that have been compiled and/or linked separately from the executive. SDA extracts no local symbols from the files.The file specified in the READ command can be the output of a compiler or assembler (for example, an .OBJ file).
Note
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 SDA-4 lists the files that OpenVMS Alpha provides in SYS$LOADABLE_IMAGES that define data structure offsets.
Table SDA-9 lists the files in SYS$LOADABLE_IMAGES that define global locations within executive images.
Table SDA-9 Modules Defining Global Locations Within Executive Image 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¹ 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
¹This file is located in SYS$LIBRARY.
#1
SDA> READ SDA$READ_DIR:SYSDEF.STB %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYSEXE]SYSDEF.STB;1
#2The 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.
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.
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 6.2.
/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>
#2The SEARCH command finds the value 0060068 in the longword at FFFFFFFF.800B8210.
SDA> SEARCH/STEPS=BYTE 80000000;1000 6 Searching from FFFFFFFF.80000000 to FFFFFFFF.80001000 in BYTE steps for 00000006... Match at FFFFFFFF.80000A99 SDA>
#3The SEARCH command finds the value 00000006 in the longword at FFFFFFFF.80000A99.
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>
#4The SEARCH command finds the value 0006 in the longword locations FFFFFFFF.80000054, FFFFFFFF.800001EC, FFFFFFFF.800012AC, and FFFFFFFF.800012B8.
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:
- SET CPU cpu-id
- SHOW CPU cpu-id
- SHOW CRASH
- SHOW MACHINE_CHECK cpu-id
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
Previous | Next | Contents | [Home] | [Comments] | [Ordering info] | [Help]
![]()
6135P005.HTM OSSG Documentation 22-NOV-1996 14:11:53.68Copyright © Digital Equipment Corporation 1996. All Rights Reserved.