Document revision date: 30 March 2001

## OpenVMS VAX System Dump Analyzer Utility Manual

Order Number: AA--PV6TD--TE

## April 2001

This manual explains how to use the System Dump Analyzer (SDA) to investigate system failures and examine a running system.

Revision/Update Information: This manual supersedes the VMS System Dump Analyzer Utility Manual, Version 6.0

Software Version: OpenVMS VAX Version 7.3

Compaq Computer Corporation Houston, Texas

© 2001 Compaq Computer Corporation

Compaq, AlphaServer, VAX, VMS, and the Compaq logo Registered in U.S. Patent and Trademark Office.

OpenVMS, Alpha, and DECdirect are trademarks of Compaq Information Technologies Group, L.P. in the United States and other countries.

UNIX and X/Open are trademarks of The Open Group in the United States and other countries.

All other product names mentioned herein may be the trademarks of their respective companies.

Confidential computer software. Valid license from Compaq required for possession, use, or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license.

Compaq shall not be liable for technical or editorial errors or omissions contained herein. The information in this document is provided "as is" without warranty of any kind and is subject to change without notice. The warranties for Compaq products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty.

ZK4556

The Compaq OpenVMS documentation set is available on CD-ROM.

Contents | Index

## Preface

## Intended Audience

The OpenVMS VAX System Dump Analyzer Utility Manual is primarily intended for the system programmer who must investigate the causes of system failures and debug kernel-mode code, such as a device driver. This programmer should have some knowledge of OpenVMS data structures to properly interpret the results of System Dump Analyzer (SDA) commands.

This manual also includes information required by the system manager in order to maintain the system resources necessary to capture and store system crash dumps. Those who need to determine the cause of a hung process or improve system performance can refer to this manual for instructions for using SDA to analyze a running system.

## Document Structure

The OpenVMS VAX System Dump Analyzer Utility Manual contains the following sections:

Section | Description of Contents
--- | ---
SDA Description | Includes the following information: An introduction to the functions of the System Dump Analyzer (SDA) A description of SDA features A discussion of key concepts of SDA An illustration of the use of SDA This section also includes instructions for maintaining the optimal environment for the analysis of system failures and notes the requirements for processes invoking SDA.
SDA Usage Summary | Summarizes how to use SDA, including invoking SDA, exiting from SDA, and recording the output of an SDA session. It also describes required privileges.
SDA Qualifiers | Describes ANALYZE command qualifiers that govern the behavior of SDA: /CRASH_DUMP, /RELEASE, /SYMBOL, and /SYSTEM.
SDA Commands | Describes each SDA command; descriptions include the following information about each command: Function Format Parameters This section also provides examples of situations in which specific commands are useful.

## Related Documents

Additional information is available in the following documents:

- OpenVMS System Manager's Manual, Volume 1: Essentials
- OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems
- OpenVMS System Management Utilities Reference Manual
- Guide to Creating OpenVMS Modular Procedures
- OpenVMS Performance Management
- OpenVMS VAX Device Support Manual1
- OpenVMS DCL Dictionary
- OpenVMS System Services Reference Manual

Investigators of VMScluster failures will find the discussion in OpenVMS Cluster Systems and the discussion of the Show Cluster utility in the OpenVMS System Management Utilities Reference Manual helpful in understanding the output of several SDA commands.

For additional information about Compaq OpenVMS products and services, access the Compaq website at the following location:

    http://www.openvms.compaq.com/

Note ##### 1 This manual has been archived but is available on the OpenVMS Documentation CD-ROM.

## Reader's Comments

Compaq welcomes your comments on this manual. Please send comments to either of the following addresses:

Internet | openvmsdoc@compaq.com
Mail | Compaq Computer Corporation OSSG Documentation Group, ZKO3-4/U08 110 Spit Brook Rd. Nashua, NH 03062-2698

## How To Order Additional Documentation

Use the following World Wide Web address to order additional documentation:

    http://www.openvms.compaq.com/

If you need help deciding which documentation best meets your needs, call 800-282-6672.

## Conventions

The following conventions are used in this manual:

