 |
OpenVMS Alpha System Analysis Tools Manual
HELP
Displays information about the SDA utility, its operation, and the
format of its commands.
Format
HELP [topic-name]
Parameter
topic-name
Topic 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
|
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 the
features of SDA and those commands and topics for which you can request
help, as follows:
Example
|
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
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?
|
MAP
Transforms an address into an offset in a particular image.
Format
MAP address
Parameter
address
Address to be identified.
Qualifiers
None.
Description
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
|
Examples
#1 |
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:
.
.
.
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
.
.
.
|
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.
#2 |
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.
#3 |
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.
#4 |
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.
#5 |
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.
#6 |
SDA> MAP B2340
Compressed Data Section Base End Image Offset
LIBRTL 000B2000 000B6400 00080340
|
The 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=ALL 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.
#7 |
SDA> MAP 7FC06000
Shareable Address Data Section Base End Image Offset
LIBRTL 7FC06000 7FC16800 00090000
|
The MAP command identifies the address as an offset into a shareable
address data section residing in P1 space.
#8 |
SDA> MAP 7FC26000
Read-Write Data Section Base End Image Offset
LIBRTL 7FC26000 7FC27000 000B0000
|
The MAP command identifies the address as an offset into a read-write
data section residing in P1 space.
#9 |
SDA> MAP 7FC36000
Shareable Read-Only Data Section Base End Image Offset
LIBRTL 7FC36000 7FC3F600 000C0000
|
The MAP command identifies the address as an offset into a shareable
read-only data section residing in P1 space.
#10 |
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.
MODIFY DUMP
Allows a given byte, word, longword, or quadword in the dump to be
modified.
Format
MODIFY DUMP {/BLOCK=n/OFFSET=n|/NEXT}
[/CONFIRM=n] {/BYTE|/WORD|/LONGWORD (d)|/QUADWORD} value
Parameter
value
New value deposited in the specified location in the dump file.
Qualifiers
/BLOCK=n
Indicates block number to be modified. Required unless the /NEXT
qualifier is given.
/OFFSET=n
Indicates byte offset within block to be modified. Required unless the
/NEXT qualifier is given.
/NEXT
Indicates that the byte or bytes immediately following the location
altered by the previous MODIFY DUMP command are to be modified. Used
instead of the /BLOCK=n and /OFFSET=n qualifiers.
/CONFIRM=n
Checks existing contents of location to be modified.
/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.
Description
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. You can use the MODIFY DUMP command to correct the problem
that prevents normal analysis of a dump file. You can only use the
MODIFY DUMP command when you have invoked SDA with the
ANALYZE/CRASH_DUMP/OVERRIDE command.
Important
This command is not intended for general use. It is provided for the
benefit of Compaq support personnel when investigating crash dumps that
cannot be analyzed in other ways.
|
If the block being modified is part of either the dump header, the
error log buffers, or the compression map, the changes made are not
seen when you issue the appropriate SHOW DUMP command, 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
|
Examples
#1 |
SDA>> MODIFY DUMP/BLOCK=10/OFFSET=100/WORD FF
|
This example shows the dump file modified with the word at offset 100
in block 00000010 replaced by 00FF.
#2 |
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 the given value of 00EE. The following
message is displayed:
#3 |
%SDA-E-NOMATCH, expected value does not match value in dump; dump not updated
|
#4 |
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.
READ
Loads the global symbols contained in the specified file into the SDA
symbol table.
Format
READ [/[NO]LOG|/RELOCATE
=expression|/SYMVA=expression] {/EXECUTIVE
[directory spec]|/FORCE filespec |/IMAGE filespec|filespec}
Parameters
directory-spec
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.
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.
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]
filespec 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 symbols, unless
SYMBOL_TABLE=GLOBAL is in the linker options file, in which case the
.STB file contains all universal and global symbols.
/LOG /NOLOG
The /LOG qualifier causes SDA to output the %SDA-I-READSYM message for
each symbol table file it reads. This is the default. You can specify
the /LOG qualifier with any other combination of parameters and
qualifiers.
The /NOLOG qualifier suppresses the output of the %SDA-I-READSYM
messages. You can specify the /NOLOG qualifier with any other
combination of parameters and qualifiers.
/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).
Description
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
The READ command can read both OpenVMS VAX and OpenVMS Alpha format
files. Do not use READ 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.
The files in SYS$LOADABLE_IMAGES define global locations within
executive images, including those listed in Table 4-1. The actual
list of executive images used varies, depending on platform type,
devices, and the settings of several system parameters.
Table 4-1 Modules Defining Global Locations Within Executive Images
File |
Contents |
ACME.EXE
|
$ACM system service
|
CNX$DEBUG.EXE
|
Connection Manager trace routines
|
DDIF$RMS_EXTENSION.EXE
|
Support for Digital Document Interchange Format (DDIF) file operations
|
ERRORLOG.STB
|
Error-logging routines and system services
|
EXCEPTION.STB
1
|
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
|
FC$GLOGALS.STB
|
Fibrechannel symbols
|
IMAGE_MANAGEMENT.STB
|
Image activator and the related system services
|
IO_ROUTINES.STB
1
|
$QIO system service, related system services (for example, $CANCEL and
$ASSIGN), and supporting routines
|
LAT$RATING.EXE
|
CPU load-balancing routines for LAT
|
LCK$DEBUG.EXE
|
Lock manager trace routines
|
LMF$GROUP_TABLE.EXE
|
Data structures for licensed product groups
|
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)
|
MSCP.EXE
|
Disk MSCP server
|
MULTIPATH.STB
1
|
Fibrechannel multipath support routines
|
NET$CSMACD.EXE
|
CSMA/CD LAN management module
|
NET$FDDI.EXE
|
FDDI LAN management module
|
NT_EXTENSION.EXE
|
NT extensions for persona system services
|
PROCESS_MANAGEMENT.STB
1
|
Scheduler, report system event, and supporting routines and system
services
|
RECOVERY_UNIT_SERVICES.STB
|
Recovery unit system services
|
RMS.EXE
|
Global symbols and entry points for RMS
|
SECURITY.STB
1
|
Security management routines and system services
|
SHELL
xxK.STB
|
Process shell
|
SPL$DEBUG.EXE
|
Spinlock trace routines
|
SSPI.EXE
|
Security Support Provider Interface
|
SYS$
xxDRIVER.EXE
|
Run-time device drivers
|
SYS$ATMWORKS351.EXE
|
PCI-ATM driver
|
SYS$CLUSTER.EXE
|
OpenVMS Cluster support routines
|
SYS$CPU_ROUTINES_
xxxx.EXE
|
Processor-specific data and initialization routines
|
SYS$EW1000A.EXE
|
Gigabit Ethernet driver
|
SYS$GALAXY.STB
|
OpenVMS Galaxy support routines
|
SYS$IPC_SERVICES.EXE
|
Interprocess communication for DECdtm and Batch/Print
|
SYS$LAN.EXE
|
Common LAN routines
|
SYS$LAN_ATM.EXE
|
LAN routines for ATM
|
SYS$LAN_ATM4.EXE
|
LAN routines for ATM (ForeThought)
|
SYS$LAN_CSMACD.EXE
|
LAN routines for CSMA/CD
|
SYS$LAN_FDDI.EXE
|
LAN routines for FDDI
|
SYS$LAN_TR.EXE
|
LAN routines for Token Ring
|
SYS$MME_SERVICES.STB
|
Media Management Extensions
|
SYS$NETWORK_SERVICES.EXE
|
DECnet support
|
SYS$NTA.STB
|
NT affinity routines and services
|
SYS$PUBLIC_VECTORS.EXE
2
|
System service vector base image
|
SYS$SCS.EXE
|
System Communication Services
|
SYS$TRANSACTION_SERVICES.EXE
|
DECdtm services
|
SYS$UTC_SERVICES.EXE
|
Universal Coordinated Time services
|
SYS$VCC.STB
1
|
Virtual I/O cache
|
SYS$VM.STB
|
System pager and swapper, along with their supporting routines, and
management system services
|
SYS$XFCACHE.STB
1
|
Extented File Cache
|
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_DEBUG.EXE
|
XDelta and SCD routines
|
SYSTEM_PRIMITIVES.STB
1
|
Miscellaneous basic system routines, including those that allocate
system memory, maintain system time, create fork processes, and control
mutex acquisition
|
SYSTEM_SYNCHRONIZATION.STB
1
|
Routines that enforce synchronization
|
TCPIP$BGDRIVER.STB
3
|
TCP/IP internet driver
|
TCPIP$INETACP.STB
3
|
TCP/IP internet ACP
|
TCPIP$INETDRIVER.STB
3
|
TCP/IP internet driver
|
TCPIP$INTERNET_SERVICES.STB
3
|
TCP/IP internet execlet
|
TCPIP$NFS_SERVICES.STB
3
|
Symbols for the TCP/IP NFS server
|
TCPIP$PROXY_SERVICES.STB
3
|
Symbols for the TCP/IP proxy execlet
|
TCPIP$PWIPACP.STB
3
|
TCP/IP PWIP ACP
|
TCPIP$PWIPDRIVER.STB
3
|
TCP/IP PWIP driver
|
TCPIP$TNDRIVER.STB
3
|
TCP/IP TELNET/RLOGIN server driver
|
TMSCP.EXE
|
Tape MSCP server
|
VMS_EXTENSION.EXE
|
VMS extensions for persona system services
|
1Variations of these files also exist, for example, where
the file name ends in "_MON." System parameters such as SYSTEM_CHECK
determine which image is loaded.
2This file is located in SYS$LIBRARY.
3Only available if TCP/IP has been installed. These are
found in SYS$SYSTEM, and are not automatically read in when you issue a
READ/EXEC command.
|