Ctrl/ x | A sequence such as Ctrl/ x indicates that you must hold down the key labeled Ctrl while you press another key or a pointing device button.
PF1 x | A sequence such as PF1 x indicates that you must first press and release the key labeled PF1 and then press and release another key or a pointing device button.
`[Return]` | In examples, a key name enclosed in a box indicates that you press a key on the keyboard. (In text, a key name is not enclosed in a box.) In the HTML version of this document, this convention appears as brackets, rather than a box.
... | A horizontal ellipsis in examples indicates one of the following possibilities: Additional optional arguments in a statement have been omitted. The preceding item or items can be repeated one or more times. Additional parameters, values, or other information can be entered.
. . . | A vertical ellipsis indicates the omission of items from a code example or command format; the items are omitted because they are not important to the topic being discussed.
( ) | In command format descriptions, parentheses indicate that you must enclose choices in parentheses if you choose more than one.
[ ] | In command format descriptions, brackets indicate optional choices. You can choose one or more items or no items. Do not type the brackets on the command line. However, you must include the brackets in the syntax for OpenVMS directory specifications and for a substring specification in an assignment statement.
| | In command format descriptions, vertical bars separate choices within brackets or braces. Within brackets, the choices are optional; within braces, at least one choice is required. Do not type the vertical bars on the command line.
{ } | In command format descriptions, braces indicate required choices; you must choose at least one of the items listed. Do not type the braces on the command line.
bold text | This typeface represents the introduction of a new term. It also represents the name of an argument, an attribute, or a reason.
italic text | Italic text indicates important information, complete titles of manuals, or variables. Variables include information that varies in system output (Internal error number), in command lines (/PRODUCER= name), and in command parameters in text (where dd represents the predefined code for the device type).
UPPERCASE TEXT | Uppercase text indicates a command, the name of a routine, the name of a file, or the abbreviation for a system privilege.
`Monospace text` | Monospace type indicates code examples and interactive screen displays. In the C programming language, monospace type in text identifies the following elements: keywords, the names of independently compiled external functions and files, syntax summaries, and references to variables or identifiers introduced in an example.
- | A hyphen at the end of a command format description, command line, or code line indicates that the command or statement continues on the following line.
numbers | All numbers in text are assumed to be decimal unless otherwise noted. Nondecimal radixes---binary, octal, or hexadecimal---are explicitly indicated.

## SDA Description

When a fatal error causes the system to fail, the operating system copies the contents of memory to a system dump file; the system also records the hardware context of each processor in the system.

The System Dump Analyzer (SDA) provides a means of interpreting the contents of the system dump file, thus enabling you to examine the status of each processor at the time of the failure and to investigate the probable causes of the crash.

To examine the system dump file, you invoke SDA by using the DCL command ANALYZE/CRASH_DUMP. You can also invoke SDA to analyze a running system, using the DCL command ANALYZE/SYSTEM. Most SDA commands generate useful output in this mode of operation.

Caution Although the analysis of a running system might be instructive, be aware that system context, process context, and a processor's hardware context remain fluid during any given display. In a multiprocessing environment, a process running SDA might be rescheduled to a different processor frequently during analysis. Therefore, Compaq recommends that you not examine the hardware context of processors in a running system.

Following are brief explanations of SDA qualifiers. Details about these qualifiers are in the SDA Qualifiers section.

Qualifier | Description
--- | ---
/CRASH_DUMP | Invokes SDA to analyze a specified dump file
/RELEASE | Invokes SDA to release those blocks that are occupied by a crash dump in a specified system paging file
/SYMBOL | Specifies a system symbol table for SDA to use in place of the system symbol table it uses by default (SYS$SYSTEM:SYS.STB)
/SYSTEM | Invokes SDA to analyze a running system

The following tables show the SDA commands that you can use to perform operations within the SDA utility. These commands are in groups of related information. Details about SDA commands are in the SDA Commands section.

Table SDA-1 describes information that you can select and display about processes.

Table SDA-1 Selecting and Displaying Information About Processes
Operation | SDA Command
--- | ---
Display the condition of the operating system and the hardware context of each processor in the system at the time of a crash | SHOW CRASH
Display a summary of all processes on the system | SHOW SUMMARY
Select a process to become the SDA current process | SET PROCESS
Examine the memory of any process | SHOW PROCESS
Select a specific processor in a multiprocessing system as the subject of analysis | SET CPU
Display information about the state of a processor at the time of the system failure | SHOW CPU
Display multiprocessor synchronization information | SHOW SPINLOCKS
Display the contents of a specific process stack or the interrupt stack of a specific processor | SHOW STACK
Display the layout of the loadable executive images | SHOW EXECUTIVE

Table SDA-2 describes information that you can display about data structures.

Table SDA-2 Displaying Information about Data Structures
Operation | SDA Command
--- | ---
Display memory management data structures | SHOW POOL, SHOW PFN_DATA, SHOW PAGE_TABLE
Display device status, as reflected in system data structures | SHOW DEVICE
Display OpenVMS RMS data structures of a process | SHOW PROCESS/RMS
Display lock management data structures | SHOW RESOURCE, SHOW LOCK
Display information contained in various local area network (LAN) data structures | SHOW LAN
Display VAXcluster management data structures | SHOW CLUSTER, SHOW CONNECTIONS, SHOW RSPID, SHOW PORTS

Table SDA-3 describes SDA commands that you can use to examine, evaluate, and validate information.

Table SDA-3 Examining, Evaluating, and Validating Information
Operation | SDA Command
--- | ---
Evaluate an expression in hexadecimal and decimal, interpreting its value as a symbol, a condition value, a page table entry (PTE), or a processor status longword (PSL) | EVALUATE
Examine the contents of memory locations, optionally interpreting them as MACRO instructions, a PTE, or a PSL | EXAMINE
Validate the integrity of the links in a queue | VALIDATE QUEUE

Table SDA-4 describes the SDA commands that you can use to search for, format, and copy information.

Table SDA-4 Searching for, Formatting, and Copying Information
Operation | SDA Command
--- | ---
Search memory for a given value | SEARCH
Format system data structures | FORMAT
Format a call frame from a stack location | SHOW CALL_FRAME
Copy the system dump file | COPY

Table SDA-5 describes the operations you can perform to manage the SDA utility and the SDA symbol table.

Table SDA-5 Managing the SDA Utility and the SDA Symbol Table
Operation | SDA Command
--- | ---
Define keys to invoke SDA commands | DEFINE/KEY
Switch control of your terminal from your current process to another process in your job | ATTACH
Direct (or echo) the output of an SDA session to a file or device | SET OUTPUT or SET LOG
Repeat execution of the last command issued | REPEAT
Create a subprocess of the process currently running SDA | SPAWN
Change the options shown by the SHOW PROCESS/RMS command | SET RMS
Define symbols to represent values or locations in memory and add them to the SDA symbol table | DEFINE
Read a set of global symbols into the SDA symbol table | READ
Display the hexadecimal value of a symbol and, if the value is equal to an address location, the contents of that location | SHOW SYMBOL
Exit from the SDA display or from the SDA utility | EXIT

Table SDA-6 describes the commands that you can use to display information produced by DECdtm.

Table SDA-6 Displaying Information Produced by DECdtm
Operation | SDA Command
--- | ---
Display information about all transactions on the node or about a specified transaction | SHOW TRANSACTIONS
Display information about transaction logs currently open for the node | SHOW LOGS

Although SDA provides a great deal of information, it does not analyze all the control blocks and data contained in memory. For this reason, in the event of system failure it is extremely important that you send Compaq a Software Performance Report (SPR) and a copy of the system dump file written at the time of the failure.

## 1 System Management and SDA

The system manager must perform the following operations in regard to the system dump file:

- Ensure that the system writes a dump file whenever the system fails.
- Ensure that the dump file is large enough to contain all the information to be saved.
- Ensure that the dump file is saved for analysis.

The following sections describe these tasks.

### 1.1 Understanding the System Dump File

The operating system attempts to write information into the system dump file only if the system parameter DUMPBUG is set. 1 If DUMPBUG is set and the operating system fails, the system writes the contents of the error log buffers, processor registers, and physical memory into the system dump file, overwriting its previous contents.

If the system dump file is too small, it cannot contain all of memory when a system failure occurs. For most systems, this means that the system's page table (SPT) is not included in the dump. SDA cannot analyze a dump unless the entire SPT is included in the dump.

#### 1.1.1 Choosing Between SYSDUMP.DMP and PAGEFILE.SYS Files

SYS$SYSTEM:SYSDUMP.DMP (SYS$SPECIFIC:[SYSEXE]SYSDUMP.DMP) is furnished as an empty file in the software distribution kit. To successfully store a crash dump, you must make SYS$SYSTEM:SYSDUMP.DMP large enough to hold all the information to be written when the system fails. If this is not possible, you can have dumps written into the system paging file, SYS$SYSTEM:PAGEFILE.SYS. You can enlarge or adjust the size of either of these files by using the CREATE command of the System Generation utility (SYSGEN), as described in the OpenVMS System Management Utilities Reference Manual.

Using SYSDUMP.DMP

To calculate the correct size for SYS$SYSTEM:SYSDUMP.DMP, use the following formula:

         size-in-blocks(SYS$SYSTEM:SYSDUMP.DMP)
                 = size-in-pages(physical-memory)
                 + (number-of-error-log-buffers * blocks-per-buffer)
                 + 1

You can use the DCL command SHOW MEMORY to determine the total size of physical memory on your system. In addition, you must account for any MA780 multiport memory installed on your system. The number of error log buffers in any given system varies, depending on the setting of the ERRORLOGBUFFERS system parameter. (See the OpenVMS System Management Utilities Reference Manual for additional information about this parameter.)

Using PAGEFILE.SYS

If SYS$SYSTEM:SYSDUMP.DMP does not exist, the operating system writes the dump of physical memory into SYS$SYSTEM:PAGEFILE.SYS, the system's paging file, overwriting the contents of that file. If the SAVEDUMP system parameter is set, the dump file is retained in PAGEFILE.SYS when the system is booted. If it is clear, the entire paging file is used for paging, and any dump written to the paging file is lost.2

Do not use a selective dump (DUMPSTYLE=1) style with PAGEFILE.SYS. If the PAGEFILE is used for a selective dump, and if the PAGEFILE is not large enough to contain all the logical memory blocks, the dump fills the entire pagefile and the system may hang on reboot. When selective dumping is setup, all available space will be used to write out the logical memory blocks. If the pagefile is large enough to contain all of physical memory, there is no reason to use selective dumping and a full memory dump (DUMPSTYLE=0) should be used.

To calculate the minimum size for SYS$SYSTEM:PAGEFILE.SYS, use the following formula:

         size-in-blocks(SYS$SYSTEM:PAGEFILE.SYS)
                 = size-in-pages(physical-memory)
                 + (number-of-error-log-buffers * blocks-per-buffer)
                 + 1
                 + 1000

Caution This formula calculates only the minimum size requirement for saving a dump in the system's primary page file. For most systems, the page file must be larger than this to avoid hanging the system. (See the OpenVMS System Manager's Manual, Volume 1: Essentials and OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems for more information.)

Freeing Space in PAGEFILE.SYS

If you use SYS$SYSTEM:PAGEFILE.SYS to hold system crash dumps, you must later free the space occupied by the dump so that the pager can use it. Usually, you include SDA commands in the site-specific startup command procedure (SYS$MANAGER:SYSTARTUP_VMS.COM) to free this space; if you do not, your system might hang during the startup procedure.

A common method of freeing space is to copy the dump from SYS$SYSTEM:PAGEFILE.SYS to another file, using the SDA COPY command. (Although you can also use the DCL COPY command to copy a dump file, only the SDA COPY command frees the pages occupied by the dump from the system's paging file.)

Occasionally, you might want to free the pages in the paging file that are taken up by the dump without having to copy the dump elsewhere. When you issue the ANALYZE/CRASH_DUMP/RELEASE command, SDA immediately releases the pages to be used for system paging, effectively deleting the dump.

Note The ANALYZE/CRASH_DUMP/RELEASE command does not allow you to analyze the dump before deleting it.

Note ##### 1 The DUMPBUG parameter is set by default. To examine or change its value, consult the OpenVMS System Management Utilities Reference Manual. ##### 2 The SAVEDUMP parameter is clear by default. To examine or change its value, consult the OpenVMS System Management Utilities Reference Manual.

Next | Contents | Index

| privacy and legal statement |
4556PRO.HTML