VSI OpenVMS System Analysis Tools Manual

Operating System and Version:
VSI OpenVMS IA-64 Version 8.4-1H1 or higher
VSI OpenVMS Alpha Version 8.4-2L1 or higher

Preface

1. About VSI

VMS Software, Inc. (VSI) is an independent software company licensed by Hewlett Packard Enterprise to develop and support the OpenVMS operating system.

2. About This Manual

The VSI OpenVMS System Analysis Tools Manual is intended primarily for the system programmer or analyst who must investigate the causes of system failures and debug kernel-mode code, such as a device driver.

This manual also includes system management information for maintaining the system resources necessary to capture and store system crash dumps, including the use of dump-off-system-disk (DOSD). To help determine the cause of a hung process or improve system performance, consult this manual for instructions on using the appropriate system analysis tool to analyze your system.

3. Document Structure

This VSI OpenVMS System Analysis Tools Manual contains an introductory chapter and four parts.

Chapter 1, Overview of System Analysis Tools presents an overview of the system analysis tools, which are:

  • System Dump Analyzer Utility including Crash Log Utility Extractor, several other extensions, and descriptions of the callable routines available to user-written extensions

  • System Code and System Dump debuggers

  • Alpha Watchpoint Utility

  • System Service Logging Utility

  • Delta/XDelta Debugger

  • Dump-Off-System-Disk

Part I, “OpenVMS System Dump Analyzer (SDA)” describes the System Dump Analyzer (SDA), its use and commands, the SDA Crash Log Utility Extractor (CLUE), several other SDA extensions, and the SDA callable routines.

Part II, “OpenVMS System Code Debugger and System Dump Debugger” describes the System Code Debugger (SCD) and the System Dump Debugger (SDD).

Part III, “OpenVMS Alpha Watchpoint Utility” describes the Alpha Watchpoint Utility (WP).

Part IV, “OpenVMS System Service Logging Utility” describes the System Service Logging Utility (SSLOG).

4. Related Documents

For additional information, refer to the following documents:

  • VSI OpenVMS Version 8.4 Upgrade and Installation Manual

  • VSI OpenVMS Calling Standard

  • VSI OpenVMS System Manager's Manual, Volume 1: Essentials

  • VSI OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems

  • VSI OpenVMS Programming Concepts Manual, Volume II

  • Writing OpenVMS Alpha Device Drivers in C

  • OpenVMS AXP Internals and Data Structures

  • Alpha Architecture Reference Manual

  • Intel IA-64 Architecture Software Developer's Manual

  • MACRO-64 Assembler for OpenVMS AXP Systems Reference Manual

5. VSI Encourages Your Comments

You may send comments or suggestions regarding this manual or any VSI document by sending electronic mail to the following Internet address: . Users who have VSI OpenVMS support contracts through VSI can contact for help with this product.

6. OpenVMS Documentation

The full VSI OpenVMS documentation set can be found on the VMS Software Documentation webpage at https://docs.vmssoftware.com.

7. Typographical Conventions

The following conventions may be used in this manual:
ConventionMeaning

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.)

...
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 the options 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 options; 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 type

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.

Chapter 1. Overview of System Analysis Tools

This chapter presents an overview of the following system dump analysis tools and features:

  • System Dump Analyzer (SDA)

  • System Code Debugger (SCD)

  • System Dump Debugger (SDD)

  • Alpha Watchpoint Utility (WP)

  • Delta Debugger

  • XDelta Debugger

  • Dump-Off-System-Disk (DOSD)

  • System Service Logging Utility (SSLOG)

  • On-Chip Logic Analyzer (OCLA)

To do the following:Use this utility:Described in:
Analyze a running system.SDAChapter 2, SDA Description
Analyze a dump file.SDAChapter 2, SDA Description
Automate the analysis of crash dumps and maintain a fatal-bugcheck history.CLUEChapter 5, SDA CLUE Extension
Debug nonpagable system code and device drivers running at any IPL.SCDChapter 11, OpenVMS System Code Debugger
Analyze certain system dumps, display source code, variables or registers in use at the time of a system failure.SDDChapter 12, OpenVMS System Dump Debugger
Maintain a history of modifications made to a specific location in shared memory on an Alpha system.WPChapter 13, Watchpoint Utility (Alpha Only)
Monitor execution of user programs and OpenVMS running at IPL 0.Delta DebuggerSection 1.6, “Delta/XDelta Debugger”
Debug system code that runs early in booting or when there is no Ethernet adapter dedicated to SCD.Xdelta DebuggerSection 1.6, “Delta/XDelta Debugger”
Write the system dump file to a device other than the system disk.DOSDSection 1.7, “Dump-Off-System-Disk (DOSD)”
Characterize spinlock usage and collect per-CPU spinlock performance data.SPLChapter 8, SDA SPL Extension
Display XFC data structures and statistics to help tune the extended file cache.XFCChapter 9, SDA XFC Extension
Extend the functionality of SDA.SDA Extension Callable RoutinesChapter 10, SDA Extensions and Callable Routines
Log system services.SSLOGChapter 14, System Service Logging
Determine which instructions have executed in a specific Alpha EV7 CPU.OCLAChapter 7, SDA OCLA Extension (Alpha Only)

1.1. System Dump Analyzer (SDA)

The OpenVMS system dump analyzer (SDA) utility enables you to analyze a running system or a system dump after a system failure occurs. With a system failure, the operating system copies the contents of memory to a system dump file or the primary page file. Additionally, it records the hardware context of each processor. With SDA, you can interpret the contents of the dump file, examine the status of each processor at the time of the system failure, and investigate possible causes of failure.

See Part I, “OpenVMS System Dump Analyzer (SDA)” for more complete information about SDA, SDA CLUE (Crash Log Utility Extractor), SPL (Spinlock Tracing Utility), other SDA extensions, and the SDA Extension routines.

1.2. System Code Debugger (SCD)

The OpenVMS System Code Debugger (SCD) allows you to debug nonpageable system code and device drivers running at any interrupt priority level (IPL). You can use the SCD to perform the following tasks:

  • Control the system software's execution----stop at points of interest, resume execution, intercept fatal exceptions, and so on

  • Trace the execution path of the system software

  • Display the source code where the software is executing, and step by source line

  • Monitor exception conditions

  • Examine and modify the values of variables

  • In some cases, test the effect of modifications without having to edit the source code, recompile, and relink

SCD is a symbolic debugger. You can specify variable names, routine names, and so on, precisely as they appear in your source code.

SCD recognizes the syntax, data typing, operators, expressions, scoping rules, and other constructs of a given language. If your code or driver is written in more than one language, you can change the debugging context from one language to another during a debugging session.

See Part II, “OpenVMS System Code Debugger and System Dump Debugger” for complete information about SCD.

1.3. System Dump Debugger (SDD)

The OpenVMS System Dump Debugger allows you to analyze certain system dumps using the commands and semantics of SCD. You can use SDD to perform the following tasks:

  • Display the source code where the software was executing at the time of the system failure

  • Examine the values of variables and registers at the time of the system failure

SDD is a symbolic debugger. You can specify variable names, routine names, and so on, precisely as they appear in your source code.

SDD recognizes the syntax, data typing, operators, expressions, scoping rules, and other constructs of a given language. If your code or driver is written in more than one language, you can change the debugging context from one language to another during a debugging session.

See Part II, “OpenVMS System Code Debugger and System Dump Debugger” for complete information about SCD.

1.4. Watchpoint Utility (Alpha Only)

The OpenVMS Watchpoint utility allows you to maintain a history of modifications that are made to a particular location in shared system space. It sets watchpoints on 32-bit and 64-bit addresses, and watches any system addresses whether in S0, S1, or S2 space.

See Part III, “OpenVMS Alpha Watchpoint Utility” for complete information about the Watchpoint utility.

1.5. System Service Logging

To log system services, use the System Service Logging (SSLOG) Utility. For additional information, see Chapter 14, System Service Logging.

1.6. Delta/XDelta Debugger

The OpenVMS Delta/XDelta debugger allows you to monitor the execution of user programs and the OpenVMS operating system. The Delta/XDelta debuggers both use the same commands and expressions, but they are different in how they operate. Delta operates as an exception handler in a process context; whereas XDelta is invoked directly from the hardware system control block (SCB) vector in a system context.

You use OpenVMS Delta instead of the OpenVMS symbolic debugger to debug programs that run in privileged processor mode at interrupt priority level (IPL) 0. Because Delta operates in a process context, you can use it to debug user-mode programs or programs that execute at interrupt priority level (IPL) 0 in any processor mode---user, supervisor, executive, and kernel. To run Delta in a processor mode other than user mode, your process must have the privilege that allows Delta to change to that mode: change-mode-to-executive (CMEXEC), or change-mode-to-kernel (CMKRNL) privilege. You cannot use Delta to debug code that executes at an elevated IPL. To debug with Delta, you invoke it from within your process by specifying it as the debugger instead of the symbolic debugger.

You use OpenVMS XDelta instead of the System Code Debugger when debugging system code that runs early in booting or when there is no Ethernet adapter that can be dedicated to SCD. Because XDelta is invoked directly from the hardware system control block (SCB), it can be used to debug programs executing in any processor mode or at any IPL level. To use XDelta, you must have system privileges, and you must include XDelta when you boot the system. Since XDelta is not process specific, it is not invoked from a process. To debug with XDelta, you must boot the system with a command to include XDelta in memory. XDelta's existence terminates when you reboot the system without XDelta.

On OpenVMS systems, XDelta supports 64-bit addressing. Quadword display mode displays full quadwords of information. The 64-bit address display mode accepts and displays all addresses as 64-bit quantities. XDelta has predefined command strings for displaying the contents of the page frame number (PFN) database.

You can use Delta/XDelta commands to perform the following debugging tasks:

  • Open, display, and change the value of a particular location

  • Set, clear, and display breakpoints

  • Set, display modes in byte, word, longword, or ASCII

  • Display instructions

  • Execute the program in a single step with the option to step over a subroutine

  • Set base registers

  • List the names and locations of all loaded modules of the executive

  • Map an address to an executive module

See the VSI OpenVMS Delta/XDelta Debugger Manual for complete information about using the Delta/XDelta debugging utility.

1.7. Dump-Off-System-Disk (DOSD)

The OpenVMS system allows you to write the system dump file to a device other than the system disk. This is useful in large memory systems and in clusters with common system disks where sufficient disk space, on one disk, is not always available to support your dump file requirements. To perform this activity, you must correctly enable the DUMPSTYLE system parameter to allow the bugcheck code to write the system dump file to an alternative device.

See the VSI OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems for complete information about how to write the system dump file to a disk other than the system disk.

1.8. On-Chip Logic Analyzer (OCLA)

The Alpha EV7 On-chip Logic Analyzer utility (OCLA) enables a user to determine which instructions have executed on an Alpha EV7 CPU. One-seventh of the Alpha EV7 cache is set aside as acquisition memory where the virtual addresses of instructions executed by the Alpha EV7 CPU are stored. The acquisition memory can later by analyzed with SDA. For more information on OCLA, see Chapter 7, SDA OCLA Extension (Alpha Only).

Part I. OpenVMS System Dump Analyzer (SDA)

Part I, “OpenVMS System Dump Analyzer (SDA)” describes the capabilities and system management of SDA. It describes how to use SDA to perform the following tasks:

  • Analyzing a system dump and a running system

  • Understanding SDA context and commands

  • Investigating system failures

  • Inducing system failures

  • Understanding the ANALYZE command and qualifiers

  • Invoking SDA commands, SDA CLUE extension commands, SDA Spinlock Tracing commands, and SDA extension routines

  • Determining which instructions have executed in a specific system CPU, with SDA OCLA commands (Alpha only)

Chapter 2. SDA Description

This chapter describes the functions and the system management of SDA. It describes initialization, operation, and procedures in analyzing a system dump and analyzing a running system. This chapter also describes the SDA context, the command format, and the way both to investigate system failures and induce system failures.

2.1. Capabilities of SDA

When a system failure occurs, the operating system copies the contents of memory to a system dump file or the primary page file, recording the hardware context of each processor in the system as well. The System Dump Analyzer (SDA) is a utility that allows you to interpret the contents of this file, examine the status of each processor at the time of the system failure, and investigate the probable causes of the failure.

You can invoke SDA to analyze a system dump, using the DCL command ANALYZE/CRASH_DUMP. You can then use SDA commands to perform the following operations:

  • Direct (or echo) the output of an SDA session to a file or device (SET OUTPUT or SET LOG).

  • Display the condition of the operating system and the hardware context of each processor in the system at the time of the system failure (SHOW CRASH or CLUE CRASH).

  • Select a specific processor in a multiprocessing system as the subject of analysis (SET CPU).

  • Select the default size of address data manipulated by the EXAMINE and EVALUATE commands (SET FETCH).

  • Enable or disable the sign extension of 32-bit addresses (SET SIGN_EXTEND).

  • Display the contents of a specific process stack (SHOW STACK or CLUE STACK).

  • Format a call frame from a stack location (SHOW CALL_FRAME).

  • Read a set of global symbols into the SDA symbol table (READ).

  • Define symbols to represent values or locations in memory and add them to the SDA symbol table (DEFINE).

  • Delete symbols not required from the SDA symbol table (UNDEFINE).

  • Evaluate an expression in hexadecimal and decimal, interpreting its value as a symbol, a condition value, a page table entry (PTE), a processor status (PS) quadword, or date and time (EVALUATE).

  • Examine the contents of memory locations, optionally interpreting them as assembler instructions, a PTE, a PS, or date and time (EXAMINE).

  • Display device status as reflected in system data structures (SHOW DEVICE).

  • Display the contents of the stored machine check frame (SHOW MACHINE_CHECK or CLUE MCHK) for selected HP computers.

  • Format system data structures (FORMAT).

  • Validate the integrity of the links in a queue (VALIDATE QUEUE).

  • Display a summary of all processes on the system (SHOW SUMMARY).

  • Show the hardware or software context of a process (SHOW PROCESS or CLUE PROCESS).

  • Display the OpenVMS RMS data structures of a process (SHOW PROCESS with the /RMS qualifier).

  • Display memory management data structures (SHOW POOL, SHOW PFN_DATA, SHOW PAGE_TABLE, or CLUE MEMORY).

  • Display lock management data structures (SHOW RESOURCES or SHOW LOCKS).

  • Display OpenVMS Cluster management data structures (SHOW CLUSTER, SHOW CONNECTIONS, SHOW RSPID, or SHOW PORTS).

  • Display multiprocessor synchronization information (SHOW SPINLOCKS).

  • Display the layout of the executive images (SHOW EXECUTIVE).

  • Capture and archive a summary of dump file information in a list file (CLUE HISTORY).

  • Copy the system dump file (COPY).

  • Define keys to invoke SDA commands (DEFINE/KEY).

  • Search memory for a given value (SEARCH).

Although SDA provides a great deal of information, it does not automatically 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 save not only the output provided by SDA commands, but also a copy of the system dump file written at the time of the failure.

You can also invoke SDA to analyze a running system, using the DCL command ANALYZE/SYSTEM. Most SDA commands generate useful output when entered on a running system.

Caution

Although analyzing a running system may be instructive, you should undertake such an operation with caution. System context, process context, and a processor's hardware context can change during any given display.

In a multiprocessing environment, it is very possible that, during analysis, a process running SDA could be rescheduled to a different processor frequently. Therefore, avoid examining the hardware context of processors in a running system.

2.2. System Management and SDA

The system manager must ensure that the system writes a dump file whenever the system fails. The manager must also see that the dump file is large enough to contain all the information to be saved, and that the dump file is saved for analysis. The following sections describe these tasks.

2.2.1. Writing System Dumps

The operating system attempts to write information into the system dump file only if the system parameter DUMPBUG is set. (The DUMPBUG parameter is set by default. To examine and change its value, consult the VSI OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems.) If DUMPBUG is set and the operating system fails, the system manager has the following choices for writing system dumps:

  • Have the system dump file written to either SYSDUMP.DMP (the system dump file) or to PAGEFILE.SYS (the primary system page file).

  • Set the DUMPSTYLE system parameter to an even number (for dumps containing all physical memory) or to an odd number (for dumps containing only selected virtual addresses). See Section 2.2.1.1, “Dump File Style” for more information about the DUMPSTYLE parameter values.

2.2.1.1. Dump File Style

There are two types of dump files---a full memory dump (also known as a physical dump), and a dump of selected virtual addresses (also known as a selective dump). Both full and selective dumps may be produced in either compressed or uncompressed form. Compressed dumps save disk space and time taken to write the dump at the expense of a slight increase in time to access the dump with SDA. The SDA commands COPY/COMPRESS and COPY/DECOMPRESS can be used to convert an existing dump.

A dump can be written to the system disk, or to another disk set aside for dumps. When using a disk other than a system disk, the disk name is set in the console environment variable DUMP_DEV. This disk is also known as the "dump off system disk" (DOSD) disk.

When writing a system dump, information about the crash is displayed at the system console. This can be either minimal output (for example, bug check code, process name, and image name), or verbose output (for example, executive layout, stack and register contents).

In an OpenVMS Galaxy system, shared memory is dumped by default. It is sometimes necessary to disable the dumping of shared memory. For more information about shared memory, see VSI OpenVMS Alpha Partitioning and Galaxy Guide.

DUMPSTYLE, which specifies the method of writing system dumps, is a 32-bit mask. Table 2.1, “Definitions of Bits in DUMPSTYLE” shows how the bits are defined. Each bit can be set independently. The value of the SYSGEN parameter is the sum of the values of the bits that have been set. Remaining or undefined values are reserved to VSI.

Table 2.1. Definitions of Bits in DUMPSTYLE
BitValueDescription
010= Full dump. The entire contents of physical memory will be written to the dump file. 1= Selective dump. The contents of memory will be written to the dump file selectively to maximize the usefulness of the dump file while conserving disk space. (Only pages that are in use are written).
120= Minimal console output. This consists of the bugcheck code; the identity of the CPU, process, and image where the crash occurred; the system date and time; plus a series of dots indicating progress writing the dump. 1= Full console output. This includes the minimal output previously described plus stack and register contents, system layout, and additional progress information such as the names of processes as they are dumped.
24

0= Dump to system disk. The dump will be written to SYS$SYSDEVICE:[SYSn.SYSEXE]SYSDUMP.DMP, or in its absence, SYS$SYSDEVICE:[SYSn.SYSEXE]PAGEFILE.SYS. 1= Dump to alternate disk. The dump will be written to dump_dev:[SYSn.SYSEXE]SYSDUMP.DMP, where dump_dev is the value of the console environment variable DUMP_DEV.

380= Uncompressed dump. Pages are written directly to the dump file. 1= Compressed dump. Each page is compressed before it is written, providing a saving in space and in the time taken to write the dump, at the expense of a slight increase in time taken to access the dump.
4160= Dump shared memory. 1= Do not dump shared memory.
5320= Write all processes and global pages in a selective dump. 1= Write only key processes and global pages in a selective dump. This bit is ignored when writing a full dump (bit 0 = 0). This bit should be set only if the priority processes have been correctly set up, as described in VSI OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems.
6--31 Reserved to VSI.

The default setting for DUMPSTYLE is 9 (a compressed selective dump, including shared memory, written to the system disk). Unless a value for DUMPSTYLE is specified in MODPARAMS.DAT, AUTOGEN.COM will set DUMPSTYLE either to 1 (an uncompressed selective dump, including shared memory, written to the system disk) if there is less than 128 megabytes of memory on the system, or to 9 (a compressed selective dump, including shared memory, written to the system disk).

2.2.1.2. Comparison of Full and Selective Dumps

A full dump requires that all physical memory be written to the dump file. This ensures the presence of all the page table pages required for SDA to emulate translation of system virtual addresses. Any even-numbered value in the DUMPSTYLE system parameter generates a full dump.

In certain system configurations, it may be impossible to preserve the entire contents of memory in a disk file. For instance, a large memory system or a system with small disk capacity may not be able to supply enough disk space for a full memory dump. If the system dump file cannot accommodate all of memory, information essential to determining the cause of the system failure may be lost.

To preserve those portions of memory that contain information most useful in determining the causes of system failures, a system manager sets the value of the DUMPSTYLE system parameter to specify a dump of selected virtual address spaces. In a selective dump, related pages of virtual address space are written to the dump file as units called logical memory blocks (LMBs). For example, one LMB consists of the page tables for system space; another is the address space of a particular process. Those LMBs most likely to be useful in crash dump analysis are written first. Any odd-numbered value in the DUMPSTYLE system parameter generates a selective dump.

Table 2.2, “Comparison of Full and Selective Dumps” compares full and selective style dumps.

Table 2.2. Comparison of Full and Selective Dumps
ItemFullSelective
Available InformationComplete contents of physical memory in use, stored in order of increasing physical address.System page table, global page table, system space memory, and process and control regions (plus global pages) for all saved processes.
Unavailable InformationContents of paged-out memory at the time of the system failure.Contents of paged-out memory at the time of the system failure, process and control regions of unsaved processes, and memory not mapped by a page table.
SDA Command LimitationsNone.The following commands are not useful for unsaved processes: SHOW PROCESS/CHANNELS, SHOW PROCESS/IMAGE, SHOW PROCESS/RMS, SHOW STACK, and SHOW SUMMARY/IMAGE.

2.2.1.3. Controlling the Size of Page Files and Dump Files

You can adjust the size of the system page file and dump file using AUTOGEN (the recommended method) or by using SYSGEN.

AUTOGEN automatically calculates the appropriate sizes for page and dump files. AUTOGEN invokes the System Generation utility (SYSGEN) to create or change the files. However, you can control sizes calculated by AUTOGEN by defining symbols in the MODPARAMS.DAT file. The file sizes specified in MODPARAMS.DAT are copied into the PARAMS.DAT file during AUTOGEN's GETDATA phase. AUTOGEN then makes appropriate adjustments in its calculations.

Although VSI recommends using AUTOGEN to create and modify page and dump file sizes, you can use SYSGEN to directly create and change the sizes of those files.

The sections that follow discuss how you can calculate the size of a dump file.

See the VSI OpenVMS System Manager's Manual for detailed information about using AUTOGEN and SYSGEN to create and modify page and dump file sizes.

2.2.1.4. Writing to the System Dump File

OpenVMS writes the contents of the error-log buffers, processor registers, and memory into the system dump file, overwriting its previous contents. If the system dump file is too small, OpenVMS cannot copy all memory to the file when a system failure occurs.

SYS$SYSTEM:SYSDUMP.DMP (SYS$SPECIFIC:[SYSEXE]SYSDUMP.DMP) is created during installation. To successfully store a crash dump, SYS$SYSTEM:SYSDUMP.DMP must be enlarged to hold all of memory (full dump) or all of system space and the key processes (selective dump).

To calculate the correct size for an uncompressed full dump to SYS$SYSTEM:SYSDUMP.DMP, use the following formula:

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

Use the DCL command SHOW MEMORY to determine the total size of physical memory on your system. There is a variable number of error log buffers in any given system, depending on the setting of the ERRORLOGBUFF_S2 system parameter. The size of each buffer depends on the setting of the ERLBUFFERPAG_S2 parameter. (See the VSI OpenVMS System Manager's Manual for additional information about these parameters.)

2.2.1.5. Writing to a Dump File off the System Disk

OpenVMS allows you to write the system dump file to a device other than the system disk. This is useful in large memory systems and in clusters with common system disks where sufficient disk space, on one disk, is not always available to support customer dump file requirements. To perform this activity, the DUMPSTYLE system parameter must be correctly enabled to allow the bugcheck code to write the system dump file to an alternative device.

The requirements for writing the system dump file off the system disk are the following:

  • The dump device directory structure must resemble the current system disk structure. The [SYSn.SYSEXE]SYSDUMP.DMP file will reside there, with the same boot time system root.

    You can use AUTOGEN to create this file. In the MODPARAMS.DAT file, the following symbol prompts AUTOGEN to create the file:
    DUMPFILE_DEVICE = $nnn$ddcuuuu
    
  • The dump device cannot be part of a volume set or a member of a shadow set.

  • You must set up DOSD for SDA CLUE as described in Chapter 5, SDA CLUE Extension.

  • The DUMP_DEV environment variable must exist on your system. You specify the dump device at the console prompt, using the following format:

    For Alpha

    >>> SET DUMP_DEV device-name[,...]

    For Integrity servers

    Shell> VMS_SET DUMP_DEV device-name[,...]

    On some CPU types, you can enter a list of devices. The list can include various alternate paths to the system disk and the dump disk.

    By specifying alternate paths in DUMP_DEV, a dump can still be written if the disk fails over to an alternate path while the system is running. When the system crashes, the bugcheck code can use the alternate path by referring to the contents of DUMP_DEV.

    When you enter a list of devices, however, the system disk must come last.

For information on how to write the system dump file to an alternative device to the system disk, see the VSI OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems.

2.2.1.6. Writing to the System Page File

If SYS$SYSTEM:SYSDUMP.DMP does not exist, and there is no DOSD device or dump file, the operating system writes the dump of physical memory into SYS$SYSTEM:PAGEFILE.SYS, the primary system page 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 after a system failure. If the SAVEDUMP parameter is not set, which is the default, OpenVMS uses the entire page file for paging and any dump written to the page file is lost. (To examine or change the value of the SAVEDUMP parameter, consult the VSI OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems.)

To calculate the minimum size for a full memory dump to SYS$SYSTEM:PAGEFILE.SYS, use the following formula:

size-in-blocks(SYS$SYSTEM:PAGEFILE.SYS)
        = size-in-pages(physical-memory) * blocks-per-page
        + number-of-error-log-buffers  * blocks-per-buffer
        + 10
        + value of the system parameter RSRVPAGCNT * blocks-per-page

Note that this formula calculates the minimum size requirement for saving a physical dump in the system's page file. VSI recommends that the page file be a bit larger than this minimum to avoid hanging the system. Also note that you can only write the system dump into the primary page file (SYS$SYSTEM:PAGEFILE.SYS). Secondary page files cannot be used to save dump file information.

Note also that OpenVMS will not fill the page file completely when writing a system dump, since the system might hang when rebooting after a system crash. RSRVPAGCNT pages are kept unavailable for dumps. This applies to both full dumps and selective dumps.

Writing crash dumps to SYS$SYSTEM:PAGEFILE.SYS presumes that you will later free the space occupied by the dump for use by the pager. Otherwise, your system may hang during the startup procedure. To free this space, you can do one of the following:

  • Include SDA commands that free dump space in the site-specific startup command procedure (described in Section 2.2.4, “Invoking SDA When Rebooting the System”).

  • Use the SDA COPY command to copy the dump from SYS$SYSTEM:PAGEFILE.SYS to another file. Use the SDA COPY command instead of the DCL COPY command because the SDA COPY command only copies the blocks used by the dump and causes the pages occupied by the dump to be freed from the system's page file.

  • If you do not need to copy the dump elsewhere, issue an ANALYZE/CRASH_DUMP/RELEASE command. When you issue this command, SDA immediately releases the pages to be used for system paging, effectively deleting the dump. Note that this command does not allow you to analyze the dump before deleting it.

2.2.2. Saving System Dumps

Every time the operating system writes information to the system dump file, it writes over whatever was previously stored in the file. The system writes information to the dump file whenever the system fails. For this reason, the system manager must save the contents of the file after a system failure has occurred.

The system manager can use the SDA COPY command or the DCL COPY command. Either command can be used in a site-specific startup procedure, but the SDA COPY command is preferred because it marks the dump file as copied. As mentioned earlier, this is particularly important if the dump was written into the page file, SYS$SYSTEM:PAGEFILE.SYS, because it releases those pages occupied by the dump to the pager. Another advantage of using the SDA COPY command is that this command copies only the saved number of blocks and not necessarily the whole allotted dump file. For instance, if the size of the SYSDUMP.DMP file is 100,000 blocks and the bugcheck wrote only 60,000 blocks to the dump file, then DCL COPY would create a file of 100,000 blocks. However, SDA COPY would generate a file of only 60,000 blocks.

Because system dump files are set to NOBACKUP, the Backup utility (BACKUP) does not copy them to tape unless you use the qualifier /IGNORE=NOBACKUP when invoking BACKUP. When you use the SDA COPY command to copy the system dump file to another file, OpenVMS does not set the new file to NOBACKUP.

As created during installation, the file SYS$SYSTEM:SYSDUMP.DMP is protected against world access. Because a dump file can contain privileged information, VSI recommends that the system manager does not change this default protection.

When a dump is being analyzed, it is useful to have data available that cannot be written to the dump file at the time of the system crash. This data includes the full file specification associated with a file identification, and, on OpenVMS Integrity servers, the unwind data for images activated in processes.

If the dump is being analyzed on the system where it was originally written, this data can be collected for use in the current SDA session by using the COLLECT command. If the dump is being copied for analysis elsewhere, the COPY/COLLECT command can be used to collect the data and append it to the copy being written. If the COPY/COLLECT command is used after a COLLECT command, the data already collected is appended to the dump copy.

By default, a copy of the original dump, as written at the time of the system crash, will include collection. You can use the COPY/NOCOLLECT command to override this. Conversely, a copy of a dump previously copied by SDA without collection (COPY/NOCOLLECT) will not include collection. You can use COPY/COLLECT to override this.

Copying a dump that already contains an appended collection will always include that collection.

For all file and unwind data to be collected successfully, all disks that were mounted at the time of the system crash should be remounted and accessible to the process running SDA. If SDA is invoked early during the startup to save the contents of the dump (for example, using CLUE$SITE_PROC, as described in Section 2.2.4, “Invoking SDA When Rebooting the System”), but disks are not mounted until a batch job is run, the COPY/NOCOLLECT command should be used in the CLUE$SITE_PROC command procedure. Once all disks are mounted, you can use a COPY/COLLECT command to save file and unwind data.

If the COPY and COLLECT operations cannot be done as a single step, a COLLECT/SAVE command will write the collection to a separate file that can be used later in conjunction with the dump file. A later COPY will combine the two files.

2.2.3. Partial Dump Copies

Because of the layout of a selective dump, it is often the case that only a small part of the dump is needed to investigate the cause of the system crash. The system manager must save the complete dump locally, as described in the previous section, but has to provide only the key sections of the dump to VSI Services for analysis. This can significantly reduce the time taken to copy the dump over the network. Such a copy is referred to as a Partial Dump Copy. It can only be used when a selective system dump (compressed or uncompressed) has been written, and is not available for full system dumps or for process dumps.

If you require information from a section of the dump that was not copied, it can be extracted from the saved local copy and submitted separately. The ANALYZE /CRASH_DUMP command accepts multiple input files from the same crash and treats them as a single dump.

For an explanation of key processes and key global pages, and the organization of a selective system dump, see the chapter Managing Page, Swap, and Dump Files in the VSI OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems.

2.2.3.1. Example - Use of Partial Dump Copies

The following steps describe a typical use of Partial Dump Copies:

  1. Save the complete dump:

    $ ANALYZE/CRASH SYS$SYSTEM:SYSDUMP.DMP
    
    OpenVMS system dump analyzer
    ...analyzing an I64 compressed selective memory dump...
    
    Dump taken on 22-SEP-2009 18:17:17.99 using version XC4I-J2I
    SSRVEXCEPT, Unexpected system service exception
    
    SDA> COPY SSRVEXCEPT.DMP
    SDA> EXIT
  2. Create a partial copy containing only the key sections of the dump:

    $ ANALYZE/CRASH SSRVEXCEPT
    
    OpenVMS system dump analyzer
    ...analyzing an I64 compressed selective memory dump...
    
    Dump taken on 22-SEP-2009 18:17:17.99 using version XC4I-J2I
    SSRVEXCEPT, Unexpected system service exception
    
    SDA> COPY SSRVKEY /PARTIAL=KEY
    SDA> EXIT
    
  3. Provide the output of this copy, containing only the key sections, to VSI Services, where it can be analyzed as follows:

    $ ANALYZE/CRASH SSRVKEY
    
    OpenVMS system dump analyzer
    ...analyzing an I64 compressed selective memory dump...
    
    Dump taken on 22-SEP-2009 18:17:17.99 using version XC4I-J2I
    SSRVEXCEPT, Unexpected system service exception
    
    SDA> SHOW CRASH
    SDA> !
  4. During analysis of the crash, VSI Services determines that the CLUSTER_SERVER process, not included in the partial dump copy, is required and requests that part of the dump. Extract the process from the saved complete copy, as follows:
    $ ANALYZE/CRASH SSRVEXCEPT
    
    OpenVMS system dump analyzer
    ...analyzing an I64 compressed selective memory dump...
    
    Dump taken on 22-SEP-2009 18:17:17.99 using version XC4I-J2I
    SSRVEXCEPT, Unexpected system service exception
    
    SDA> COPY SSRVCSP /PARTIAL=PROCESS=NAME=CLUSTER_SERVER
    SDA> EXIT
  5. Provide the output of this copy to VSI Services for analysis, where it can be analyzed as follows:

    $ ANALYZE/CRASH SSRVKEY,SSRVCSP
    
    OpenVMS system dump analyzer
    ...analyzing an I64 compressed selective memory dump...
    
    Dump taken on 22-SEP-2009 18:17:17.99 using version XC4I-J2I
    SSRVEXCEPT, Unexpected system service exception
    
    SDA> SHOW PROCESS CLUSTER_SERVER
    SDA> ! etc.

2.2.3.2. Additional notes on Partial Dump Copies

This section provides additional notes on Partial Dump Copies.

  • In Step 4 of the preceding example, the COPY command cannot be given as shown:

    SDA> COPY /PARTIAL=PROCESS=NAME=CLUSTER_SERVER SSRVCSP

    This is because SDA must treat the combined string "CLUSTER SERVER SSRVCSP" as the process name, since spaces are valid in a process name. Alternative formats that can be used are as follows:

    SDA> COPY /PARTIAL=PROCESS=NAME=CLUSTER_SERVER SSRVCSP
    SDA> COPY /PARTIAL=PROCESS=NAME=(CLUSTER_SERVER) SSRVCSP
    SDA> COPY /PARTIAL=(PROCESS=NAME=CLUSTER_SERVER) SSRVCSP
  • In Step 5 of the preceding example, the input files cannot be specified as "SSRV*". In that case, SSRVCSP.DMP can be opened before SSRVKEY.DMP. The file that contains the section PT must be opened first.

  • In a selective system dump, processes are dumped in two sections:
    • Process Page Table Space

    • Process Memory

    If a process is copied as part of a COPY /PARTIAL, the two sections are always copied together.

  • In a selective system dump from an Alpha system with Resource Affinity Domains (RADs) enabled, there is a Replicated System Space section for each RAD other than the base RAD. If replicated system space is copied as part of a COPY /PARTIAL, all replicated system space sections are always copied together.

  • See the description of the COPY command in Chapter 4 for a complete list of the possible section names.

2.2.4. Invoking SDA When Rebooting the System

When the system reboots after a system failure, SDA is automatically invoked by default. SDA archives information from the dump in a history file. In addition, a listing file with more detailed information about the system failure is created in the directory pointed to by the logical name CLUE$COLLECT. (Note that the default directory is SYS$ERRORLOG unless you redefine the logical name CLUE$COLLECT in the procedure SYS$MANAGER:SYLOGICALS.COM.) The file name is in the form CLUE$node_ddmmyy_hhmm.LIS where the timestamp (hhmm) corresponds to the system failure time and not the time when the file was created.

Directed by commands in a site-specific file, SDA can take additional steps to record information about the system failure. They include the following:

  • Supplementing the contents of the list file containing the output of specific SDA commands.

  • Copying the contents of the dump file to another file. This information is otherwise lost at the next system failure when the system saves information only about that failure.

If the logical name CLUE$SITE_PROC points to a valid and existing command file, it will be executed as part of the CLUE HISTORY command when you reboot. If used, this file should contain only valid SDA commands.

Generated by a set sequence of commands, the CLUE list file contains only an overview of the failure and is unlikely to provide enough information to determine the cause of the failure. VSI, therefore, recommends that you always copy the dump file.

The following example shows SDA commands that can make up your site-specific command file to produce a more complete SDA listing after each system failure, and to save a copy of the dump file:

!
! SDA command file, to be executed as part of the system
! bootstrap from within CLUE. Commands in this file can
! be used to save the dump file after a system bugcheck, and
! to execute any additional SDA commands.
!
! Note that the logical name DMP$ must have been defined
! within SYS$MANAGER:SYLOGICALS.COM
!
READ/EXEC                   ! read in the executive images' symbol tables
SHOW STACK                  ! display the stack
COPY DMP$:SAVEDUMP.DMP      ! copy and save dump file
!

The CLUE HISTORY command is executed first, followed by the SDA commands in this site-specific command file. See the reference section on CLUE HISTORY for details on the summary information that is generated and stored in the CLUE list file by the CLUE HISTORY command. Note that the SDA COPY command must be the last command in the command file. If the dump has been written to PAGEFILE.SYS, then the space used by the dump will be automatically returned for use for paging as soon as the COPY is complete and no more analysis is possible. You might need to include the /NOCOLLECT qualifier on the COPY command. See Section 2.2.2, “Saving System Dumps” for details.

To point to your site-specific file, add a line such as the following to the file SYS$MANAGER:SYLOGICALS.COM:

$ DEFINE/SYSTEM CLUE$SITE_PROC SYS$MANAGER:SAVEDUMP.COM

In this example, the site-specific file is named SAVEDUMP.COM.

The CLUE list file can be printed immediately or saved for later examination.

SDA is invoked and executes the specified commands only when the system boots for the first time after a system failure. If the system is booting for any other reason (such as a normal system shutdown and reboot), SDA exits.

If CLUE files occupy more space than the threshold allows (the default is 5000 blocks), the oldest files will be deleted until the threshold limit is reached. The threshold limit can be customized with the CLUE$MAX_BLOCK logical name.

To prevent the running of CLUE at system startup, define the logical CLUE$INHIBIT in the SYLOGICALS.COM file as TRUE in the system logical name table.

2.3. Analyzing a System Dump

SDA performs certain tasks before bringing a dump into memory, presenting its initial displays, and accepting command input. These tasks include the following:

  • Verifying that the process invoking it is suitably privileged to read the dump file

  • Using RMS to read in pages from the dump file

  • Building the SDA symbol table from the files SDA$READ_DIR:SYS$BASE_IMAGE.EXE and SDA$READ_DIR:REQSYSDEF.STB

  • Executing the commands in the SDA initialization file

For detailed information on investigating system failures, see Section 2.7, “Investigating System Failures”.

2.3.1. Requirements

To analyze a dump file, your process must have read access both to the file that contains the dump and to copies of SDA$READ_DIR:SYS$BASE_IMAGE.EXE and SDA$READ_DIR:REQSYSDEF.STB (the required subset of the symbols in the file SYSDEF.STB). SDA reads these tables by default.

2.3.2. Invoking SDA

If your process can access the files listed in Section 2.3.1, “Requirements”, you can issue the DCL command ANALYZE/CRASH_DUMP to invoke SDA. If you do not specify the name of a dump file in the command, and SYS$SYSTEM:SYSDUMP.DMP cannot be opened, SDA prompts you:

$ ANALYZE/CRASH_DUMP
_Dump File:

If any part of the file name is specified, the default file specification is as follows:

@@@@SYS$DISK:[default-dir]SYSDUMP.DMP

SYS$DISK and [default-dir] represent the disk and directory specified in your last SET DEFAULT command.

If you are rebooting after a system failure, SDA is automatically invoked. See Section 2.2.4, “Invoking SDA When Rebooting the System”.

2.3.3. Mapping the Contents of the Dump File

SDA first attempts to map the contents of memory as stored in the specified dump file. To do this, it must first locate the page tables for system space among its contents. The system page tables contain one entry for each page of system virtual address space.

  • If SDA cannot find the system page tables in the dump file, it displays the following message:

    %SDA-E-SPTNOTFND, system page table not found in dump file

    If that error message is displayed, you cannot analyze the crash dump, but must take steps to ensure that any subsequent dump can be analyzed. To do this, you must either adjust the DUMPSTYLE system parameter as discussed in Section 2.2.1.1, “Dump File Style” or increase the size of the dump file as indicated in Section 2.2.1.3, “Controlling the Size of Page Files and Dump Files”.

  • If SDA finds the system page tables in an incomplete dump, the following message is displayed:

    %SDA-W-SHORTDUMP, dump file was n blocks too small when dump written;
                      analysis may not be possible

Under certain conditions, some memory locations might not be saved in the system dump file. Additionally, if a bugcheck occurs during system initialization, the contents of the register display may be unreliable. The symptom of such a bugcheck is a SHOW SUMMARY display that shows no processes or only the swapper process.

If you use an SDA command to access a virtual address that has no corresponding physical address, SDA generates the following error message:

%SDA-E-NOTINPHYS, 'location': virtual data not in physical memory

When analyzing a selective dump file, if you use an SDA command to access a virtual address that has a corresponding physical address not saved in the dump file, SDA generates one of the following error messages:

%SDA-E-MEMNOTSVD, memory not saved in the dump file

%SDA-E-NOREAD, unable to access location n

2.3.4. Building the SDA Symbol Table

After locating and reading the system dump file, SDA attempts to read the system symbol table file into the SDA symbol table. If SDA cannot find SDA$READ_DIR:SYS$BASE_IMAGE.EXE---or is given a file that is not a system symbol table in the /SYMBOL qualifier to the ANALYZE command---it displays a fatal error and exits. SDA also reads into its symbol table a subset of SDA$READ_DIR:SYSDEF.STB, called SDA$READ_DIR:REQSYSDEF.STB. This subset provides SDA with the information needed to access some of the data structures in the dump.

When SDA finishes building its symbol table, SDA displays a message identifying itself and the immediate cause of the system failure. In the following example, the cause of the system failure was the deallocation of a bad page file address.

OpenVMS Alpha System Dump Analyzer

Dump taken on 27-MAR-1993  11:22:33.92
BADPAGFILD, Bad page file address deallocated

2.3.5. Executing the SDA Initialization File (SDA$INIT)

After displaying the system failure summary, SDA executes the commands in the SDA initialization file, if you have established one. SDA refers to its initialization file by using the logical name SDA$INIT. If SDA cannot find the file defined as SDA$INIT, it searches for the file SYS$LOGIN:SDA.INIT.

This initialization file can contain SDA commands that read symbols into SDA's symbol table, define keys, establish a log of SDA commands and output, or perform other tasks. For instance, you may want to use an SDA initialization file to augment SDA's symbol table with definitions helpful in locating system code. If you issue the following command, SDA includes those symbols that define many of the system's data structures, including those in the I/O database:

READ SDA$READ_DIR:filename

You may also find it helpful to define those symbols that identify the modules in the images that make up the executive by issuing the following command:

READ/EXECUTIVE SDA$READ_DIR:

After SDA has executed the commands in the initialization file, it displays its prompt as follows:

SDA>

This prompt indicates that you can use SDA interactively and enter SDA commands.

An SDA initialization file may invoke a command procedure with the @ command. However, such command procedures cannot invoke other command procedures.

2.4. Analyzing a Running System

Occasionally, OpenVMS encounters an internal problem that hinders system performance without causing a system failure. By allowing you to examine the running system, SDA enables you to search for the solution without disturbing the operating system. For example, you may be able to use SDA to examine the stack and memory of a process that is stalled in a scheduler state, such as a miscellaneous wait (MWAIT) or a suspended (SUSP) state.

If your process has change-mode-to-kernel (CMKRNL) privilege, you can invoke SDA to examine the system. Use the following DCL command:

$ ANALYZE/SYSTEM

SDA attempts to load SDA$READ_DIR:SYS$BASE_IMAGE.EXE and SDA$READ_DIR:REQSYSDEF.STB. It then executes the contents of any existing SDA initialization file, as it does when invoked to analyze a crash dump (see Sections Section 2.3.4, “Building the SDA Symbol Table” and Section 2.3.5, “Executing the SDA Initialization File (SDA$INIT)”, respectively). SDA subsequently displays its identification message and prompt, as follows:

OpenVMS Alpha System Analyzer

SDA>

This prompt indicates that you can use SDA interactively and enter SDA commands. When analyzing a running system, SDA sets its process context to that of the process running SDA.

If you are analyzing a running system, consider the following:

  • When used in this mode, SDA does not map the entire system, but instead retrieves only the information it needs to process each individual command. To update any given display, you must reissue the previous command.

    Caution

    When using SDA to analyze a running system, carefully interpret its displays. Because system states change frequently, it is possible that the information SDA displays may be inconsistent with the current state of the system.

  • Certain SDA commands are illegal in this mode, such as SET CPU. Use of these commands results in the following error message:

    %SDA-E-CMDNOTVLD, command not valid on the running system
  • The SHOW CRASH command, although valid, does not display the contents of any of the processor's set of hardware registers.

2.5. SDA Context

When you invoke SDA to analyze either a crash dump or a running system, SDA establishes a default context for itself from which it interprets certain commands.

When you are analyzing a uniprocessor system, SDA's context is solely process context, which means SDA can interpret its process-specific commands in the context of either the process current on the uniprocessor or some other process in another scheduling state. When SDA is initially invoked to analyze a crash dump, SDA's process context defaults to that of the process that was current at the time of the system failure. When you invoke SDA to analyze a running system, SDA's process context defaults to that of the current process, that is, the one executing SDA. To change SDA's process context, issue any of the following commands:

  • SET PROCESS process-name

  • SET PROCESS/ADDRESS=pcb-address

  • SET PROCESS/INDEX=nn

  • SET PROCESS/NEXT

  • SET PROCESS/SYSTEM

  • SHOW PROCESS process-name

  • SHOW PROCESS/ADDRESS=pcb-address

  • SHOW PROCESS/INDEX=nn

  • SHOW PROCESS/NEXT

  • SHOW PROCESS/SYSTEM

  • VALIDATE PROCESS/POOL process-name

  • VALIDATE PROCESS/POOL/ADDRESS=pcb-address

  • VALIDATE PROCESS/POOL/INDEX=nn

  • VALIDATE PROCESS/POOL/NEXT

  • VALIDATE PROCESS/POOL/SYSTEM

When you invoke SDA to analyze a crash dump from a multiprocessing system with more than one active CPU, SDA maintains a second dimension of context---its CPU context---that allows it to display certain processor-specific information. This information includes the reason for the bugcheck exception, the currently executing process, the current IPL, and the spinlocks owned by the processor. When you invoke SDA to analyze a multiprocessor's crash dump, its CPU context defaults to that of the processor that induced the system failure. When you are analyzing a running system, CPU context is not accessible to SDA. Therefore, the SET CPU command is not permitted.

You can change the SDA CPU context by using any of the following commands:

  • SET CPU cpu-id

  • SET CPU /FIRST

  • SET CPU /NEXT

  • SET CPU /PRIMARY

  • SHOW CPU cpu-id

  • SHOW CPU /FIRST

  • SHOW CPU /NEXT

  • SHOW CPU /PRIMARY

  • SHOW CRASH

  • SHOW MACHINE_CHECK cpu-id

Changing CPU context involves an implicit change in process context in either of the following ways:

  • If there is a current process on the CPU made current, SDA process context is changed 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 SDA process context is set to that of a specific process.

Changing process context requires a switch of CPU context as well. For instance, when you issue a SET PROCESS command, SDA automatically changes its CPU context to that of the CPU on which that process was most recently current. The following commands can have this effect:

  • SET PROCESS process-name

  • SET PROCESS/ADDRESS=pcb-address

  • SET PROCESS/INDEX=nn

  • SET PROCESS/NEXT

  • SHOW PROCESS process-name

  • SHOW PROCESS/ADDRESS=pcb-address

  • SHOW PROCESS/INDEX=nn

  • SHOW PROCESS/NEXT

  • VALIDATE PROCESS/POOL process-name

  • VALIDATE PROCESS/POOL/ADDRESS=pcb-address

  • VALIDATE PROCESS/POOL/INDEX=nn

  • VALIDATE PROCESS/POOL/NEXT

2.6. SDA Command Format

The following sections describe the format of SDA commands and the expressions you can use with SDA commands.

SDA uses a command format similar to that used by the DCL interpreter. Issue commands in the following format:
command-name[/qualifier...] [parameter][/qualifier...] [!comment]

The command-name is an SDA command. Each command tells the utility to perform a function. Commands can consist of one or more words, and can be abbreviated to the number of characters that make the command unique. For example, SH stands for SHOW.

The parameter is the target of the command. For example, SHOW PROCESS RUSKIN tells SDA to display the context of the process RUSKIN. The command EXAMINE 80104CD0;40 displays the contents of 40 bytes of memory, beginning with location 80104CD0.

When you supply part of a file specification as a parameter, SDA assumes default values for the omitted portions of the specification. The default device is SYS$DISK, the device specified in your most recent SET DEFAULT command. The default directory is the directory specified in the most recent SET DEFAULT command. See the VSI OpenVMS DCL Dictionary for a description of the DCL command SET DEFAULT.

The qualifier modifies the action of an SDA command. A qualifier is always preceded by a slash (/). Several qualifiers can follow a single parameter or command name, but each must be preceded by a slash. Qualifiers can be abbreviated to the shortest string of characters that uniquely identifies the qualifier.

The comment consists of text that describes the command; this comment is not actually part of the command. Comments are useful for documenting SDA command procedures. When executing a command, SDA ignores the exclamation point and all characters that follow it on the same line.

2.6.1. Using Expressions and Operators

You can use expressions as parameters for some SDA commands, such as SEARCH and EXAMINE. To create expressions, use any of the following elements:

  • Numerals

  • Radix operators

  • Arithmetic and logical operators

  • Precedence operators

  • Symbols

Numerals are one possible component of an expression. The following sections describe the use of the other components.

2.6.1.1. Radix Operators

Radix operators determine which numeric base SDA uses to evaluate expressions. You can use one of the three radix operators to specify the radix of the numeric expression that follows the operator:

  • ^X (hexadecimal)

  • ^O (octal)

  • ^D (decimal)

The default radix is hexadecimal. SDA displays hexadecimal numbers with leading zeros and decimal numbers with leading spaces.

2.6.1.2. Arithmetic and Logical Operators

There are two types of arithmetic and logical operators:

In evaluating expressions containing binary operators, SDA performs logical AND, OR, and XOR operations, and multiplication, division, and arithmetic shifting before addition and subtraction. Note that the SDA arithmetic operators perform integer arithmetic on 64-bit operands.

Table 2.3. SDA Unary Operators
OperatorAction
#Performs a logical NOT of the expression.
+Makes the value of the expression positive.
--Makes the value of the expression negative.
@Evaluates the following expression as an address, then uses the contents of that address as its value.
^QSpecifies that the size of the field to be used as an address is a quadword when used with the unary operator @ 1.
^LSpecifies that the size of the field to be used as an address is a longword when used with the unary operator @ 1.
^WSpecifies that the size of the field to be used as an address is a word when used with the unary operator @ 1.
^BSpecifies that the size of the field to be used as an address is a byte when used with the unary operator @ 1.
^PSpecifies a physical address when used with the unary operator @. The command SET FETCH can be used to change the default FETCH size and/or access method. See the SET FETCH command description in Chapter 4 for more details and examples.
^VSpecifies a virtual address when used with the unary operator @ 1. The command SET FETCH can be used to change the default FETCH size and/or access method. See the SET FETCH command description in Chapter 4 for more details and examples.
GAdds FFFFFFFF 80000000 16 to the value of the expression 2. The unary operator G corresponds to the first virtual address in S0 system space. For example, the expression GD40 can be used to represent the address FFFFFFFF 80000D4016.
HAdds 7FFE0000 16 to the value of the expression 3. The unary operator H corresponds to a convenient base address in P1 space (7FFE000016). You can therefore refer to an address such as 7FFE2A6416 as H2A64
IFills the leading digits of the following hexadecimal number with hex value of F. For example:
Table 2.4. SDA Binary Operators
OperatorAction
+Addition
--Subtraction
*Multiplication
&Logical AND
|Logical OR
\Logical XOR
/Division. In division, SDA truncates the quotient to an integer, if necessary, and does not retain a remainder.
@Arithmetic shifting
"."

Catenates two 32-bit values into a 64-bit value. For example:

SDA> eval fe.50000

Hex = 000000FE00050000 Decimal = 1090922020864

2.6.1.3. Precedence Operators

SDA uses parentheses as precedence operators. Expressions enclosed in parentheses are evaluated first. SDA evaluates nested parenthetical expressions from the innermost to the outermost pairs of parentheses.

2.6.1.4. SDA Symbols

An SDA symbol can represent several value types. It can represent a constant, a data address, a procedure or function descriptor address, or a routine address. Constants are usually offsets of a particular field in a data structure; however, they can also represent constant values such as the BUG$_xxx symbols.

Symbols are composed of up to 31 letters and numbers, and can include the dollar sign ($) and underscore (_) characters. When you invoke SDA, it reads in the global symbols from the symbols table section of SYS$BASE_IMAGE.EXE, and from REQSYSDEF.STB, a required subset of the symbols in the file SYSDEF.STB. You can add other symbols to SDA's symbol table by using the DEFINE and READ commands.

All address symbols identify memory locations. SDA generally does not distinguish among different types of address symbols. However, for a symbol identified as the name of a procedure descriptor, SDA takes an additional step of creating an associated symbol to name the code entry point address of the procedure. It forms the code entry point symbol name by appending _C to the name of the procedure descriptor.

Also, SDA substitutes the code entry point symbol name for the procedure descriptor symbol when you enter the following command:

SDA> EXAMINE/INSTRUCTION procedure-descriptor

For example, enter the following command:

SDA> EXAMINE/INSTRUCTION SCH$QAST

SDA displays the following information:

SCH$QAST_C:     SUBQ    SP,#X40,SP

Now enter the EXAMINE command but do not specify the /INSTRUCTION qualifier, as follows:

SDA> EXAMINE SCH$QAST

SDA displays the following information:

SCH$QAST:  0000002C.00003009   ".0..,..."

This display shows the contents of the first two longwords of the procedure descriptor.

Note that there are no routine address symbols on Alpha systems, except for those in MACRO-64 assembly language modules. Therefore, SDA creates a routine address symbol for every procedure descriptor it has in its symbol table. The new symbol name is the same as for the procedure descriptor except that it has an _C appended to the end of the name.

Sources for SDA Symbols

SDA obtains its information from the following:

  • Images (.EXE files)

  • Image symbol table files (.STB files)

  • Object files

SDA also defines symbols to access registers and to access common data structures.

The only images with symbols are shareable images and executive images. These images contain only universal symbols, such as constants and addresses.

The image symbol table files are produced by the linker with the /SYMBOLS qualifier. These files normally contain only universal symbols, as do the executable images. However, if the SYMBOL_TABLE=GLOBALS linker option is specified, the .STB file also contains all global symbols defined in the image. See the VSI OpenVMS Linker Utility Manual for more information.

Object files can contain global constant values. An object file used with SDA typically contains symbol definitions for data structure fields. Such an object file can be generated by compiling a MACRO-32 source module that invokes specific macros. The macros, which are typically defined in SYS$LIBRARY:LIB.MLB or STARLET.MLB, define symbols that correspond to data structure field offsets. The macro $UCBDEF, for example, defines offsets for fields within a unit control block (UCB). OpenVMS Alpha and Integrity servers provide several such object modules in SDA$READ_DIR, as listed in the table below. For compatibility with OpenVMS VAX, the modules' file types have been renamed to .STB.

Table 2.5. Modules Containing SDA Global Symbols and Data Structures
FileContents
DCLDEF.STBSymbols for the DCL interpreter
DECDTMDEF.STBSymbols for transaction processing
GLXDEF.STBSymbols for OpenVMS Galaxy data structures
IMGDEF.STBSymbols for the image activator
IODEF.STBI/O database structure symbols
NETDEF.STBSymbols for DECnet data structures
REQSYSDEF.STBRequired symbols for SDA
RMSDEF.STBSymbols that define RMS internal and user data structures and RMS$_ xxx completion codes
SCSDEF.STBSymbols that define data structures for system communications services
SYSDEF.STBSymbols that define system data structures, including the I/O database
TCPIP$NET_GLOBALS.STB 1Data structure definitions for TCP/IP internet driver, execlet, and ACP data structures. Available only if TCP/IP has been installed.
TCPIP$NFS_GLOBALS.STB 1Data structure definitions for TCP/IP NFS server. Available only if TCP/IP has been installed.
TCPIP$PROXY_GLOBALS.STB 1Data structure definitions for TCP/IP proxy execlet
TCPIP$PWIP_GLOBALS.STB 1Data structure definitions for TCP/IP PWIP driver, and ACP data structures. Available only if TCP/IP has been installed.
TCPIP$TN_GLOBALS.STB 1Data structure definitions for TCP/IP TELNET/RLOGIN server driver data structures. Available only if TCP/IP has been installed.

The following table lists symbols that SDA defines automatically on initialization.

Table 2.6. SDA Symbols Defined on Initialization
ASNAddress space number
ASTBoth the asynchronous system trap status and enable registers: AST<3:0> = AST enable; AST<7:4> = AST status
BR0 through BR7Branch registers (Integrity servers only)
CYCLE_COUNTERProcess cycle counter
ESPExecutive stack pointer
EBSPExecutive register stack pointer (Integrity servers only)
FENFloating-point enable
FPFrame pointer (R29)
FP0 through FP31Floating-point registers (Alpha only)
FP0 through FP127Floating point registers (Integrity servers only)
FPCRFloating-point control register (Alpha only)
FPSRFloating-point status register (Integrity servers only)
GPGlobal pointer (R1) (Integrity servers only)
GFFFFFFFF.80000000 16, the base address of system space
H00000000.7FFE0000 16, a base address in P1 space
IFFFFFFFF.FFFFFFFF 16, also fills the leading digits of a hexadecimal number with the value of F
KSPKernel stack pointer
KBSPKernel register stack pointer (Integrity servers only)
PAL_RSVDPAL reserved area in process HWPCB
PCProgram counter
PCCProcess cycle counter
PSProcessor status
PTBRPage table base register
R0 through R31Integer registers (Alpha only)
R0 through R127Integer registers (Integrity servers only)
SCCSystem cycle counter
SPCurrent stack pointer of a process
SSPSupervisor stack pointer
SBSPSupervisor register stack pointer (Integrity servers only)
SYSPTBRPage table base register for system space
USPUser stack pointer
UBSPUser register stack pointer (Integrity servers only)
VIRBNDVirtual Address Boundary for RADs (Alpha only)

After a SET CPU command is issued (for analyzing a crash dump only), the symbols defined in the table below are set for that CPU.

Table 2.7. SDA Symbols Defined by SET CPU Command
CPUDBAddress of CPU database
IPLInterrupt priority level register
MCESMachine check error summary register
PCBBProcess context block base register
PRBRProcessor base register (CPU database address)
RADAddress of RAD database
SCBBSystem control block base register
SISRSoftware interrupt status register
VPTBVirtual Page Table Base register

After a SET PROCESS command is issued, the symbols listed in the table below are defined for that process.

Table 2.8. SDA Symbols Defined by SET PROCESS Command
ARBAddress of access rights block
FREDAddress of floating-point register and execution data block
JIBAddress of job information block
KTBAddress of the kernel thread block
ORBAddress of object rights block
PCBAddress of process control block
PHDAddress of process header
PSBAddress of persona security block

Other SDA commands, such as SHOW DEVICE and SHOW CLUSTER, predefine additional symbols.

Symbols can include lowercase letters. Commands that manipulate symbols (such as DEFINE, SHOW SYMBOL, UNDEFINE) require these symbols to be enclosed within quotation marks ("symbol" ).

SDA Symbol Initialization

On initialization, SDA reads the universal symbols defined by SYS$BASE_IMAGE.EXE. For every procedure descriptor address symbol found, a routine address symbol is created (with _C appended to the symbol name).

SDA then reads the object file REQSYSDEF.STB. This file contains data structure definitions that are required for SDA to run correctly. It uses these symbols to access some of the data structures in the crash dump file or on the running system.

Finally, SDA initializes the process registers defined in Table 2.8, “SDA Symbols Defined by SET PROCESS Command” and executes a SET CPU command, defining the symbols as well.

Use of SDA Symbols

There are two major uses of the address type symbols. First, the EXAMINE command employs them to find the value of a known symbol. For example, EXAMINE CTL$GL_PCB finds the PCB for the current process. Then, certain SDA commands (such as EXAMINE, SHOW STACK, and FORMAT) use them to symbolize addresses when generating output.

When the code for one of these commands needs a symbol for an address, it calls the SDA symbolize routine. The symbolize routine tries to find the symbol in the symbol table whose address is closest to, but not greater than the requested address. This means, for any given address, the routine may return a symbol of the form symbol_name+offset. If, however, the offset is greater than 0FFF16, it fails to find a symbol for the address.

As a last resort, the symbolize routine checks to see if this address falls within a known memory range. Currently, the only known memory ranges are those used by the OpenVMS executive images and those used by active images in a process. SDA searches through the executive loaded image list (LDRIMG data structure) and activated image list (IMCB data structures) to see if the address falls within any of the image sections. If SDA does find a match, it returns one of the following types of symbols:

@@@@executive_image_name+offset activated_image_name+offset

The offset is the same as the image offset as defined in the map file.

The constants in the SDA symbol table are usually used to display a data structure with the FORMAT command. For example, the PHD offsets are defined in SYSDEF.STB; you can display all the fields of the PHD by entering the following commands:

SDA> READ SDA$READ_DIR:SYSDEF.STB

SDA> FORMAT/TYPE=PHD phd_address

Symbols and Address Resolution

In OpenVMS, executive and user images are loaded into dynamically assigned address space. To help you associate a particular virtual address with the image whose code has been loaded at that address, SDA provides several features:

  • The SHOW EXECUTIVE command

  • The symbolization of addresses, described in the previous section

  • The READ command

  • The SHOW PROCESS command with the /IMAGES qualifier

  • The MAP command

The OpenVMS executive consists of two base images, SYS$BASE_IMAGE.EXE and SYS$PUBLIC_VECTORS.EXE, and a number of other separately loadable images. Some of these images are loaded on all systems, while others support features unique to particular system configurations. Executive images are mapped into system space during system initialization.

By default, a typical executive image is not mapped at contiguous virtual addresses. Instead, its nonpageable image sections are loaded into a reserved set of pages with other executive images' nonpageable sections. The pageable sections of a typical executive image are mapped contiguously into a different part of system space. An image mapped in this manner is said to be sliced. A particular system may have system parameters defined that disable executive image slicing altogether.

Each executive image is described by a data structure called a loadable image data block (LDRIMG). The LDRIMG specifies whether the image has been sliced. If the image is sliced, the LDRIMG indicates the beginning of each image section and the size of each section. All the LDRIMGs are linked together in a list that SDA scans to determine what images have been loaded and into what addresses they have been mapped. The SHOW EXECUTIVE command displays a list of all images that are included in the OpenVMS executive.

Each executive image is a shareable image whose universal symbols are defined in the SYS$BASE_IMAGE.EXE symbol vector. On initialization, SDA reads this symbol vector and adds its universal symbols to the SDA symbol table.

Executive image .STB files define additional symbols within an executive image that are not defined as universal symbols and thus are not in the SYS$BASE_IMAGE.EXE symbol vector (see Sources for SDA Symbols Section 2.6.1.4, “SDA Symbols” in this section). You can enter a READ/EXECUTIVE command to read symbols defined in all executive image .STB files into the SDA symbol table, or a READ/IMAGE filespec command to read the .STB for a specified image only.

To obtain a display of all images mapped within a process, execute a SHOW PROCESS/IMAGE command. See the description of the SHOW PROCESS command for additional information about displaying the hardware and software context of a process.

You can also identify the image name and offset that correspond to a specified address with the MAP command. With the information obtained from the MAP command, you can then examine the image map to locate the source module and program section offset corresponding to an address.

2.6.2. SDA Display Mode

Some SDA commands produce more output than will fit on one screen. In this situation, SDA enters display mode, and outputs the screen overflow prompt at the bottom of the screen:

Press RETURN for more.
SDA>

If the RETURN key is pressed, SDA will continue the output of the command it was processing. If an EXIT command is entered, SDA will leave display mode, abort the command it was processing and output a regular SDA prompt. If any other command is entered, SDA will leave display mode, abort the command it was processing, and begin processing the new command.

SDA will leave display mode once a continued command completes.

2.7. Investigating System Failures

This section discusses how the operating system handles internal errors, and suggests procedures that can help you determine the causes of these errors. It illustrates, through detailed analysis of a sample system failure, how SDA helps you find the causes of operating system problems.

For a complete description of the commands discussed in the sections that follow, refer to Chapter 4, SDA Commands and Chapter 5, SDA CLUE Extension of this document, where all the SDA and CLUE commands are presented in alphabetical order.

2.7.1. Procedure for Analyzing System Failures

When the operating system detects an internal error so severe that normal operation cannot continue, it signals a condition known as a fatal bugcheck and shuts itself down. A specific bugcheck code describes each fatal bugcheck.

To resolve the problem, you must find the reason for the bugcheck. Many failures are caused by errors in user-written device drivers or other privileged code not supplied by VSI. To identify and correct these errors, you need a listing of the code in question.

Occasionally, a system failure is the result of a hardware failure or an error in code supplied by VSI. A hardware failure requires the attention of VSI Services. To diagnose an error in code supplied by VSI, you need listings of that code, which are available from VSI.

Start the search for the error by analyzing the CLUE list file that was created by default when the system failed. This file contains an overview of the system failure, which can assist you in finding the line of code that signaled the bugcheck. CLUE CRASH displays the content of the program counter (PC) in the list file. The content of the PC is the address of the next instruction after the instruction that signaled the bugcheck.

However, some bugchecks are caused by unexpected exceptions. In such cases, the address of the instruction that caused the exception is more informative than the address of the instruction that signaled the bugcheck.

The address of the instruction that caused the exception is located on the stack. You can obtain this address either by using the SHOW STACK command to display the contents of the stack or by using the SHOW CRASH or CLUE CRASH command to display the system state at time of exception. See Section 2.7.2, “Fatal Bugcheck Conditions” for information on how to proceed for several types of bugchecks.

Once you have found the address of the instruction that caused the bugcheck or exception, find the module in which the failing instruction resides. Use the MAP command to determine whether the instruction is part of a device driver or another executive image. Alternatively, the SHOW EXECUTIVE command shows the location and size of each of the images that make up the OpenVMS executive.

If the instruction that caused the bugcheck is not part of a driver or executive image, examine the linker's map of the module or modules you are debugging to determine whether the instruction that caused the bugcheck is in your program.

To determine the general cause of the system failure, examine the code that signaled the bugcheck or the instruction that caused the exception.

2.7.2. Fatal Bugcheck Conditions

There are many possible conditions that can cause OpenVMS to issue a bugcheck. Normally, these occasions are rare. When they do occur, they are often fatal exceptions or illegal page faults occurring within privileged code. This section describes the symptoms of several common bugchecks. A discussion of other exceptions and condition handling in general appears in the VSI OpenVMS Programming Concepts Manual.

An exception is fatal when it occurs while either of the following conditions exists:

  • The process is executing above IPL 2 (IPL$_ASTDEL).

  • The process is executing in a privileged (kernel or executive) processor access mode and has not declared a condition handler to deal with the exception.

When the system fails, the operating system reports the approximate cause of the system failure on the console terminal. SDA displays a similar message when you issue a SHOW CRASH command. For instance, for a fatal exception, SDA can display one of these messages:

FATALEXCPT, Fatal executive or kernel mode exception

INVEXCEPTN, Exception while above ASTDEL

SSRVEXCEPT, Unexpected system service exception

UNXSIGNAL, Unexpected signal name in ACP

When a FATALEXCPT, INVEXCEPTN, SSRVEXCEPT, or UNXSIGNAL bugcheck occurs, two argument lists, known as the mechanism and signal arrays, are placed on the stack.

Section 2.7.2.1, “Alpha Mechanism Array” to Section 2.7.2.6, “Integrity server Exception Stack Frame” describe these arrays and related data structures, and Section 2.7.2.7, “SSRVEXCEPT Example” shows example output from SDA for an SSRVEXCEPT bugcheck.

A page fault is illegal when it occurs while the interrupt priority level (IPL) is greater than 2 (IPL$_ASTDEL). When OpenVMS fails because of an illegal page fault, it displays the following message on the console terminal:

PGFIPLHI, Page fault with IPL too high

Section 2.7.2.8, “Illegal Page Faults” describes the stack contents when an illegal page fault occurs.

2.7.2.1. Alpha Mechanism Array

The figure below illustrates the Alpha mechanism array, which is made up entirely of quadwords. The first quadword of this array indicates the number of quadwords in this array; this value is always 2C16. These quadwords are used by the procedures that search for a condition handler and report exceptions.

Figure 2.1. Alpha Mechanism Array
Alpha Mechanism Array

Symbolic offsets into the mechanism array are defined by using the SDA SHOW STACK command to identify the elements of the mechanism array on the stack using the symbols in the table below.

Table 2.9. Contents of the Alpha Mechanism Array
OffsetMeaning
CHF$IS_MCH_ARGSNumber of quadwords that follow. In a mechanism array, this value is always 2C 16.
CHF$IS_MCH_FLAGSFlag bits for related argument mechanism information.
CHF$PH_MCH_FRAMEAddress of the FP (frame pointer) of the establisher's call frame.
CHF$IS_MCH_DEPTHDepth of the OpenVMS search for a condition handler.
CHF$PH_MCH_DADDRAddress of the handler data quadword, if the exception handler data field is present.
CHF$PH_MCH_ESF_ADDRAddress of the exception stack frame (see Figure 2.5, “Alpha Exception Stack Frame”figure2-5).
CHF$PH_MCH_SIG_ADDRAddress of the signal array (see Figure 2.3, “Signal Array”).
CHF$IH_MCH_SAVRnnContents of the saved integer registers at the time of the exception. The following registers are saved: R0, R1, and R16 to R28 inclusive.
CHF$FH_MCH_SAVFnnIf the process was using floating point, contents of the saved floating-point registers at the time of the exception. The following registers are saved: F0, F1, and F10 to F30 inclusive.
CHF$PH_MCH_SIG64_ADDRAddress of the 64-bit signal array (see Figure 2.4, “64-Bit Signal Array”).

2.7.2.2. Integrity server Mechanism Array

The figure below illustrates the Integrity server mechanism array, which is made up entirely of quadwords. The first quadword of this array indicates the number of quadwords in the array. This value is either 4916, if floating point registers F32 to F127 have not been saved, or 10916, if the floating point registers have been saved. These quadwords are used by the procedures that search for a condition handler and report exceptions.

Figure 2.2. Integrity server Mechanism Array
Integrity server Mechanism Array

Symbolic offsets into the mechanism array are defined by using the SDA SHOW STACK command to identify the elements of the mechanism array on the stack using the symbols in the table below.

Table 2.10. Contents of the Integrity server Argument Mechanism Array
Field NameContents
CHF$IS_MCH_ARGSCount of quadwords in this array starting from the next quadword, CHF$PH_MCH_FRAME (not counting the first quadword that contains this longword). This value is 73 if CHF$V_FPREGS2_VALID is clear, and 265 if CHF$V_FPREGS2_VALID is set.
CHF$IS_MCH_FLAGSFlag bits for related argument-mechanism information.
CHF$PH_MCH_FRAMEContains the Previous Stack Pointer, PSP, (the value of the SP at procedure entry) for the procedure context of the establisher.
CHF$IS_MCH_DEPTHPositive count of the number of procedure activation stack frames between the frame in which the exception occurred and the frame depth that established the handler being called.
CHF$PH_MCH_DADDRAddress of the handler data quadword (start of the Language Specific Data area, LSDA), if the exception handler data field is present in the unwind information block (as indicated by OSSD$V_HANDLER_DATA_VALID); otherwise, contains 0.
CHF$PH_MCH_ESF_ADDRAddress of the exception stack frame.
CHF$PH_MCH_SIG_ADDRAddress of the 32-bit form of signal array. This array is a 32-bit wide (longword) array. This is the same array that is passed to a handler as the signal argument vector.
CHF$IH_MCH_RETVALContains a copy of R8 at the time of the exception.
CHF$IH_MCH_RETVAL2Contains a copy of R9 at the time of the exception.
CHF$PH_MCH_SIG64_ADDRAddress of the 64-bit form of signal array. This array is a 64-bit wide (quadword) array.
CHF$FH_MCH_SAVF32_SAVF127Address of the extension to the mechanism array that contains copies of F32 to F127 at the time of the exception.
CHF$FH_MCH_RETVAL_FLOATContains a copy of F8 at the time of the exception.
CHF$FH_MCH_RETVAL2_FLOATContains a copy of F9 at the time of the exception.
CHF$FH_MCH_SAVFnnContain copies of floating-point registers F2 to F5 and F12 to F31. Registers F6, F7 and F10, F11 are implicitly saved in the exception frame.
CHF$IH_MCH_SAVBnnContain copies of branch registers B1 to B5 at the time of the exception.
CHF$IH_MCH_AR_LCContains a copy of the Loop Count Register (AR65) at the time of the exception.
CHF$IH_MCH_AR_ECContains a copy of the Epilog Count Register (AR66) at the time of the exception.
CHF$PH_MCH_OSSDAddress of the operating-system specific data area.
CHF$PH_MCH_INVO_HANDLEContains the invocation handle of the procedure context of the establisher.
CHF$PH_MCH_UWR_STARTAddress of the unwind region.
CHF$IH_MCH_FPSRContains a copy of the hardware floating-point status register (AR.FPSR) at the time of the exception.
CHF$IH_MCH_FPSSContains a copy of the software floating-point status register (which supplements CHF$IH_MCH_FPSR) at the time of the exception.

2.7.2.3. Signal Array

The signal array appears somewhat further down the stack. This array comprises all longwords so that the structure is VAX compatible. A signal array describes the exception that occurred. It contains an argument count, the exception code, zero or more exception parameters, the PC, and the PS. Therefore, the size of a signal array can vary from exception to exception. Although there are several possible exception conditions, access violations are most common. the figure below shows the signal array for an access violation.

Figure 2.3. Signal Array
Signal Array

For access violations, the signal array is set up as follows:

Table 2.11. 
ValueMeaning
Vector list lengthNumber of longwords that follow. For access violations, this value is always 5.
Condition valueException code. The value 0C 16 represents an access violation. You can identify the exception code by using the SDA command EVALUATE/CONDITION_VALUE or SHOW CRASH.
Additional arguments

These can include a reason mask and a virtual address.

In the longword mask if bit 0 of the longword is set, the failing instruction (at the PC saved below) caused a length violation. If bit 1 is set, it referred to a location whose page table entry is in a "no access" page. Bit 2 indicates the type of access used by the failing instruction: it is set for write and modify operations and clear for read operations.

The virtual address represents the low-order 32 bits of the virtual address that the failing instruction tried to reference.

PCPC whose execution resulted in the exception.
PSPS at the time of the exception.

2.7.2.4. 64-Bit Signal Array

The 64-bit signal array also appears further down the stack. This array comprises all quadwords and is not VAX compatible. It contains the same data as the signal array, and Figure 2.4, “64-Bit Signal Array” shows the 64-bit signal array for an access violation. The SDA SHOW STACK command uses the CHF64$ symbols listed in the figure to identify the 64-bit signal array on the stack.

Figure 2.4. 64-Bit Signal Array
64-Bit Signal Array

For access violations, the 64-bit signal array is set up as follows:

ValueMeaning
Vector list lengthNumber of quadwords that follow. For access violations, this value is always 5.
Condition valueException code. The value 0C 16 represents an access violation. You can identify the exception code by using the SDA command EVALUATE/CONDITION_VALUE or SHOW CRASH.
Additional argumentsThese can include a reason mask and a virtual address. In the quadword mask if bit 0 of the quadword is set, the failing instruction (at the PC saved below) caused a length violation. If bit 1 is set, it referred to a location whose page table entry is in a "no access" page. Bit 2 indicates the type of access used by the failing instruction: it is set for write and modify operations and clear for read operations.
PCPC whose execution resulted in the exception.
PSPS at the time of the exception.

2.7.2.5. Alpha Exception Stack Frame

The figure below illustrates the Alpha exception stack frame, which comprises all quadwords.

Figure 2.5. Alpha Exception Stack Frame
Alpha Exception Stack Frame

The values contained in the exception stack frame are defined as follows:

Table 2.12. Alpha Exception Stack Frame Values
ValueContents
INTSTK$Q_R2Contents of R2 at the time of the exception
INTSTK$Q_R3Contents of R3 at the time of the exception
INTSTK$Q_R4Contents of R4 at the time of the exception
INTSTK$Q_R5Contents of R5 at the time of the exception
INTSTK$Q_R6Contents of R6 at the time of the exception
INTSTK$Q_R7Contents of R7 at the time of the exception
INTSTK$Q_PCPC whose execution resulted in the exception
INTSTK$Q_PSPS at the time of the exception (except high-order bits)

The SDA SHOW STACK command identifies the elements of the exception stack frame on the stack using these symbols.

2.7.2.6. Integrity server Exception Stack Frame

Two figures below illustrate the Integrity servers exception stack frame.

Figure 2.6. Integrity servers Exception Stack Frame
Integrity servers Exception Stack Frame
Figure 2.7. Integrity servers Exception Stack Frame (cont.)
Integrity servers Exception Stack Frame (cont.)

The values contained in the exception stack frame are defined in the table below.

Table 2.13. Integrity servers Exception Stack Frame Values
FieldUse
INTSTK$B_FLAGSIndicates if certain registers have been saved.
INTSTK$B_PPREVMODESave interrupted context's PREVMODE.
INTSTK$B_PREVSTACKIndicates which mode of stack (register and memory) we return to.
INTSTK$B_IPLSWIS IPL state
INTSTK$L_STKALIGNHow much allocated on this stack for exception frame.
INTSTK$W_NATMASKMask of bits 3-9 of the exception frame address.
INTSTK$B_TYPEStandard VMS structure type.
INTSTK$B_SUBTYPEStandard VMS structure subtype.
INTSTK$L_TRAP_TYPETrap type.
INTSTK$Q_IIPInterruption Instruction Pointer (CR19).
INTSTK$Q_RSCRegister Stack Control register.
INTSTK$Q_BSPBacking store pointer.
INTSTK$Q_BSPSTOREUser BSP store pointer for next spill.
INTSTK$Q_RNATRNAT register.
INTSTK$Q_BSPBASEBase of backing store for the inner mode.
INTSTK$Q_PFSPrevious function state.
INTSTK$Q_CONTEXTBookkeeping data for exception processing.
INTSTK$Q_AST_F12 through INTSTK$Q_AST_F15F12 to F15 - temporary FP registers; sometimes saved by AST.
INTSTK$Q_FPSRFloating point status register.
INTSTK$B_INTERRUPT_DEPTHInterrupt depth.
INTSTK$Q_PREDSPredication registers.
INTSTK$Q_IPSRInterruption Processor Status (CR16).
INTSTK$Q_ISRInterruption Status Register (CR17).
INTSTK$Q_CR18Reserved control register.
INTSTK$Q_IFAInterruption Fault Address (CR20).
INTSTK$Q_ITIRInterruption TLB Insertion Register (CR21).
INTSTK$Q_IIPAInterruption immediate register (CR22).
INTSTK$Q_IFSInterruption Function State (CR23).
INTSTK$Q_IIMInterruption immediate (CR24).
INTSTK$Q_IHAInterruption Hash Address (CR25).
INTSTK$Q_UNATUser NAT collection register.
INTSTK$Q_CCVCCV register.
INTSTK$Q_DCRDefault control register.
INTSTK$Q_LCLoop counter.
INTSTK$Q_ECEpilogue counter.
INTSTK$Q_NATSNATs for registers saved in this structure.
INTSTK$Q_REGBASEUsed to index into registers.
INTSTK$Q_GPr1 - Used as global pointer.
INTSTK$Q_R2r2 - temporary register.
INTSTK$Q_R3r3 - temporary register.
INTSTK$Q_R4 through R7r4 through r7 - preserved registers (not saved by interrupt).
INTSTK$Q_R8r8 - return value.
INTSTK$Q_R9r9 - argument pointer.
INTSTK$Q_R10r10 - temporary register.
INTSTK$Q_R11r11 - temporary register.
INTSTK$Q_SSDFor future use.
INTSTK$Q_R13r13 - Thread Pointer.
INTSTK$Q_R14 through R31r14 through r31 - temporary registers.
INTSTK$Q_B0Return pointer on kernel entry.
INTSTK$Q_B1 through B5b1 through b5 - Preserved branch registers (not saved by interrupt).
INTSTK$Q_B6b6 - temporary branch register.
INTSTK$Q_B7b7 - temporary branch register.
INTSTK$L_IVT_OFFSETOffset in IVT.
INTSTK$Q_F6 through F11f6 through f11 - temporary FP registers.

2.7.2.7. SSRVEXCEPT Example

If OpenVMS encounters a fatal exception, you can find the code that signaled it by examining the PC in the signal array. Use the SHOW CRASH or CLUE CRASH command to display the PC and the instruction stream around the PC to locate the exception.

The following display shows the SDA output in response to the SHOW CRASH and SHOW STACK commands for an Alpha SSRVEXCEPT bugcheck. It illustrates the mechanism array, signal arrays, and the exception stack frame previously described.

Example 2.1. SHOW CRASH
OpenVMS (TM) Alpha system dump analyzer
...analyzing a selective memory dump...

Dump taken on 30-AUG-2000 13:13:46.83
SSRVEXCEPT, Unexpected system service exception

SDA>  SHOW CRASH
Time of system crash: 30-AUG-1996 13:13:46.83


Version of system: OpenVMS (TM) Alpha Operating System, Version V7.3

System Version Major ID/Minor ID: 3/0


System type: DEC 3000 Model 400

Crash CPU ID/Primary CPU ID:  00/00

Bitmask of CPUs active/available:  00000001/00000001


CPU bugcheck codes:
        CPU 00 -- SSRVEXCEPT, Unexpected system service exception

System State at Time of Exception
---------------------------------
Exception Frame:
----------------
        R2  = 00000000.00000003
        R3  = FFFFFFFF.80C63460  EXCEPTION_MON_NPRW+06A60
        R4  = FFFFFFFF.80D12740  PCB
        R5  = 00000000.000000C8
        R6  = 00000000.00030038
        R7  = 00000000.7FFA1FC0
        PC  = 00000000.00030078
        PS  = 00000000.00000003

         00000000.00030068:     STQ             R27,(SP)
         00000000.0003006C:     BIS             R31,SP,FP
         00000000.00030070:     STQ             R26,#X0010(SP)
         00000000.00030074:     LDA             R28,(R31)
   PC => 00000000.00030078:     LDL             R28,(R28)
         00000000.0003007C:     BEQ             R28,#X000007
         00000000.00030080:     LDQ             R26,#XFFE8(R27)
         00000000.00030084:     BIS             R31,R26,R0
         00000000.00030088:     BIS             R31,FP,SP

   PS =>
         MBZ SPAL      MBZ    IPL VMM MBZ CURMOD INT PRVMOD
         0   00   00000000000 00  0   0   KERN   0   USER


Signal Array
------------
        Length = 00000005
        Type   = 0000000C
        Arg    = 00000000.00010000
        Arg    = 00000000.00000000
        Arg    = 00000000.00030078
        Arg    = 00000000.00000003
%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=0000000000000000,
   PC=0000000000030078, PS=00000003

Saved Scratch Registers in Mechanism Array
------------------------------------------
R0   = 00000000.00020000  R1   = 00000000.00000000  R16  = 00000000.00020004
R17  = 00000000.00010050  R18  = FFFFFFFF.FFFFFFFF  R19  = 00000000.00000000
R20  = 00000000.7FFA1F50  R21  = 00000000.00000000  R22  = 00000000.00010050
R23  = 00000000.00000000  R24  = 00000000.00010051  R25  = 00000000.00000000
R26  = FFFFFFFF.8010ACA4  R27  = 00000000.00010050  R28  = 00000000.00000000

CPU 00 Processor crash information
----------------------------------


CPU 00 reason for Bugcheck: SSRVEXCEPT, Unexpected system service exception


Process currently executing on this CPU: SYSTEM


Current image file: $31$DKB0:[SYS0.][SYSMGR]X.EXE;1


Current IPL: 0  (decimal)


CPU database address:  80D0E000


CPUs Capabilities:    PRIMARY,QUORUM,RUN

General registers:

R0   = 00000000.00000000  R1   = 00000000.7FFA1EB8  R2   = FFFFFFFF.80D0E6C0
R3   = FFFFFFFF.80C63460  R4   = FFFFFFFF.80D12740  R5   = 00000000.000000C8
R6   = 00000000.00030038  R7   = 00000000.7FFA1FC0  R8   = 00000000.7FFAC208
R9   = 00000000.7FFAC410  R10  = 00000000.7FFAD238  R11  = 00000000.7FFCE3E0
R12  = 00000000.00000000  R13  = FFFFFFFF.80C6EB60  R14  = 00000000.00000000
R15  = 00000000.009A79FD  R16  = 00000000.000003C4  R17  = 00000000.7FFA1D40
R18  = FFFFFFFF.80C05C38  R19  = 00000000.00000000  R20  = 00000000.7FFA1F50
R21  = 00000000.00000000  R22  = 00000000.00000001  R23  = 00000000.7FFF03C8
R24  = 00000000.7FFF0040  AI   = 00000000.00000003  RA   = FFFFFFFF.82A21080
PV   = FFFFFFFF.829CF010  R28  = FFFFFFFF.8004B6DC  FP   = 00000000.7FFA1CA0
PC   = FFFFFFFF.82A210B4  PS   = 18000000.00000000




Processor Internal Registers:


ASN  = 00000000.0000002F                     ASTSR/ASTEN =          0000000F
IPL  =          00000000  PCBB = 00000000.003FE080  PRBR = FFFFFFFF.80D0E000
PTBR = 00000000.00001136  SCBB = 00000000.000001DC  SISR = 00000000.00000000
VPTB = FFFFFFFC.00000000  FPCR = 00000000.00000000  MCES = 00000000.00000000

CPU 00 Processor crash information
----------------------------------


        KSP    = 00000000.7FFA1C98
        ESP    = 00000000.7FFA6000
        SSP    = 00000000.7FFAC100
        USP    = 00000000.7AFFBAD0

                No spinlocks currently owned by CPU 00
Example 2.2. SHOW STACK
SDA> SHOW STACK
Current Operating Stack (KERNEL):
                       00000000.7FFA1C78    18000000.00000000
                       00000000.7FFA1C80    00000000.7FFA1CA0
                       00000000.7FFA1C88    00000000.00000000
                       00000000.7FFA1C90    00000000.7FFA1D40
                SP =>  00000000.7FFA1C98    00000000.00000000
                       00000000.7FFA1CA0    FFFFFFFF.829CF010  EXE$EXCPTN
                       00000000.7FFA1CA8    FFFFFFFF.82A2059C  EXCEPTION_MON_PRO+0259C
                       00000000.7FFA1CB0    00000000.00000000
                       00000000.7FFA1CB8    00000000.7FFA1CD0
                       00000000.7FFA1CC0    FFFFFFFF.829CEDA8  EXE$SET_PAGES_READ_ONLY+00948
                       00000000.7FFA1CC8    00000000.00000000
                       00000000.7FFA1CD0    FFFFFFFF.829CEDA8  EXE$SET_PAGES_READ_ONLY+00948
                       00000000.7FFA1CD8    00000000.00000000
                       00000000.7FFA1CE0    FFFFFFFF.82A1E930  EXE$CONTSIGNAL_C+001D0
                       00000000.7FFA1CE8    00000000.7FFA1F40
                       00000000.7FFA1CF0    FFFFFFFF.80C63780  EXE$ACVIOLAT
                       00000000.7FFA1CF8    00000000.7FFA1EB8
                       00000000.7FFA1D00    00000000.7FFA1D40
                       00000000.7FFA1D08    00000000.7FFA1F00
                       00000000.7FFA1D10    00000000.7FFA1F40
                       00000000.7FFA1D18    00000000.00000000
                       00000000.7FFA1D20    00000000.00000000
                       00000000.7FFA1D28    00000000.00020000  SYS$K_VERSION_04
                       00000000.7FFA1D30    00000005.00000250  BUG$_NETRCVPKT
                       00000000.7FFA1D38    829CE050.000008F8  BUG$_SEQ_NUM_OVF
CHF$IS_MCH_ARGS        00000000.7FFA1D40    00000000.0000002C
CHF$PH_MCH_FRAME       00000000.7FFA1D48    00000000.7AFFBAD0
CHF$IS_MCH_DEPTH       00000000.7FFA1D50    FFFFFFFF.FFFFFFFD
CHF$PH_MCH_DADDR       00000000.7FFA1D58    00000000.00000000
CHF$PH_MCH_ESF_ADDR    00000000.7FFA1D60    00000000.7FFA1F00
CHF$PH_MCH_SIG_ADDR    00000000.7FFA1D68    00000000.7FFA1EB8
CHF$IH_MCH_SAVR0       00000000.7FFA1D70    00000000.00020000  SYS$K_VERSION_04
CHF$IH_MCH_SAVR1       00000000.7FFA1D78    00000000.00000000
CHF$IH_MCH_SAVR16      00000000.7FFA1D80    00000000.00020004  UCB$M_LCL_VALID+00004
CHF$IH_MCH_SAVR17      00000000.7FFA1D88    00000000.00010050  SYS$K_VERSION_16+00010
CHF$IH_MCH_SAVR18      00000000.7FFA1D90    FFFFFFFF.FFFFFFFF
CHF$IH_MCH_SAVR19      00000000.7FFA1D98    00000000.00000000
CHF$IH_MCH_SAVR20      00000000.7FFA1DA0    00000000.7FFA1F50
CHF$IH_MCH_SAVR21      00000000.7FFA1DA8    00000000.00000000
CHF$IH_MCH_SAVR22      00000000.7FFA1DB0    00000000.00010050  SYS$K_VERSION_16+00010
CHF$IH_MCH_SAVR23      00000000.7FFA1DB8    00000000.00000000
CHF$IH_MCH_SAVR24      00000000.7FFA1DC0    00000000.00010051  SYS$K_VERSION_16+00011
CHF$IH_MCH_SAVR25      00000000.7FFA1DC8    00000000.00000000
CHF$IH_MCH_SAVR26      00000000.7FFA1DD0    FFFFFFFF.8010ACA4  AMAC$EMUL_CALL_NATIVE_C+000A4
CHF$IH_MCH_SAVR27      00000000.7FFA1DD8    00000000.00010050  SYS$K_VERSION_16+00010
CHF$IH_MCH_SAVR28      00000000.7FFA1DE0    00000000.00000000
                       00000000.7FFA1DE8    00000000.00000000
                       00000000.7FFA1DF0    00000000.00000000
                       00000000.7FFA1DF8    00000000.00000000
                       00000000.7FFA1E00    00000000.00000000
                       00000000.7FFA1E08    00000000.00000000
                       00000000.7FFA1E10    00000000.00000000
                       00000000.7FFA1E18    00000000.00000000
                       00000000.7FFA1E20    00000000.00000000
                       00000000.7FFA1E28    00000000.00000000
                       00000000.7FFA1E30    00000000.00000000
                       00000000.7FFA1E38    00000000.00000000
                       00000000.7FFA1E40    00000000.00000000
                       00000000.7FFA1E48    00000000.00000000
                       00000000.7FFA1E50    00000000.00000000
                       00000000.7FFA1E58    00000000.00000000
                       00000000.7FFA1E60    00000000.00000000
                       00000000.7FFA1E68    00000000.00000000
                       00000000.7FFA1E70    00000000.00000000
                       00000000.7FFA1E78    00000000.00000000
                       00000000.7FFA1E80    00000000.00000000
                       00000000.7FFA1E88    00000000.00000000
                       00000000.7FFA1E90    00000000.00000000
                       00000000.7FFA1E98    00000000.00000000
CHF$PH_MCH_SIG64_ADDR  00000000.7FFA1EA0    00000000.7FFA1ED0
                       00000000.7FFA1EA8    00000000.00000000
                       00000000.7FFA1EB0    00000000.7FFA1F50
                       00000000.7FFA1EB8    0000000C.00000005
                       00000000.7FFA1EC0    00000000.00010000  SYS$K_VERSION_07
                       00000000.7FFA1EC8    00000003.00030078  SYS$K_VERSION_01+00078
CHF$L_SIG_ARGS         00000000.7FFA1ED0    00002604.00000005  UCB$M_TEMPLATE+00604
CHF$L_SIG_ARG1         00000000.7FFA1ED8    00000000.0000000C
                       00000000.7FFA1EE0    00000000.00010000  SYS$K_VERSION_07
                       00000000.7FFA1EE8    00000000.00000000
                       00000000.7FFA1EF0    00000000.00030078  SYS$K_VERSION_01+00078
                       00000000.7FFA1EF8    00000000.00000003
INTSTK$Q_R2            00000000.7FFA1F00    00000000.00000003
INTSTK$Q_R3            00000000.7FFA1F08    FFFFFFFF.80C63460  EXCEPTION_MON_NPRW+06A60
INTSTK$Q_R4            00000000.7FFA1F10    FFFFFFFF.80D12740  PCB
INTSTK$Q_R5            00000000.7FFA1F18    00000000.000000C8
INTSTK$Q_R6            00000000.7FFA1F20    00000000.00030038  SYS$K_VERSION_01+00038
INTSTK$Q_R7            00000000.7FFA1F28    00000000.7FFA1FC0
INTSTK$Q_PC            00000000.7FFA1F30    00000000.00030078  SYS$K_VERSION_01+00078
INTSTK$Q_PS            00000000.7FFA1F38    00000000.00000003
Prev SP (7FFA1F40) ==> 00000000.7FFA1F40    00000000.00010050  SYS$K_VERSION_16+00010
                       00000000.7FFA1F48    00000000.00010000  SYS$K_VERSION_07
                       00000000.7FFA1F50    FFFFFFFF.8010ACA4  AMAC$EMUL_CALL_NATIVE_C+000A4
                       00000000.7FFA1F58    00000000.7FFA1F70
                       00000000.7FFA1F60    00000000.00000001
                       00000000.7FFA1F68    FFFFFFFF.800EE81C  RM_STD$DIRCACHE_BLKAST_C+005AC
                       00000000.7FFA1F70    FFFFFFFF.80C6EBA0  SCH$CHSEP+001E0
                       00000000.7FFA1F78    00000000.829CEDE8  EXE$SIGTORET
                       00000000.7FFA1F80    00010050.00000002  SYS$K_VERSION_16+00010
                       00000000.7FFA1F88    00000000.00020000  SYS$K_VERSION_04
                       00000000.7FFA1F90    00000000.00030000  SYS$K_VERSION_01
                       00000000.7FFA1F98    FFFFFFFF.800A4D64  EXCEPTION_MON_NPRO+00D64
                       00000000.7FFA1FA0    00000000.00000003
                       00000000.7FFA1FA8    FFFFFFFF.80D12740  PCB
                       00000000.7FFA1FB0    00000000.00010000  SYS$K_VERSION_07
                       00000000.7FFA1FB8    00000000.7AFFBAD0
                       00000000.7FFA1FC0    00000000.7FFCF880  MMG$IMGHDRBUF+00080
                       00000000.7FFA1FC8    00000000.7B0E9851
                       00000000.7FFA1FD0    00000000.7FFCF818  MMG$IMGHDRBUF+00018
                       00000000.7FFA1FD8    00000000.7FFCF938  MMG$IMGHDRBUF+00138
                       00000000.7FFA1FE0    00000000.7FFAC9F0
                       00000000.7FFA1FE8    00000000.7FFAC9F0
                       00000000.7FFA1FF0    FFFFFFFF.80000140  SYS$PUBLIC_VECTORS_NPRO+00140
                       00000000.7FFA1FF8    00000000.0000001B


.
.
.

2.7.2.8. Illegal Page Faults

When an illegal page fault occurs, the stack appears as pictured in the figure below.

Figure 2.8. Stack Following an Illegal Page-Fault Error
Stack Following an Illegal Page-Fault Error

The stack contents are as follows:

MMG$PAGEFAULT Stack FrameStack frame built at entry to MMG$PAGEFAULT, the page fault exception service routine. On Alpha, the frame includes the contents of the following registers at the time of the page fault: R3, R8, R11 to R15, R29 (frame pointer)
SCH$PAGEFAULT Saved Scratch Registers (Alpha only)Contents of the following registers at the time of the page fault: R0, R1, R16 to R28
Exception Stack FrameException stack frame ---see Figure 2.5, “Alpha Exception Stack Frame”, Figure 2.6, “Integrity servers Exception Stack Frame” and Figure 2.7, “Integrity servers Exception Stack Frame (cont.)”.
Previous Stack ContentContents of the stack prior to the illegal page-fault error

When you analyze a dump caused by a PGFIPLHI bugcheck, the SHOW STACK command identifies the exception stack frame using the symbols shown in Table 2.12, “Alpha Exception Stack Frame Values” or Table 2.13, “Integrity servers Exception Stack Frame Values”. The SHOW CRASH or CLUE CRASH command displays the instruction that caused the page fault and the instructions around it.

2.8. Page Protections and Access Rights

Page protections and access rights are different on Alpha and Integrity server systems. They are visible in output from the following commands:

  • SHOW PAGE

  • SHOW PROCESS/PAGE

  • EXAMINE/PTE

  • EVALUATE/PTE

Due to system differences, there is a need to distinguish "Write+Read+Execute" from "Write+Read" and to distinguish "Read+Execute" from "Read".

On an Alpha system, W=W+R+E and R=R+E but on an IA64 system, additional w and r indicators are introduced for non-execute cases.

On Alpha, page protection is described by 8 bits--- one Read bit for each mode, and one Write Bit. Therefore in the "Read" column, there might be KESU (read access in all modes) or K--- (read access in Kernel mode only) or NONE (no read access). Similarly in the "Writ" column. Not all combinations of the 8 bits are possible (for example, Write access for a mode implies Read access at that mode and both Read and Write access for all inner modes).

On Integrity servers, page protection is described by 5 bits, a combination of the Access Rights and Privilege Level fields. SDA interprets these with a single character to describe access in each mode, as shown in the table below.

Table 2.14. Integrity server Access Codes for Page Protections
Code Meaning
rRead
wRead, Write
RRead, Execute
WRead, Write, Execute
XExecute
KPromote to Kernel
EPromote to Executive
SPromote to Supervisor
-No access

For example WRRR means Kernel mode has Read+Write+Execute access; all other modes have Read+Execute access.

2.9. Inducing a System Failure

If the operating system is not performing well and you want to create a dump you can examine, you must induce a system failure. Occasionally, a device driver or other user-written, kernel-mode code can cause the system to execute a loop of code at a high priority, interfering with normal system operation. This loop can occur even though you have set a breakpoint in the code if the loop is encountered before the breakpoint. To gain control of the system in such circumstances, you must cause the system to fail and then reboot it.

If the system has suspended all noticeable activity and is hung, see the examples of causing system failures in Section 2.9.2, “Procedure for Causing a System Failure”.

If you are generating a system failure in response to a system hang, be sure to record the PC and PS as well as the contents of the integer registers at the time of the system halt.

2.9.1. Meeting Crash Dump Requirements

The following requirements must be met before the operating system can write a complete crash dump:

  • You must not halt the system until the console dump messages have been printed in their entirety and the memory contents have been written to the crash dump file. Be sure to allow sufficient time for these events to take place or make sure that all disk activity has stopped before using the console to halt the system.

  • There must be a crash dump file in SYS$SPECIFIC:[SYSEXE]: named either SYSDUMP.DMP or PAGEFILE.SYS.

    This dump file must be either large enough to hold the entire contents of memory (as discussed in Section 2.2.1.1, “Dump File Style”) or, if the DUMPSTYLE system parameter is set, large enough to accommodate a subset or compressed dump (also discussed in Section 2.2.1.1, “Dump File Style”).

    If SYSDUMP.DMP is not present, the operating system attempts to write crash dumps to PAGEFILE.SYS. In this case, the SAVEDUMP system parameter must be 1 (the default is 0).

  • Alternatively, the system must be set up for DOSD. See Section 2.2.1.5, “Writing to a Dump File off the System Disk”, and the VSI OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems for details.

  • The DUMPBUG system parameter must be 1 (the default is 1).

2.9.2. Procedure for Causing a System Failure

This section tells you how to enter the XDelta utility (XDELTA) to force a system failure.

Before you can use XDelta, it must be loaded at system startup. To load XDelta during system bootstrap, you must set bit 1 in the boot flags. See the VSI OpenVMS Version 8.4 Upgrade and Installation Manual for information about booting with the XDelta utility.

On Alpha, put the system in console mode by pressing Ctrl/P or the Halt push button. Enter the following commands at the console prompt to enter XDelta:

>>> DEPOSIT SIRR E
>>> CONTINUE

On Integrity servers, enter XDELTA by pressing Ctrl/P at the console.

Once you have entered XDelta, use any valid XDelta commands to examine register or memory locations, step through code, or force a system failure (by entering ;C under XDelta). See the VSI OpenVMS Delta/XDelta Debugger Manual for more information about using XDelta.

On Alpha, if you did not load XDelta, you can force a system crash by entering console commands that make the system incur an exception at high IPL. At the console prompt, enter commands to set the program counter (PC) to an invalid address and the PS to kernel mode at IPL 31 before continuing. This results in a forced INVEXCEPTN-type bugcheck. Some VSI Alpha computers employ the console command CRASH (which will force a system failure) while other systems require that you manually enter the commands.

Enter the following commands at the console prompt to force a system failure:

>>> DEPOSIT PC FFFFFFFFFFFFFF00
>>> DEPOSIT PS 1F00
>>> CONTINUE

For more information, refer to the hardware manuals that accompanied your Alpha computer.

On Integrity servers, pressing Ctrl/P when XDelta is not loaded causes the OpenVMS system to output the following:

Crash (y/n):

A response of Y forces a system crash; entering any other character lets the system continue processing.

Chapter 3. ANALYZE Usage

This chapter describes the format, usage, and qualifiers of the System Dump Analyzer (SDA) utility.

The System Dump Analyzer (SDA) utility helps determine the causes of system failures. This utility is also useful for examining the running system.

3.1. ANALYZE

ANALYZE

ANALYZE

Format

Parameters

collection-file-name

Name of the file that contains the file ID translation data or unwind data to be used by SDA.

device-name

The device containing the system dump.

filespec

Name of the file(s) that contain the dump you want to analyze.

If filespec is not specified in an ANALYZE/CRASH_DUMP command, the default is the highest version of SYS$SYSTEM:SYSDUMP.DMP. If this file does not exist or cannot be opened, SDA prompts you for a file name. If any field of filespec is provided, the remaining fields default to the highest version of SYSDUMP.DMP in your default directory.

filespec can be a comma-separated list of files, including wildcards, where all the files contain Partial Dump Copies from the same original dump. See Section 2.2.3, “Partial Dump Copies” for a description of Partial Dump Copies. The following restrictions apply when multiple files are specified:

  • Files are opened in the order they are specified.

  • The file that contains System Page Tables (section PT) must be the first file opened. This is the Primary dump file.

  • If using a wildcard to specify file names, the primary dump file must be the first file to match the wildcard.

  • The files specified must be part of the same original crash dump.

  • If any section of the dump is found in multiple input files, SDA issues a warning, but continues.

  • If the file or unwind data collection is in a separate file, it must have the same name and location as the primary dump file, with file type .COLLECT, or must be specified using the /COLLECTION qualifier.

  • The files specified must either be all compressed or all uncompressed. They cannot be mixed.

You cannot specify filespec for ANALYZE/SYSTEM.

system-symbol-table

The system symbol table used by SDA.

Qualifiers

The /CRASH_DUMP and /SYSTEM qualifiers (described in this chapter) specify whether the object of an SDA session is a crash dump or a running system. Additional qualifiers used with these help to create the environment of an SDA session. The /SSLOG qualifier specifies that data be collected by the System Service Logging utility, which is documented in Chapter 14, System Service Logging.

  • /COLLECTION

  • /LOG

  • /CRASH_DUMP

  • /OVERRIDE

  • /RELEASE

  • /SHADOW_MEMBER

  • /SSLOG

  • /SYMBOL

  • /SYSTEM

The only additional qualifiers that can be used when invoking ANALYZE/SYSTEM are /LOG and /SYMBOL. See Chapter 14 for details of additional qualifiers that can be used when invoking ANALYZE/SSLOG. The following table shows which combinations of additional qualifiers can be used together when invoking ANALYZE/CRASH_DUMP:

 /OVERRIDE/RELEASE/SHADOW/SYMBOL
/COLLECTIONNoNoYesyes
/OVERRIDE--NoYesSee note
/RELEASE----NoSee note
/SHADOW------Yes

Note

/LOG can be used with any valid combination of qualifiers. /SYMBOL is ignored if it is specified with /OVERRIDE or /RELEASE.

The qualifiers are described on the following pages.

Description

By default, the System Dump Analyzer is automatically invoked when you reboot the system after a system failure.

To analyze a system dump interactively, invoke SDA by issuing the following command:

$ ANALYZE/CRASH_DUMP filespec

If you do not specify filespec, and SYS$SYSTEM:SYSDUMP.DMP does not exist or cannot be opened, SDA prompts you for a file name.

To analyze a crash dump, your process must have the privileges necessary for reading the dump file. This usually requires system privilege (SYSPRV), but your system manager can, if necessary, allow less privileged processes to read the dump files. Your process needs change-mode-to-kernel (CMKRNL) privilege to release page file dump blocks, whether you use the /RELEASE qualifier or the SDA COPY command.

Invoke SDA to analyze a running system by issuing the following command:

$ANALYZE/SYSTEM

To examine a running system, your process must have change-mode-to-kernel (CMKRNL) privilege. Your process must also have the map-by-PFN privilege (PFNMAP) to access memory by physical address on a running system. You cannot specify filespec when using the /SYSTEM qualifier.

To send all output from SDA to a file, use the SDA command SET OUTPUT, specifying the name of the output file. The file produced is 132 columns wide and is formatted for output to a printer. To later redirect the output to your terminal, use the following command:

SDA> SET OUTPUT SYS$OUTPUT

To send a copy of all the commands you type and a copy of all the output those commands produce to a file, use the SDA command SET LOG, specifying the name of the log file. The file produced is 132 columns wide and is formatted for output to a printer.

To exit from SDA, use the EXIT command. Note that the EXIT command also causes SDA to exit from display mode. Thus, if SDA is in display mode, you must use the EXIT command twice: once to exit from display mode, and a second time to exit from SDA. See Section 2.6.2, “SDA Display Mode” for a description of display mode.

3.2. /COLLECTION

/COLLECTION

/COLLECTION — Valid for Alpha and Integrity server systems only. Indicates to SDA that the file ID translation data or unwind data is to be found in a separate file.

Format

/COLLECTION = collection-file-name

At least one field of the collection file name must be specified. Other fields default to the highest generation of the same filename and location as the dump file, with a file type of .COLLECT.

Description

SDA can provide additional information when analyzing a dump if a collection has been made of file identification translation data (on both Alpha and Integrity servers) and of unwind data (on Integrity servers only). This data is usually saved when the dump file is copied using the SDA COPY/COLLECT command, but it can be saved to a separate file using the COLLECT/SAVE command.

By default, COLLECT/SAVE creates a .COLLECT file with the same name and in the same directory as the dump file. A subsequent ANALYZE/CRASH_DUMP command automatically uses this file. If the collection file is in a different location or if the collection previously appended to the dump file is incomplete (for example, if a disk was not mounted at the time of the SDA COPY), you can use the /COLLECTION qualifier to specify an alternate collection file.

Example

$ ANALYZE/CRASH_DUMP SYS$SYSTEM:SYSDUMP.DMP
...
SDA> COLLECT/SAVE=SYS$LOGIN:NEWCOLL.COLLECT
SDA> EXIT
$ ANALYZE/CRASH_DUMP SYS$SYSTEM:SYSDUMP.DMP /COLLECTION=SYS$LOGIN:NEWCOLL
...

3.3. /CRASH_DUMP

/CRASH_DUMP

/CRASH_DUMP — Invokes SDA to analyze the specified dump file.

Format

/CRASH_DUMP [filespec]

Parameter

filespec

Name of the file that contains the dump you want to analyze. If no filespec is given on an ANALYZE/CRASH_DUMP command, the default is the highest version of SYS$SYSTEM:SYSDUMP.DMP. If this file does not exist, SDA prompts you for a file name. If any field of filespec is given, the remaining fields default to the highest version of SYSDUMP.DMP in your default directory.

Description

See Section 2.3, “Analyzing a System Dump” for additional information on crash dump analysis. You cannot specify the /SYSTEM qualifier when you include the /CRASH_DUMP qualifier in the ANALYZE command.

Examples

$ ANALYZE/CRASH_DUMP SYS$SYSTEM:SYSDUMP.DMP
$ ANALYZE/CRASH SYS$SYSTEM

These commands invoke SDA to analyze the crash dump stored in SYS$SYSTEM:SYSDUMP.DMP.

$ ANALYZE/CRASH SYS$SYSTEM:PAGEFILE.SYS

This command invokes SDA to analyze a crash dump stored in the system page file.

3.4. /LOG

/LOG

/LOG — Causes SDA to display the names of the files opened because SDA initializes itself.

Format

/LOG

Parameters

None.

Description

SDA displays the names of the files opened because SDA initializes itself. Note that this does not affect the behavior of commands within SDA such as READ, but only files opened when SDA is initialized.

/LOG can be used on ANALYZE /CRASH_DUMP and ANALYZE /SYSTEM.

Examples

$ ANALYZE/CRASH_DUMP /LOG T*
%SDA-I-OPENED, opened USER$:[SYSMGR]T1.DMP;1 as dump file #1
%SDA-I-OPENED, opened SYS$COMMON:[SYS$LDR]SYS$BASE_IMAGE.EXE;1 as symbol file
%SDA-I-OPENED, opened USER$:[SYSMGR]T2.DMP;1 as dump file #2

OpenVMS system dump analyzer
...analyzing an I64 compressed selective memory dump...

%SDA-I-OPENED, opened SYS$COMMON:[SYS$LDR]REQSYSDEF.STB;1 as symbol file
Dump taken on 14-DEC-2009 17:16:31.35 using version XC6G-J2I
SSRVEXCEPT, Unexpected system service exception

$ SDA>

This example shows the use of the /LOG qualifier to identify the set of files being used by SDA.

3.5. /OVERRIDE

/OVERRIDE

/OVERRIDE — When used with the /CRASH_DUMP qualifier, invokes SDA to analyze only the structure of the specified dump file when a corruption or other problem prevents normal invocation of SDA with the ANALYZE/CRASH_DUMP command.

Format

/CRASH_DUMP/OVERRIDE [filespec]

Parameter

filespec

Name of the crash dump file to be analyzed. The default file specification is:

SYS$DISK:[default-dir]SYSDUMP.DMP

SYS$DISK and [default-dir] represent the disk and directory specified in your last SET DEFAULT command. If you do not specify filespec, and SYS$SYSTEM:SYSDUMP.DMP does not exist or cannot be opened, SDA prompts you for it.

Description

See Section 2.3, “Analyzing a System Dump” for additional information on crash dump analysis. Note that when SDA is invoked with /OVERRIDE, not all the commands in Section 2.3, “Analyzing a System Dump” can be used. Commands that can be used are as follows:

  • Output control commands such as SET OUTPUT and SET LOG

  • Dump file related commands such as SHOW DUMP and CLUE ERRLOG

Commands that cannot be used are as follows:

  • Commands that access memory addresses within the dump file such as EXAMINE and SHOW SUMMARY

Also, the /RELEASE qualifier cannot be used when you include the /OVERRIDE qualifier in the ANALYZE/CRASH_DUMP command.

When /OVERRIDE is used, the SDA command prompt is SDA>>.

Example

$ ANALYZE/CRASH_DUMP/OVERRIDE SYS$SYSTEM:SYSDUMP.DMP
$ ANALYZE/CRASH/OVERRIDE SYS$SYSTEM

These commands invoke SDA to analyze the crash dump stored in SYS$SYSTEM:SYSDUMP.DMP.

3.6. /RELEASE

/RELEASE

/RELEASE — Invokes SDA to release those blocks in the specified system page file occupied by a crash dump. Requires CMKRNL (change-mode-to-kernel) privilege.

Format

/CRASH_DUMP/RELEASE filespec

Parameter

filespec

Name of the system page file (SYS$SYSTEM:PAGEFILE.SYS). Because the default file specification is SYS$DISK:[default-dir]SYSDUMP.DMP, you must identify the page file explicitly. SYS$DISK and [default-dir] represent the disk and directory specified in your last DCL command SET DEFAULT.

If you do not specify filespec, and SYS$SYSTEM:SYSDUMP.DMP does not exist or cannot be opened, SDA prompts you for it. Note that if you do not specify filespec, and SYS$SYSTEM:SYSDUMP.DMP exists and can be opened, SDA will report an error because this is not the primary page file.

Description

Use the /RELEASE qualifier to release from the system page file those blocks occupied by a crash dump. When invoked with the /RELEASE qualifier, SDA immediately deletes the dump from the page file and allows no opportunity to analyze its contents.

When you specify the /RELEASE qualifier in the ANALYZE command, do the following:

  1. Use the /CRASH_DUMP qualifier.

  2. Include the name of the system page file (SYS$SYSTEM:PAGEFILE.SYS) as the filespec.

If you do not specify the system page file or the specified page file does not contain a dump, SDA generates the following messages:

%SDA-E-BLKSNRLSD, no dump blocks in page file to release, or not page file
%SDA-E-NOTPAGFIL, specified file is not the page file

You cannot specify the /OVERRIDE or /SHADOW_MEMBER qualifier when you include the /RELEASE qualifier in the ANALYZE/CRASH_DUMP command.

Example

$ ANALYZE/CRASH_DUMP/RELEASE SYS$SYSTEM:PAGEFILE.SYS
$ ANALYZE/CRASH/RELEASE PAGEFILE.SYS

These commands invoke SDA to release to the page file those blocks in SYS$SYSTEM:PAGEFILE.SYS occupied by a crash dump.

3.7. /SHADOW_MEMBER

/SHADOW_MEMBER

/SHADOW_MEMBER — Valid for Alpha and Integrity server systems only. Specifies which member of a shadow set contains the system dump to be analyzed, or allows the user to determine what system dumps have been written to the members of the shadow set.

Format

/CRASH_DUMP/SHADOW_MEMBER [filespec]

Description

If the system disk is a shadow set, a system dump is written to only one member of the shadow set (usually the master member at the time the dump is written). By default, if the filespec translates to a file on a shadow set, SDA reads the dump only from the master member. If at analysis time, the master member is different from where the dump was written, the /SHADOW_MEMBER qualifier allows the user to choose the member from which the dump is to be read.

If the correct member is not known, the /SHADOW_MEMBER qualifier may be specified without a device name. SDA will display a one-line summary of the most recent dump written to each member and then prompt the user to determine which member to use. The prompt is:

Shadow set action?

The possible responses are:

Command

Effect

EXIT

Aborts the SDA session without analyzing a dump.

HELP

Displays simple help text. See Example 3 below.

USE <device_name>

Initiates analysis of the system dump located on the specified shadow set member.

The one-line summary for each member consists of the following fields:

  • Member device name

  • Bugcheck name

  • Date and time of system crash

  • Node name

  • VMS Version

  • Flags—none, one or more of: Bad_Checksum, ErrorLog_Dump, Not_Saved, Old_Dump

If there is no usable dump on a member, SDA output will an explanatory warning message followed by a line giving the member device name and the message "No system or error log dump found."

Note that SDA cannot distinguish a dump on a shadowed system disk from a dump copied to a shadowed data disk. SDA will therefore always read the dump from a single member of a host-based shadow set. (In an OpenVMS Cluster system with multiple shadowed system disks, one system’s system disk will be a data disk on other systems.) This does not affect dumps being read directly from a DOSD disk, since DOSD disks cannot be members of a host-based shadow set.

Note

The /SHADOW_MEMBER qualifier is not useful if the system dump has been written to the primary page file on a shadowed system disk. You cannot specify /RELEASE with /SHADOW_MEMBER.

Examples

  1. $ ANALYZE/CRASH_DUMP DSA777:[SYS0.SYSEXE]SYSDUMP.DMP
    %SDA-I-USEMASTER, accessing dump file via _$31$DKB200:, master member of shadow set _DSA777:
    OpenVMS (TM) Alpha system dump analyzer
    ...analyzing a compressed selective memory dump...
    Dump taken on 12-DEC-2001 08:23:07.80
    SSRVEXCEPT, Unexpected system service exception
    SDA>

    This command initiates dump analysis using the master member of the shadow set DSA777 (the default action).

  2. $ ANALYZE/CRASH_DUMP/SHADOW_MEMBER=DKB0 DSA777:[SYS0.SYSEXE]SYSDUMP.DMP
    OpenVMS (TM) Alpha system dump analyzer
    ...analyzing a compressed selective memory dump...
    
    Dump taken on 12-DEC-2001 08:23:07.80
    SSRVEXCEPT, Unexpected system service exception
    
    SDA>

    This command initiates dump analysis using member device $31$DKB0 of the shadow set DSA777.

  3. $ ANALYZE/CRASH_DUMP/SHADOW_MEMBER DSA8888:[SYS1.SYSEXE]SYSDUMP.DMP
    _$70$DKA303:     INVEXCEPTN           16-NOV-2001 00:00:25.74 MRVP2    X96S-FT1
    _$70$DKA202:     INCONSTATE           18-NOV-2001 02:08:45.05 MRVP2    X96S-FT1
    
    Shadow set action? HELP
    
    Shadow set actions:
    
         EXIT                            exit SDA
         HELP                            this display
         USE <shadow_set_member>         proceed using specified shadow set member
    
    Shadow set action? USE _$70$DKA303:
    
    OpenVMS (TM) Alpha system dump analyzer
    ...analyzing a compressed selective memory dump...
    
    %SDA-W-NOTSAVED, global pages not saved in the dump file
    Dump taken on 16-NOV-2001 00:00:25.74
    INVEXCEPTN, Exception while above ASTDEL
    
    SDA> EXIT

    This command displays the dumps to be found on the members of shadow set DSA8888:[SYS1.SYSEXE]SYSDUMP.DMP and then begins analysis of the dump written to device _$70$DKA303.

3.8. /SSLOG

/SSLOG

/SSLOG — Displays data collected by the System Service Logging Utility (SSLOG). For more information about this and associated commands, see Chapter 14, System Service Logging.

Format

/SSLOG

3.9. /SYMBOL

/SYMBOL

/SYMBOL — Specifies an alternate system symbol table for SDA to use.

Format

/SYMBOL = system-symbol-table

File specification of the OpenVMS Alpha SDA system symbol table required by SDA to analyze a system dump or running system. The specified system-symbol-table must contain those symbols required by SDA to find certain locations in the executive image.

If you do not specify the /SYMBOL qualifier, SDA uses SDA$READ_ DIR:SYS$BASE_IMAGE.EXE to load system symbols into the SDA symbol table. When you specify the /SYMBOL qualifier, SDA assumes the default disk and directory to be SYS$DISK:[ ], that is, the disk and directory specified in your last DCL command SET DEFAULT. If you specify a file for this parameter that is not a system symbol table, SDA exits with a fatal error.

Description

The /SYMBOL qualifier allows you to specify a system symbol table to load into the SDA symbol table. You can use the /SYMBOL qualifier whether you are analyzing a system dump or a running system. It is not normally necessary to use the /SYMBOL qualifier when analyzing the running system, since the default SYS$BASE_IMAGE.EXE is the one in use in the system. However if SDA$READ_DIR has been redefined during crash dump analysis, then the /SYMBOL qualifier can be used to ensure that the correct base image is found when analyzing the running system.

The /SYMBOL qualifier can be used with the /CRASH_DUMP and /SYSTEM qualifiers. It is ignored when /OVERRIDE or /RELEASE is specified.

Example

$ ANALYZE/CRASH_DUMP/SYMBOL=SDA$READ_DIR:SYS$BASE_IMAGE.EXE SYS$SYSTEM

This command invokes SDA to analyze the crash dump stored in SYS$SYSTEM:SYSDUMP.DMP, using the base image in SDA$READ_DIR.

3.10. /SYSTEM

/SYSTEM

/SYSTEM — Invokes SDA to analyze a running system. Requires CMKRNL (change-mode-to-kernel) privilege. Also requires PFNMAP (map-by-PFN) privilege to access memory by physical address.

Format

/SYSTEM

Parameters

None.

Description

See Section 2.4, “Analyzing a Running System” for information on how to use SDA to analyze a running system. See Chapter 4, SDA Commands for information on SDA commands.

The only other qualifiers you can specify with /SYSTEM are /LOG and /SYMBOL.

Example

$ ANALYZE/SYSTEM

OpenVMS (TM) system analyzer

SDA>

This command invokes SDA to analyze the running system.

Chapter 4. SDA Commands

This chapter describes the SDA commands that you can use to analyze a system dump or a running system. SDA extension commands, such as CLUE and FLT are described in separate chapters.

4.1. @(Execute Command)

Causes SDA to execute SDA commands contained in a file. Use this command to execute a set of frequently used SDA commands.

Format

@filespec

Parameter

filespec

Name of a file that contains the SDA commands to be executed. The default file type is .COM.

Example

SDA>  @USUAL

The execute (@) command executes the following commands, as contained in a file named USUAL.COM:

SET OUTPUT LASTCRASH.LIS
SHOW CRASH
SHOW PROCESS
SHOW STACK
SHOW SUMMARY

This command procedure first makes the file LASTCRASH.LIS the destination for output generated by subsequent SDA commands. Next, the command procedure sends information to the file about the system failure and its context, including a description of the process executing at the time of the failure, the contents of the stack on which the failure occurred, and a list of the processes active on the system.

An EXIT command within a command procedure terminates the procedure at that point, as would an end-of-file.

Command procedures cannot be nested.

4.2. ATTACH

Switches control of your terminal from your current process to another process in your job (for example, one created with the SDA SPAWN command).

Format

ATTACH [/PARENT] process-name

Parameter

process-name

Name of the process to which you want to transfer control.

Qualifier

/PARENT

Transfers control of the terminal to the parent process of the current process. When you specify this qualifier, you cannot specify the process-name parameter.

Examples

SDA>  ATTACH/PARENT

This ATTACH command attaches the terminal to the parent process of the current process.

SDA>  ATTACH DUMPER

This ATTACH command attaches the terminal to a process named DUMPER in the same job as the current process.

4.3. COLLECT

Collect file identification to file name translation data on both OpenVMS Alpha and OpenVMS for Integrity servers, and process unwind data only on OpenVMS for Integrity servers.

Format

COLLECT [qualifiers]

Parameters

None.

Qualifiers

/LOG

Displays information on the progress of the COLLECT command, for example, the name of the process being scanned, or (on Integrity servers) the name of an image whose unwind data is being collected.

/SAVE [= file name]

Writes collection data to a separate file. By default, a file of type .COLLECT with the same name as the dump file will be created in the same directory as the dump file.

/UNDO

Removes all the file or unwind data from an earlier COLLECT command from SDA's memory. COLLECT/UNDO does not affect the file or unwind data already appended to the dump file being analyzed, or already written to a separate collection file.

Description

When a dump is being analyzed, it is useful to have data available that cannot be written to the dump file at the time of the system crash. This data includes the full file specification associated with a file identification. On OpenVMS for Integrity servers, it also includes the unwind data for images activated in processes.

If the dump is being analyzed on the system where it was originally written, this data can be collected for use in the current SDA session using the COLLECT command. If the dump is being copied for analysis elsewhere, the COPY/COLLECT command may be used to collect the data and append it to the copy being written. If the COPY/COLLECT command is used after a COLLECT command, the data already collected is appended to the dump copy.

For all file or unwind data to be collected successfully, all disks that were mounted at the time of the system crash should be remounted and accessible to the process running SDA.

If the COPY and the COLLECT cannot be done as a single step, a COLLECT/SAVE command writes the collection to a separate file that can be used later with the dump file. A later COPY will combine the two files.

Example

SDA> COLLECT
%SDA-W-DISKNOACC, no access to _$30$DKB100: for file and/or unwind data
%SDA-W-FILENOACC, no access to _$30$DKB0:(7709,1,0) for unwind data
-SYSTEM-W-NOSUCHFILE, no such file

In this example, the disk $30$DKB100, which was mounted at the time the system crashed, is not available when file and/or unwind data is being collected. In addition, unwind data cannot be collected for the image with file identification (7709,1,0) on _$30$DKB0: since it no longer exists.

4.4. COPY

Copies the contents of the dump file to another file.

Format

COPY [/qualifier...] output-filespec

Parameter

output-filespec

Name of the device, directory, and file to which SDA copies the dump file. The default file specification is:

SYS$DISK:[default-dir]filename.DMP

SYS$DISK and [default-dir] represent the disk and directory specified in your last DCL command SET DEFAULT. You must specify a file name.

Qualifiers

/COLLECT

/NOCOLLECT

Causes SDA to collect (or not collect) file identification or unwind data from the current system and append it to the copy being created. For more details, see the Description section.

/COMPRESS

Causes SDA to compress dump data as it is writing a copy. If the dump being analyzed is already compressed, then SDA does a direct COPY, and issues an informational message indicating that it is ignoring the /COMPRESS qualifier.

/CONFIRM

Causes SDA to prompt for which processes to copy when performing a Partial Dump Copy. This qualifier can only be used when /PARTIAL=PROCESS=option is specified. For each possible process in the set, SDA prompts as follows, where the default response is No and only a single character response is needed otherwise:

Copy process "process-name"? (Y/[N]/A/Q):

Where the response:

YES   Includes the process in the copy.
NO    Excludes the process from the copy.
ALL   Includes the process and all remaining processes in the copy.
QUIT  Excludes the process and all remaining processes from the copy.
/DECOMPRESS

Causes SDA to decompress dump data as it is writing a copy. If the dump being analyzed is already decompressed, then SDA does a direct COPY, and issues an informational message indicating that it is ignoring the /DECOMPRESS qualifier.

/LOG

Displays information about the progress of the COPY command, for example, the name of the process being copied in a selective dump, or, in the case of COPY/COLLECT on Integrity servers, the name of an image whose unwind data is being appended to the dump copy.

/PARTIAL=(section,...)

Causes SDA to copy only the specified sections of the dump. The /PARTIAL qualifier can only be used with a selective system dump (compressed or uncompressed). It is not available for full system dumps or for process dumps. Also, the /PARTIAL qualifier cannot be combined with /COMPRESS, /DECOMPRESS, or /[NO]COLLECT. Such a copy must be performed as two separate COPY commands, and requires exiting from SDA and then re-invoking SDA on the intermediate copy.

See Section 2.2.3, “Partial Dump Copies” for a description of Partial Dump Copies. For an explanation of key processes and key global pages, and the organization of a selective system dump, see the VSI OpenVMS System Manager's Manual, Volume 2: Tuning, Monitoring, and Complex Systems.

Multiple sections must be separated by commas. If only one section is given, the parentheses may be omitted. Possible sections are as follows:

PTSystem Page Table Space
S0S132-bit System Space
S264-bit System Space
REPLICATED_SYSReplicated System Space (only applies to Alpha systems with RADs enabled)
PROCESS=optionProcess Space for one or more processes. Options are:
ALLAll processes. This is the default.
KEYAll key processes.
OTHERAll other (not key) processes.
NAME=(list)Specific named processes (see note below)
GLOBAL=optionGlobal Pages. Options are:
ALLAll global pages mapped by processes. This is the default.
KEYAll global pages mapped by key processes.
OTHERAll other (not key) global pages mapped by processes.
KEYEquivalent to: PT, S0S1, S2, REPLICATED_SYS, PROCESS = KEY, GLOBAL = KEY
OTHEREquivalent to: PROCESS = OTHER, GLOBAL = OTHER
SYSTEMEquivalent to: PT, S0S1, S2, REPLICATED_SYS

Note

If /PARTIAL=PROCESS=NAME=(list) is specified:

  • Multiple process names must be separated by commas. If only one process name is given, the parentheses may be omitted.

  • Process names can include "%" and "*" wildcards.

  • The comparison of the given name to actual process names in the dump is performed case-blind, and trailing spaces and tabs are ignored.

  • Process names can include characters, such as "," and "/". You can enclose the process name in quotes to include some of these special characters in the name you specify, or you can use the "%" wildcard instead of characters.

Description

Each time the system fails, the contents of memory and the hardware context of the current process (as directed by the DUMPSTYLE parameter) are copied into the file SYS$SYSTEM:SYSDUMP.DMP (or the page file), overwriting its contents. If you do not save this crash dump elsewhere, it will be overwritten the next time that the system fails.

The COPY command allows you to preserve a crash dump by copying its contents to another file. It is generally useful to invoke SDA during system initialization to execute the COPY command. This ensures that a copy of the dump file is made only after the system has failed. The preferred method for doing this, using the logical name CLUE$SITE_PROC, is described in Section 2.2.4, “Invoking SDA When Rebooting the System”.

The COPY command does not affect the contents of the file containing the dump being analyzed.

If you are using the page file (SYS$SYSTEM:PAGEFILE.SYS) as the dump file instead of SYSDUMP.DMP, successful completion of the COPY command will automatically cause the blocks of the page file containing the dump to be released, thus making them available for paging. Even if the copy operation succeeds, the release operation requires that your process have change-mode-to-kernel (CMKRNL) privilege. When the dump pages have been released from the page file, the dump information in these pages will be lost and SDA will immediately exit. You must perform subsequent analysis upon the copy of the dump created by the COPY command.

If you press Ctrl/T while using the COPY command, the system displays how much of the file has been copied.

When a dump is being analyzed, it is useful to have data available that cannot be written to the dump file at the time of the system crash. This data includes the full file specification associated with a file identification, and, on OpenVMS Integrity servers, the unwind data for images activated in processes.

If the dump is being analyzed on the system where it was originally written, this data can be collected for use in the current SDA session using the COLLECT command. If the dump is being copied for analysis elsewhere, the COPY/COLLECT command can be used to collect the data and append it to the copy being written. If the COPY/COLLECT command is used after a COLLECT command, the data already collected is appended to the dump copy.

By default, a copy of the original dump, as written at the time of the system crash, includes collection. You can use COPY/NOCOLLECT to override this default. Conversely, a copy of a dump previously copied by SDA without collection (COPY/NOCOLLECT) does not include collection. You can use COPY/COLLECT to override this setting.

When you copy a dump that already contains an appended collection, the copy will always include that collection.

For all file and unwind data to be collected successfully, all disks that were mounted at the time of the system crash should be remounted and be accessible to the process running SDA. If SDA is invoked early in the startup procedure to save the contents of the dump (for example, using CLUE$SITE_PROC as described in Section 2.2.4, “Invoking SDA When Rebooting the System”), but disks are not mounted until a batch job is run, you should use the COPY/NOCOLLECT command in the CLUE$SITE_PROC command procedure. Once all disks are mounted, you can use a COPY/COLLECT command to save file or unwind data.

If the COPY and the COLLECT procedures cannot be done as a single step, you can execute a COLLECT/SAVE command to write the collection to a separate file that can be used later in conjunction with the dump file. A later COPY operation can combine the two files.

Example

SDA>  COPY SYS$CRASH:SAVEDUMP

The COPY command copies the dump file into the file SYS$CRASH:SAVEDUMP.DMP.

4.5. DEFINE

Assigns a value to a symbol.

Format

DEFINE [/qualifier...] symbol-name [=] expression

Parameters

symbol-name

Name, containing from 1 to 31 alphanumeric characters, that identifies the symbol. Symbols that include lowercase letters must be enclosed in quotation marks ("symbol" ). See Section 2.6.1.4, “SDA Symbols” for a description of SDA symbol syntax and a list of default symbols.

expression

Definition of the symbol's value. See Section 2.6.1, “Using Expressions and Operators” for a discussion of the components of SDA expressions.

Qualifier

/FD

/PD

Defines a symbol as a function descriptor (FD) or procedure descriptor (PD). It also defines the routine address symbol corresponding to the defined symbol (the routine address symbol has the same name as the defined symbol, only with _C appended to the symbol name). See Section 2.6.1.4, “SDA Symbols” for more information about symbols. /FD and /PD are completely interchangeable. SDA interprets them based on the architecture of the system or dump being analyzed.

Description

The DEFINE command causes SDA to evaluate an expression and then assign its value to a symbol. Both the DEFINE and EVALUATE commands perform computations to evaluate expressions. DEFINE adds symbols to the SDA symbol table but does not display the results of the computation. EVALUATE displays the result of the computation but does not add symbols to the SDA symbol table.

Examples

SDA>  DEFINE BEGIN = 80058E00
SDA>  DEFINE END = 80058E60
SDA>  EXAMINE BEGIN:END

In this example, DEFINE defines two addresses, called BEGIN and END. These symbols serve as reference points in memory, defining a range of memory locations for the EXAMINE command to inspect.

SDA>  DEFINE NEXT = @PC
SDA>  EXAMINE/INSTRUCTION NEXT
NEXT:   HALT

The symbol NEXT defines the address contained in the program counter, so that the symbol can be used in an EXAMINE/INSTRUCTION command.

SDA>  DEFINE VEC SCH$GL_PCBVEC
SDA>  EXAMINE VEC
SCH$GL_PCBVEC:  00000000.8060F2CC   "Ìò`....."
SDA>

After the value of global symbol SCH$GL_PCBVEC has been assigned to the symbol VEC, the symbol VEC is used to examine the memory location or value represented by the global symbol.

SDA>  DEFINE/PD VEC SCH$QAST
SDA>  EXAMINE VEC
SCH$QAST:  0000002C.00003008   ".0..,..."
SDA>  EXAMINE VEC_C
SCH$QAST_C:  B75E0008.43C8153E   ">.ÈC..^·"
SDA>

In this example, the DEFINE/PD command defines not only the symbol VEC, but also the corresponding routine address symbol (VEC_C).

4.6. DEFINE/KEY

Associates an SDA command with a terminal key. Once you have associated a command with a key, you can just press the defined key, followed by the Return key to issue the command. If you specify the /TERMINATE qualifier when you define the key, you do not have to press the Return key to issue the command.

Format

DEFINE/KEY [/qualifier...] key-name command

Parameters

key-name

Name of the key to be defined. You can define the following keys under SDA:

Key NameKey Designation
PF1LK201, VT100
PF2LK201, VT100
PF3LK201, VT100
PF4LK201, VT100
KP0...KP9Keypad 0--9
PERIODKeypad period
COMMAKeypad comma
MINUSKeypad minus
ENTERKeypad ENTER
UPUp arrow
DOWNDown arrow
LEFTLeft arrow
RIGHTRight arrow
E1LK201 Find
E2LK201 Insert Here
E3LK201 Remove
E4LK201 Select
E5LK201 Prev Screen
E6LK201 Next Screen
HELPLK201 Help
DOLK201 Do
F7...F20LK201 Function keys
command

SDA command to define a key. You must enclose the command in quotation marks (" ").

Qualifiers

/IF_STATE=state_list

/NOIF_STATE

Specifies a list of one or more states, one of which must be in effect for the key definition to work. The /NOIF_STATE qualifier has the same meaning as /IF_STATE=current_state. The state name is an alphanumeric string. States are established with the /SET_STATE qualifier. If you specify only one state name, you can omit the parentheses. By including several state names, you can define a key to have the same function in all the specified states.

/LOCK_STATE

/NOLOCK_STATE

Specifies that the state set by the /SET_STATE qualifier remains in effect until explicitly changed. By default, the /SET_STATE qualifier is in effect only for the next definable key you press or the next read-terminating character that you type. You can specify this qualifier only with the /SET_STATE qualifier.

The default is /NOLOCK_STATE.

/SET_STATE=state-name

/NOSET_STATE

Causes the key being defined to create a key state change instead of or in addition to issuing an SDA command. When you use the /SET_STATE qualifier, you supply the name of a key state to be used with the /IF_STATE qualifier in other key definitions.

For example, you can define the PF1 key as the GOLD key and use the /IF_STATE=GOLD qualifier to allow two definitions for the other keys, one in the GOLD state and one in the non-GOLD state. For more information on using the /IF_STATE qualifier, see the DEFINE/KEY command in the VSI OpenVMS DCL Dictionary or online help.

The default is /NOSET_STATE.

/TERMINATE

/NOTERMINATE

Causes the key definition to include termination of the command, which causes SDA to execute the command when the defined key is pressed. Therefore, you do not have to press the Return key after you press the defined key if you specify the /TERMINATE qualifier.

Description

The DEFINE/KEY command causes an SDA command to be associated with the specified key, in accordance with any of the specified qualifiers described previously.

If the symbol or key is already defined, SDA replaces the old definition with the new one. Symbols and keys remain defined until you exit from SDA.

Examples

SDA>  DEFINE/KEY PF1 "SHOW STACK"
SDA>  [PF1] SHOW STACK [RETURN]
Process stacks (on CPU 00)
-------------------------
Current operating stack (KERNEL):
   .
   .
   .

The DEFINE/KEY command defines PF1 as the SHOW STACK command. When you press the PF1 key, SDA displays the command and waits for you to press the Return key.

SDA>  DEFINE/KEY/TERMINATE PF1 "SHOW STACK"
SDA>  [PF1] SHOW STACK
Process stacks (on CPU 00)
-------------------------
Current operating stack (KERNEL):
      00000000.7FF95D00  00000000.0000000B
      00000000.7FF95D08  FFFFFFFF.804395C8  MMG$TBI_DATA_64+000B8
      00000000.7FF95D10  00000000.00000000
      00000000.7FF95D18  0000FE00.00007E04
SP => 00000000.7FF95D20  00000000.00000800  IRP$M_EXTEND
      00000000.7FF95D28  00000001.000002F7  UCB$B_PI_FKB+0000B
      00000000.7FF95D30  FFFFFFFF.804395C8  MMG$TBI_DATA_64+000B8
      00000000.7FF95D38  00000002.00000000
   .
   .
   .

The DEFINE/KEY command defines PF1 as the SDA SHOW STACK command. The /TERMINATE qualifier causes SDA to execute the SHOW STACK command without waiting for you to press the Return key.

SDA>  DEFINE/KEY/SET_STATE="GREEN" PF1 ""
SDA>  DEFINE/KEY/TERMINATE/IF_STATE=GREEN PF3 "SHOW STACK"
SDA>  [PF1] [PF3] SHOW STACK
Process stacks (on CPU 00)
-------------------------
Current operating stack (KERNEL):
   .
   .
   .

The first DEFINE/KEY command defines PF1 as a key that sets a command state GREEN. The trailing pair of quotation marks is required syntax, indicating that no command is to be executed when this key is pressed.

The second DEFINE command defines PF3 as the SHOW STACK command, but using the /IF_STATE qualifier makes the definition valid only when the command state is GREEN. Thus, you must press PF1 before pressing PF3 to issue the SHOW STACK command. The /TERMINATE qualifier causes the command to execute as soon as you press the PF3 key.

4.7. DUMP

Displays the contents of a range of memory formatted as a comma-separated variable (CSV) list, suitable for inclusion in a spreadsheet.

Format

DUMP range

[/BYTE | /WORD | /LONGWORD (default) | /QUADWORD]

[/DECIMAL | /HEXADECIMAL (default)]

[/FORWARD (default) | /REVERSE]

[/RECORD_SIZE=size ] (default = 512)

[/INDEX_ARRAY [= {LONGWORD (default) | QUADWORD} ] ]

[/INITIAL_POSITION = {ADDRESS=address | RECORD=number } ]

[/COUNT = {ALL | records } ] (default = all records)

[/PHYSICAL]

[/BYTE | /WORD |/NOSUPPRESS]

Parameter

range

The range of locations to be displayed. The range is specified in one of the following formats:

m:nRange from address m to address n inclusive
m;nRange from address m for n bytes

The length of the range must be an exact multiple of the data item size --- or of the index array size if /INDEX_ARRAY is specified.

Qualifiers

/BYTE

Outputs each data item as a byte.

/COUNT = [ {ALL | records} ]

Gives the number of records to be displayed. The default is to display all records.

/DECIMAL

Outputs data as decimal values.

/FORWARD

Causes SDA to display the records in the history buffer in ascending address order. This is the default.

/HEXADECIMAL

Outputs data as hexadecimal values. This is the default.

/INDEX_ARRAY [= {LONGWORD (default) | QUADWORD} ]

Indicates to SDA that the range of addresses given is a vector of pointers to the records to be displayed. The vector can be a list of longwords (default) or quadwords. The size of the range must be an exact number of longwords or quadwords as appropriate.

/INITIAL_POSITION = {ADDRESS=address | RECORD=number}

Indicates to SDA which record is to be displayed first. The default is the lowest addressed record if /FORWARD is used, and the highest addressed record if /REVERSE is used. The initial position may be given as a record number within the range, or the address at which the record is located.

/LONGWORD

Outputs each data item as a longword. This is the default.

/NOSUPPRESS

Indicates that SDA should not suppress leading zeroes when displaying data in hexadecimal format.

/PHYSICAL

Indicates to SDA that all addresses (range and/or start position) are physical addresses. By default, virtual addresses are assumed.

/QUADWORD

Outputs each data item as a quadword.

/RECORD_SIZE=size

Indicates the size of each record within the history buffer, the default being 512 bytes. This size must exactly divide into the total size of the address range to be displayed, unless you specify /INDEX_ARRAY. If no record size is given, and the length of the range is not more than 512 bytes, a single record is output containing the range specified, with no record number field. The length of the range must be an exact multiple of the data item size --- or of the index array size if /INDEX_ARRAY is specified.

/REVERSE

Causes SDA to display the records in the history buffer in descending address order.

/WORD

Outputs each data item as a word.

Description

The DUMP command displays the contents of a range of memory formatted as a comma-separated variable (CSV) list, suitable for inclusion in a spreadsheet. It is intended for use with a history buffer containing records of information of which the most recently written entry is in the middle of the memory range.

Note

See SET OUTPUT/NOHEADER for related information.

Examples

  1. SDA> DUMP dump g;200/initial_position=record=5/record_size=20/reverse
    05,A77B0010,A79B0008,6B9C4001,47FF041F,A03E0000,47DF041C,201F0016,083
    04,A03E0000,47DF041C,201F0058,083,A77B0010,A79B0008,6B9C4001,47FF041F
    03,A03E0000,47DF041C,201F0075,083,A03E0000,47DF041C,201F001B,083
    02,A77B0010,A79B0008,6B9C4001,47FF041F,A03E0000,47DF041C,201F0074,083
    01,43E05120,083,6BFA8001,47FF041F,A77B0010,A79B0008,6B9C4001,47FF041F
    0,201F0104,6BFA8001,47FF041F,47FF041F,201F0001,6BFA8001,47FF041F,47FF041F
    0F,A03E0000,47DF041C,201F0065,083,A03E0000,47DF041C,201F0006,083
    0E,A03E0000,47DF041C,201F001C,083,A03E0000,47DF041C,201F001A,083
    0D,A03E0000,47DF041C,201F0077,083,A03E0000,47DF041C,201F0057,083
    0C,A03E0000,47DF041C,201F002B,083,A03E0000,47DF041C,201F003A,083
    0B,A03E0000,47DF041C,201F007D,083,A77B0010,A79B0008,6B9C4001,47FF041F
    0A,A03E0000,47DF041C,201F005A,083,A03E0000,47DF041C,201F0078,083
    09,A03E0000,47DF041C,201F0002,082,A03E0000,47DF041C,201F0037,083
    08,A03E0000,47DF041C,201F0035,083,A03E0000,47DF041C,201F007A,083
    07,A03E0000,47DF041C,201F0019,083,A03E0000,47DF041C,201F0034,083
    06,A77B0010,A79B0008,6B9C4001,47FF041F,A03E0000,47DF041C,201F0018,083
    

    This example shows the dump of an area of memory treated as 16 records of 32 bytes each, beginning at record 5, and dumped in reverse order. Note the record number in the first field, and that the dump wraps to the end of the memory area after the first record has been output.

  2. SDA> EXAMINE SMP$GL_CPU_DATA;80
    00000000 00000000 8FE26000 8FE14000 00000000 00000000 8FE02000 811FE000  ...
    00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000  ...
    00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000  ...
    00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000  ...
    SDA> DUMP SMP$GL_CPU_DATA;80/index_array/record_size=20/count=5
    0,810C17C0,8EC7C180,026A09C0,02,0,FFFFFFFF,0,0
    01,810C17C0,8EC7C400,026A09C0,02,0,FFFFFFFF,0,01
    04,810C17C0,8EC7CB80,026A09C0,02,0,FFFFFFFF,0,04
    

    This example shows the contents of the CPU database vector, then dumps the first 32 bytes of each CPU database entry. Only the first five entries in the array are requested, and those containing zero are ignored.

4.8. EVALUATE

Computes and displays the value of the specified expression in both hexadecimal and decimal. Alternative evaluations of the expression are available with the use of the qualifiers defined for this command.

Format

EVALUATE [ {/CONDITION_VALUE | /FPSR | /IFS

| /ISR | /PFS | /PS | /PSR

| /PTE

| /[NO]SYMBOLS [=filter] | /TIME}] expression

Parameter

expression

SDA expression to be evaluated. Section 2.6.1, “Using Expressions and Operators” describes the components of SDA expressions.

Qualifiers

/CONDITION_VALUE

Displays the message that the $GETMSG system service obtains for the value of the expression.

/FPSR

(Integrity servers only) Evaluates the specified expression in the format of a floating-point status register.

/IFS

(Integrity servers only) Evaluates the specified expression in the format of an interruption function state.

/ISR

(Integrity servers only) Evaluates the specified expression in the format of an interruption status register.

/PFS

(Integrity servers only) Evaluates the specified expression in the format of a previous function state.

/PS

Evaluates the specified expression in the format of a processor status

/PSR

(Integrity servers only) Evaluates the specified expression in the format of a processor status register.

/PTE

Interprets and displays the expression as a page table entry (PTE). The individual fields of the PTE are separated and an overall description of the PTE's type is provided.

/SYMBOLS[=filter]

/NOSYMBOLS

The default behavior of the EVALUATE command is to display up to five symbols that are known to be equal to the evaluated expression. If /SYMBOLS is specified with no filter, all symbols are listed in alphabetical order. If /NOSYMBOLS is specified, only the hexadecimal and decimal values are displayed. If /SYMBOLS is specified with a filter, only symbols that match the filter are displayed. The filter is a string containing wildcards, such as PCB$*.

/TIME

Interprets and displays the expression as a 64-bit time value. Positive values are interpreted as absolute time; negative values are interpreted as delta time.

Description

If you do not specify a qualifier, the EVALUATE command interprets and displays the expression as hexadecimal and decimal values. In addition, if the expression is equal to the value of a symbol in the SDA symbol table, that symbol is displayed. If no symbol with this value is known, the next lower valued symbol is displayed with an appropriate offset unless the offset is extremely large. (See Section 2.6.1.4, “SDA Symbols” for a description of how SDA displays symbols and offsets.) The DEFINE command adds symbols to the SDA symbol table but does not display the results of the computation. EVALUATE displays the result of the computation but does not add symbols to the SDA symbol table.

Examples

  1. SDA>  EVALUATE -1
    Hex = FFFFFFFF.FFFFFFFF   Decimal = -1           I

    The EVALUATE command evaluates a numeric expression, displays the value of that expression in hexadecimal and decimal notation, and displays a symbol that has been defined to have an equivalent value.

  2. SDA>  EVALUATE 1
    Hex = 00000000.00000001   Decimal = 1  CHF$M_CALEXT_CANCEL
                                                  CHF$M_FPREGS_VALID
                                                  CHF$V_CALEXT_LAST
                                                  IRP$M_BUFIO
                                                  IRP$M_CLN_READY
                                                     |
                               (remaining symbols suppressed by default)

    The EVALUATE command evaluates a numeric expression and displays the value of that expression in hexadecimal and decimal notation. This example also shows the symbols that have the displayed value. A maximum of five symbols are displayed by default.

  3. SDA>  DEFINE TEN = A
    SDA>  EVALUATE TEN
    Hex = 00000000.0000000A   Decimal = 10  IRP$B_TYPE
                                                 IRP$S_FMOD
                                                 IRP$V_MBXIO
                                                 TEN
                                                 UCB$B_TYPE
                                                  |
                               (remaining symbols suppressed by default)

    This example shows the definition of a symbol named TEN. The EVALUATE command then shows the value of the symbol.

    Note that A, the value assigned to the symbol by the DEFINE command, could be a symbol. When SDA evaluates a string that can be either a symbol or a hexadecimal numeral, it first searches its symbol table for a definition of the symbol. If SDA finds no definition for the string, it evaluates the string as a hexadecimal number.

  4. SDA>  EVALUATE (((TEN * 6) + (-1/4)) + 6)
    Hex = 00000000.00000042      Decimal = 66

    This example shows how SDA evaluates an expression of several terms, including symbols and rational fractions. SDA evaluates the symbol, substitutes its value in the expression, and then evaluates the expression. The fraction -1/4 is truncated to 0.

  5. SDA>  EVALUATE/CONDITION 80000018
    %SYSTEM-W-EXQUOTA, exceeded quota

    This example shows the output of an EVALUATE/CONDITION command.

  6. SDA>  EVALUATE/PFS 00000000.000013AF
             PPL    PEC    RRB.PR   RRB.FR   RRB.GR     SOR       SOL           SOF
             0       0.       0.       0.       0.       0.    39. (32-70)   47. (32-78)

    This example shows the output of an EVALUATE/PFS command on an Integrity server system.

  7. SDA>  EVALUATE/PS  0B03
             MBZ SPAL      MBZ    IPL VMM MBZ CURMOD INT PRVMOD
             0   00   00000000000 0B  0   0   KERN   0   USER

    In this EVALUATE/PS command on an Alpha system, SDA interprets the entered value 0B03 as though it were a processor status (PS) and displays the resulting field values.

  8. SDA> EVALUATE/PSR 00001410.0A026010
            RT  TB  LP  DB  SI  DI  PP  SP  DFH DFL DT  PK  I   IC  MFH MFL AC  BE
            1   0   1   0   0   0   0   0   0   0   1   0   1   1   0   1   0   0
            IA  BN  ED  RI  SS  DD  DA  ID  IT  MC  IS  CPL
            0   1   0   2   0   0   0   0   1   0   0   0

    This example shows the output of an EVALUATE/PSR command on an Integrity server system.

  9. SDA>  EVALUATE/PTE 0BCDFFEE
     3 3 2   2             2 1 1   1 1
     1 0 9   7             0 9 8   6 5               7 6   4 3     0
    +-+-+---+-------------+-+-+---+-+---------------+-+---+-+-----+-+
    |0|0| 0 |     005E    |0|1| 2 |1|      FF       |1| 3 |0|  7  |0|
    +-+-+---+-------------+-+-+---+-+---------------+-+---+-+-----+-+
    |                            00000000                           |
    +---------------------------------------------------------------+
    Global PTE:  Owner = S, Read Prot = KESU, Write Prot = KESU, CPY = 0
                 GPT Index  = 00000000

    The EVALUATE/PTE command displays the expression 0BCDFFEE as a page table entry (PTE) and labels the fields. It also describes the status of the page. For more information on interpreting information in this output, see Section 2.8, “Page Protections and Access Rights”.

  10. SDA> EVALUATE/TIME 009A9A4C.843DBA9F
    10-OCT-1996 15:59:44.02

    This example shows the use of the EVALUATE/TIME command.

  11. SDA>  EVALUATE 2F0/SYMBOL=PCB*
    Hex = 00000000.000002F0   Decimal = 752        PCB$L_INITIAL_KTB
                                                   PCB$L_PCB

    This example shows the use of the symbol filter. Only those symbols whose value is 2F0 and whose names begin with PCB are displayed.

4.9. EXAMINE

Displays either the contents of a location or of a 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.

Format

EXAMINE [location [/PHYSICAL] | /ALL | /P0 | /P1 | /SYSTEM]

[/CONDITION_VALUE | /FPSR | /IFS | /ISR | /PFS

| /PS | /PSL | /PSR | /PTE | /TIME | /[NO]FD | /[NO]PD]

[/NOSUPPRESS]

[/INSTRUCTION]

Parameter

location

Location in memory to be examined. A location can be represented by any valid SDA expression. (See Section 2.6.1, “Using Expressions and Operators” for additional information about expressions.) To examine a range of locations, use the following syntax:

m:nRange of locations to be examined, from m to n
m;nRange of locations to be examined, starting at m and continuing for n bytes

The default location that SDA uses is initially 0 in the program region (P0) of the process that was executing at the time the system failed (if you are examining a crash dump) or your process (if you are examining the running system). Subsequent uses of the EXAMINE command with no parameter specified increase the last address examined by eight. Use of the /INSTRUCTION qualifier increases the default address by four (for Alpha) or 16 (for Integrity server). To examine memory locations of other processes, you must use the SET PROCESS command.

Qualifiers

/ALL

Examines all the locations in the program, and control regions and system space, displaying the contents of memory in hexadecimal longwords and ASCII characters. Do not specify parameters when you use this qualifier.

/CONDITION_VALUE

Examines the specified longword, displaying the message that the $GETMSG system service obtains for the value in the longword.

/FD

/NOFD

See the description of /PD.

/FPSR

(Integrity servers only) Examines the specified expression in the format of a floating-point status register.

/IFS

(Integrity servers only) Examines the specified expression in the format of an interruption function state.

/INSTRUCTION

Translates the specified range of memory locations into assembly instruction format. Each symbol in the EXAMINE expression that is defined as a procedure descriptor is replaced with the code entry point address of that procedure, unless you also specify the /NOPD qualifier. For Integrity servers only, SDA always displays entire bundles of instructions, not individual slots.

/ISR

(Integrity servers only) Examines the specified expression in the format of an interruption status register.

/NOSUPPRESS

Inhibits the suppression of zeros when displaying memory with one of the following qualifiers: /ALL, /P0, /P1, /SYSTEM, or when a range is specified.

/P0

Displays the entire program region for the default process. Do not specify parameters when you use this qualifier.

/P1

Displays the entire control region for the default process. Do not specify parameters when you use this qualifier.

/PD

/NOPD

Functionally equivalent to /FD and /NOFD.

Causes the EXAMINE command to treat the location specified in the EXAMINE command as a function descriptor (FD) or procedure descriptor (PD), depending on the architecture of the system or dump being analyzed. /PD can also be used to qualify symbols.

You can use the /PD and /NOPD qualifiers with the /INSTRUCTION qualifier to override treating symbols as function or procedure descriptors. Placing the qualifier right after a symbol overrides how the symbol is treated. /PD forces it to be a procedure descriptor, and /NOPD forces it to not be a procedure descriptor.

If you place the /PD qualifier right after the /INSTRUCTION qualifier, SDA treats the calculated value as a function or procedure descriptor. /NOPD has the opposite effect.

In the following examples, TEST_ROUTINE is a PD symbol. Its value is 500 and the code address in this procedure descriptor is 1000. The first example displays instructions starting at 520.

EXAMINE/INSTRUCTION TEST_ROUTINE/NOPD+20

The next example fetches code address from TEST_ROUTINE PD, adds 20 and displays instructions at that address. In other words, it displays code starting at location 1020.

EXAMINE/INSTRUCTION TEST_ROUTINE+20

The final example treats the address TEST_ROUTINE+20 as a procedure descriptor, so it fetches the code address out of a procedure descriptor at address 520. It then uses that address to display instructions.

EXAMINE/INSTRUCTION/PD TEST_ROUTINE/NOPD+20
/PFS

(Integrity servers only) Examines the specified expression in the format of a previous function state.

/PHYSICAL

Examines physical addresses. You cannot use the /PHYSICAL qualifier in combination with the /P0, /P1, or /SYSTEM qualifiers.

/PS

/PSL

Examines the specified quadword, displaying its contents in the format of a processor status. This qualifier must precede any parameters used in the command line.

/PSR

(Integrity servers only) Examines the specified expression in the format of a processor status register.

/PTE

Interprets and displays the specified quadword as a page table entry (PTE). The display separates individual fields of the PTE and provides an overall description of the PTE's type.

/SYSTEM

Displays portions of the writable system region. Do not specify parameters when you use this qualifier.

/TIME

Examines the specified quadword, displaying its contents in the format of a system-date-and-time quadword.

Description

The following sections describe how to use the EXAMINE command.

Examining Locations

When you use the EXAMINE command to look at a location, SDA displays the location in symbolic notation (symbolic name plus offset), if possible, and its contents in hexadecimal and ASCII formats:

SDA> EXAMINE G6605C0
806605C0:  64646464.64646464  "dddddddd"

If the ASCII character that corresponds to the value contained in a byte is not printable, SDA displays a period (.). If the specified location does not exist in memory, SDA displays this message:

%SDA-E-NOTINPHYS, address : virtual data not in physical memory 

To examine a range of locations, you can designate starting and ending locations separated by a colon. For example:

SDA> EXAMINE G40:G200

Alternatively, you can specify a location and a length, in bytes, separated by a semicolon. For example:

SDA> EXAMINE G400;16

When used to display the contents of a range of locations, the EXAMINE command displays six or ten columns of information. Ten columns are used if the terminal width is 132 or greater, or if a SET OUTPUT has been entered; six columns are used otherwise. An explanation of the columns is as follows:

  • Each of the first four or eight columns represents a longword of memory, the contents of which are displayed in hexadecimal format.

  • The fifth or ninth column lists the ASCII value of each byte in each longword displayed in the previous four or eight columns.

  • The sixth or tenth column contains the address of the first, or rightmost, longword in each line. This address is also the address of the first, or leftmost, character in the ASCII representation of the longwords. Thus, you read the hexadecimal dump display from right to left, and the ASCII display from left to right.

If a series of virtual addresses does not exist in physical memory, SDA displays a message specifying the range of addresses that were not translated.

If a range of virtual locations contains only zeros, SDA displays this message:

Zeros suppressed from 'loc1' to 'loc2'

Decoding Locations

You can translate the contents of memory locations into instruction format by using the /INSTRUCTION qualifier. This qualifier causes SDA to display the location in symbolic notation (if possible) and its contents in instruction format. The operands of decoded instructions are also displayed in symbolic notation. The location must be longword aligned (for Alpha) or octaword aligned (for Integrity servers).

Examining Memory Regions

You can display an entire region of virtual memory by using one or more of the qualifiers /ALL, /SYSTEM, /P0, and /P1 with the EXAMINE command.

Other Uses

Other uses of the EXAMINE command appear in the following examples.

Note

When examining individual locations, addresses are usually symbolized, as described previously. If the SET SYMBOLIZE OFF command is issued, addresses are not symbolized. See the SET SYMBOLIZE command for further details.

Examples

  1. SDA> EXAMINE/PFS 7FF43C10
            PPL    PEC    RRB.PR   RRB.FR   RRB.GR     SOR       SOL           SOF
            0       0.       0.       0.       0.       0.    23. (32-54)   31. (32-62)

    This example shows the display produced by the EXAMINE/PFS command. Headings refer to previous privilege level (PPL), previous epilog count (PEC), Register Rename Base (RRB) for Predicate (PR), Floating (FR), and General (GR) Registers, Size of Rotating (SOR) or Local (SOL) portion of the stack frame or Size of the Stack Frame (SOF). For more information, see the Intel IA-64 Architecture Software Developer's Manual.

  2. 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.

  3. SDA> EXAMINE/PSR 7FF43C78
            RT  TB  LP  DB  SI  DI  PP  SP  DFH DFL DT  PK  I   IC  MFH MFL AC  BE
            1   0   1   0   0   0   0   0   1   0   1   0   1   1   0   1   0   0
            IA  BN  ED  RI  SS  DD  DA  ID  IT  MC  IS  CPL
            0   1   0   1   0   0   0   0   1   0   0   0

    This example shows the display produced by the EXAMINE/PSR command

  4. SDA> EXAMINE/PTE @^QMMG$GQ_L1_BASE
     3 3 2   2             2 1 1   1 1
     1 0 9   7             0 9 8   6 5               7 6   4 3     0
    +-+-+---+-------------+-+-+---+-+---------------+-+---+-+-----+-+
    |0|1| 0 |     0000    |0|0| 0 |0|      11       |0| 0 |0|  4  |1|
    +-+-+---+-------------+-+-+---+-+---------------+-+---+-+-----+-+
    |                            00007090                           |
    +---------------------------------------------------------------+
    Valid PTE: Owner = K, Read Prot = K---, Write Prot = K---
               Fault on = -E--, ASM = 00, Granularity Hint = 00 (8KB)
               CPY = 00, PFN = 00007090

    The EXAMINE/PTE command displays and formats the level 1 page table entry at FFFFFEFD.BF6FC000. For more information on interpreting this display, see Section 2.8, “Page Protections and Access Rights”.

  5. SDA> EXAMINE/CONDITION_VALUE R0
    %SYSTEM-F-NOPRIV, insufficient privilege or object protection violation

    This example shows the text associated with the condition code in R0.

  6. SDA> EXAMINE/TIME EXE$GQ_SYSTIME
    12-DEC-2001 08:23:07.80

    This example displays the current system as an ASCII absolute time.

4.10. EXIT

Exits from an SDA display or exits from the SDA utility.

Format

EXIT

Parameters

None.

Qualifiers

None.

Description

If SDA is displaying information on a video display terminal---and if that information extends beyond one screen---SDA enters display mode and 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.

See Section 2.6.2, “SDA Display Mode” for a description of SDA display mode.

4.11. FORMAT

Displays a formatted list of the contents of a block of memory.

Format

FORMAT [/TYPE=block-type] location [/NOSYMBOLIZE][/PAGE][/PHYSICAL] [/POSITIVE]

Parameters

location

Location of the beginning of the data block. The location can be given as any valid SDA expression.

Qualifiers

/NOSYMBOLIZE

If /NOSYMBOLIZE is specified, no attempt is made to symbolize the contents of any field in a structure. This is useful if the loaded execlet or activated image lists are corrupted, since symbolization relies on these lists.

/PAGE

If the output of the formatted structure does not fit on one screen, SDA enters display mode. (For information on this topic, see Section 2.6.2, “SDA Display Mode”.) By default, SDA displays the formatted structure without screen overflow prompts.

/PHYSICAL

Specifies that the location given is a physical address.

/POSITIVE

Symbols that describe negative offsets from the start of the structure are ignored. By default, all symbols for the block type are processed

/TYPE=block-type

Forces 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.

Description

The FORMAT command performs the following actions:

  • Characterizes a range of locations as a system data

  • Assigns, if possible, a symbol to each item of data within the block

  • Displays all the data within the block, up to a quadword per line

  • Whenever successive quadword fields with no symbolic name containing the same value occur, only the first occurrence is output. Ellipses replace all subsequent occurrences.

Most OpenVMS 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 following form:

<block_type>$<field>_<name>

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 the following 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 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. Section 2.5, “SDA Context” lists additional modules provided by the OpenVMS operating system. Alternatively, you can create your own object modules with the MACRO-32 Compiler for OpenVMS. See the READ command description for instructions on creating such an object module.

Certain OpenVMS 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 the following 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 three-column display containing the following information:

  • 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.

Examples

  1. SDA> READ SYSDEF
    SDA> format  81475D00
    FFFFFFFF.81475D00   UCB$L_FQFL           8104EA58          EXE$GL_FKWAITFL+00078
                        UCB$L_MB_MSGQFL
                        UCB$L_RQFL
                        UCB$W_MB_SEED
                        UCB$W_UNIT_SEED
    FFFFFFFF.81475D04   UCB$L_FQBL           81412038
                        UCB$L_MB_MSGQBL
                        UCB$L_RQBL
    FFFFFFFF.81475D08   UCB$W_SIZE                        0380
    FFFFFFFF.81475D0A   UCB$B_TYPE                      10
    FFFFFFFF.81475D0B   UCB$B_FLCK                    3A
    FFFFFFFF.81475D0C   UCB$L_ASTQFL         81223888          SYS$DKDRIVER+19A88
                        UCB$L_FPC
                        UCB$L_MB_W_AST
                        UCB$T_PARTNER
      .
      .
      .

    In this example on an OpenVMS Alpha system, 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 81475D0016, 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 81475D0C16 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 8104EA5816

  2. SDA> read sysdef
    SDA> read/exec
    SDA> format 84191D00
    FFFFFFFF.84191D00   SPL$L_OWN_CPU                      00000000
    FFFFFFFF.84191D04   SPL$L_OWN_CNT             FFFFFFFF
    FFFFFFFF.84191D08   SPL$W_SIZE                             0100
    FFFFFFFF.84191D0A   SPL$B_TYPE                           4F
    FFFFFFFF.84191D0B   SPL$B_SUBTYPE                      01
    FFFFFFFF.84191D0C   SPL$L_SPINLOCK            00000000
    FFFFFFFF.84191D10   SPL$L_RANK                         00000000
    FFFFFFFF.84191D14   SPL$B_IPL                       1F
                        SPL$L_IPL
    FFFFFFFF.84191D15                             000000
    FFFFFFFF.84191D18   SPL$L_RLS_PC                       00000000
    FFFFFFFF.84191D1C   SPL$L_BUSY_WAITS          00000000
    FFFFFFFF.84191D20   SPL$L_WAIT_CPUS                    00000000
    FFFFFFFF.84191D24   SPL$L_WAIT_PC             00000000
    FFFFFFFF.84191D28   SPL$Q_SPINS               00000000.00000000
    FFFFFFFF.84191D30   SPL$Q_ACQ_COUNT           00000000.00008E08
    FFFFFFFF.84191D38   SPL$L_TIMO_INT                     000186A0    UCB$M_FLOPPY_MEDIA+006A0
    FFFFFFFF.84191D3C   SPL$PS_SHARE_ARRAY        00000000
    FFFFFFFF.84191D40   SPL$PS_SHARE_LINK                  00000000
    FFFFFFFF.84191D44   SPL$T_NAME                ""
    FFFFFFFF.84191D45                             000000
    FFFFFFFF.84191D48                             00000000.00000000
    FFFFFFFF.84191D50   SPL$Q_RELEASE_COUNT       00000000.00008E08
    FFFFFFFF.84191D58   SPL$Q_HISTORY_BITMASK     00000000.00000000
    FFFFFFFF.84191D60   SPL$Q_ABUSE_THRESHOLD     00000000.00000000
    FFFFFFFF.84191D68   SPL$Q_FLAGS               00000000.00000000
    FFFFFFFF.84191D70                             00000000.00000000
           ...                                           ...
    FFFFFFFF.84191D80   SPL$Q_ABUSE_BITMASK       00000000.00000000
    FFFFFFFF.84191D88                             00000000.00000000
           ...                                           ...
    FFFFFFFF.84191DB8                                      00000000
    FFFFFFFF.84191DBC   SPL$L_VEC_INX             00000010
    FFFFFFFF.84191DC0   SPL$L_OWN_PC_VEC                   8016B7A0    ERL$WAKE_C+00370
    FFFFFFFF.84191DC4                             8016BF50             ERL$WAKE_C+00B20
    FFFFFFFF.84191DC8                             8016BF50.8016B7A0
           ...                                           ...
    FFFFFFFF.84191DD8                             8016B8C0.8016B7A0
    FFFFFFFF.84191DE0                             000231E0.00022C20
    FFFFFFFF.84191DE8                             00023BF0.000238D0
    FFFFFFFF.84191DF0                             000231E0.00022C20
    
    FFFFFFFF.84191DF8                             00023BF0.000238D0
                        SPL$C_LENGTH
       .
       .
       .

    In this example on an OpenVMS Integrity server system, the READ command loads the symbols from SYSDEF and the loaded executive images into SDA's symbol table. The FORMAT command displays the data structure that begins at 84191D0016, a spinlock control block (SPL). If a field has more than one symbolic name, all such names are displayed. Thus, the field that starts at 84191D1416 has two designations: SPL$B_IPL and SPL$L_IPL.

    The contents of each field appear to the right of the symbolic name of the field. Thus, the contents of SPL$B_IPL is 1F16.

4.12. HELP

Displays information about the SDA utility, its operation, and the format of its commands.

Format

HELP [topic-name]

Parameters

topic-name

Topic for which you need information. A topic can be an SDA command name such as ATTACH or COPY, the name of an SDA extension such as CLUE or FLT, or a keyword such as Extensions or Process_Context.

If you enter HELP with no topic name, a list of all topics is displayed.

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:

Examples

  1. 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
                         Read global symbols from any object module
                         Search memory for a given value
                         Send output to a file or device
    
         For help on performing these functions, use the HELP command and
         specify a topic.
    
         Format
    
           HELP  [topic-name]
    
    
    
      Additional information available:
    
         .
         .
         .
    
    
    Topic?

4.13. MAP

Transforms an address into an offset in a particular image.

Format

MAP address

Parameters

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.

If the address is in system space, MAP searches for the specified address in executive images first. It then checks activated images in process space to search those images installed using the /RESIDENT qualifier of the Install utility. Finally, it checks all image-resident sections in system space. If the address is in process space, MAP searches the activated images for the process.

If the address cannot be found, MAP displays the following message:

%SDA-E-NOTINIMAGE, Address not within a system/installed image

On Integrity servers, the MAP command can also provide additional data for addresses in system space. If the address is determined to be in a code section of an executive loaded image or a resident shareable image, and if the image file is accessible and was linked using /TRACEBACK, the traceback data is used to obtain and display the module name and routine name information.

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.

  11. SDA> MAP FFFFFFFF.8042FE00
    Image                               Base               End          Image Offset
    EXCEPTION_MON
        Code                      FFFFFFFF.8041FE00 FFFFFFFF.804E3DFF 00000000.00028000
    
        Module:     IPF_DECODE + 00005380
        Routine:    process_i_unit + 00000840

    This example shows the additional module and routine offset information that is displayed for system space code sections.

4.14. MODIFY DUMP

Allows a given byte, word, longword, or quadword in the dump file to be modified.

Format

MODIFY DUMP value {/BLOCK=n/OFFSET=n | /NEXT}

{/BYTE | /WORD | /LONGWORD (d) | /QUADWORD}

[/CONFIRM=n]

Parameters

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.

/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.

/CONFIRM=n

Checks existing contents of location to be modified.

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 VSI 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
    %SDA-E-NOMATCH, expected value does not match value in dump; dump not updated

    This example shows what happens when the actual word value of 00FF at offset 100 in block 00000010 does not match the given value of 00EE.

  3. 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

4.15. READ

Loads the global symbols contained in the specified file into the SDA symbol table.

Format

READ {/EXECUTIVE [directory spec]

| /FORCE filespec [/RELOCATE =expression | /SYMVA=expression]

| /IMAGE filespec

| filespec}

[ /[NO]LOG]

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, SYS$LIBRARY, and SYS$SYSTEM.

filespec

Name of the device, directory, and 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.

The READ command accepts quoted filenames for access to images on ODS-5 disks with lowercase or compound characters in their names.

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 (D)

The /LOG qualifier causes SDA to output the %SDA-I-READSYM message for each symbol table file it reads. By default, these messages are suppressed. You can specify /LOG and /NOLOG 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 Alpha and OpenVMS Integrity servers format files. Do not use READ to read files that contain symbols specific to another architecture, as this might change the behavior of other SDA commands for the current architecture.

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 the table below. 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
FileContents
ACME.EXE$ACM system service
CNX$DEBUG.EXEConnection Manager trace routines
DDIF$RMS_EXTENSION.EXESupport for Digital Document Interchange Format (DDIF) file operations
ERRORLOG.STBError-logging routines and system services
EXCEPTION.STBBugcheck and exception-handling routines and those system services that declare condition and exit handlers. Variations 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.
EXEC_INIT.STBInitialization code
F11BXQP.STBFile system support
FC$GLOGALS.STBFibrechannel symbols
IMAGE_MANAGEMENT.STBImage activator and the related system services
IO_ROUTINES.STB$QIO system service, related system services (for example, $CANCEL and $ASSIGN), and supporting routines. Variations 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.
LAT$RATING.EXECPU load-balancing routines for LAT
LCK$DEBUG.EXELock manager trace routines
LMF$GROUP_TABLE.EXEData structures for licensed product groups. Alpha only.
LOCKING.STBLock management routines and system services
LOGICAL_NAMES.STBLogical name routines and system services
MESSAGE_ROUTINES.STBSystem message routines and system services (including $SNDJBC and $GETTIM)
MSCP.EXEDisk MSCP server
MULTIPATH.STBFibrechannel multipath support routinesю Variations 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.
NET$CSMACD.EXECSMA/CD LAN management module
NET$FDDI.EXEFDDI LAN management module
NT_EXTENSION.EXENT extensions for persona system services
PROCESS_MANAGEMENT.STBScheduler, report system event, and supporting routines and system services. Variations 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.
RECOVERY_UNIT_SERVICES.STBRecovery unit system services
RMS.EXEGlobal symbols and entry points for RMS
SECURITY.STBSecurity management routines and system services. Variations 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.
SHELL xxK.STBProcess shell
SPL$DEBUG.EXESpinlock trace routines
SSPI.EXESecurity Support Provider Interface
SYS$ xxDRIVER.EXERun-time device drivers
SYS$ACPI.EXEAdvanced Configuration and Power Interface routines. Integrity servers only.
SYS$ATMWORKS351.EXEPCI-ATM driver
SYS$CLUSTER.EXEOpenVMS Cluster support routines
SYS$CPU_ROUTINES_ xxxx.EXEProcessor-specific data and initialization routines. Alpha only.
SYS$EW1000A.EXEGigabit Ethernet driver
SYS$EW5700.EXEGigabit Ethernet driver. Integrity servers only.
SYS$GALAXY.STBOpenVMS Galaxy support routines
SYS$HWP nnnn.EXEPCI support routines. Integrity servers only.
SYS$IPC_SERVICES.EXEInterprocess communication for DECdtm and Batch/Print
SYS$IPI nnnn.EXEPCI support routines. Integrity servers only.
SYS$LAN.EXECommon LAN routines
SYS$LAN_ATM.EXELAN routines for ATM
SYS$LAN_ATM4.EXELAN routines for ATM (ForeThought)
SYS$LAN_CSMACD.EXELAN routines for CSMA/CD
SYS$LAN_FDDI.EXELAN routines for FDDI
SYS$LAN_TR.EXELAN routines for Token Ring
SYS$MME_SERVICES.STBMedia Management Extensions
SYS$NETWORK_SERVICES.EXEDECnet support
SYS$NTA.STBNT affinity routines and services
SYS$ xxxx_SUPPORT.EXEProcessor-specific data and initialization routines. Integrity servers only.
SYS$PUBLIC_VECTORS.EXESystem service vector base image. This file is located in SYS$LIBRARY.
SYS$SCS.EXESystem Communication Services
SYS$TRANSACTION_SERVICES.EXEDECdtm services
SYS$UTC_SERVICES.EXEUniversal Coordinated Time services
SYS$VCC.STBVirtual I/O cache. Variations 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. Alpha only.
SYS$VM.STBSystem pager and swapper, along with their supporting routines, and management system services
SYS$XFCACHE.STBExtented File Cache. Variations 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.
SYSDEVICE.STBMailbox driver and null driver
SYSGETSYI.STBGet System Information system service ($GETSYI)
SYSLDR_DYN.STBDynamic executive image loader
SYSLICENSE.STBLicensing system service ($LICENSE)
SYSTEM_DEBUG.EXEXDelta and SCD routines
SYSTEM_PRIMITIVES.STBMiscellaneous basic system routines, including those that allocate system memory, maintain system time, create fork processes, and control mutex acquisition. Variations 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.
SYSTEM_SYNCHRONIZATION.STBRoutines that enforce synchronization. Variations 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.
TCPIP$BGDRIVER.STBTCP/IP internet driver. Available only if TCP/IP has been installed.
TCPIP$INETACP.STBTCP/IP internet ACP Available only if TCP/IP has been installed.
TCPIP$INETDRIVER.STBTCP/IP internet driver. Available only if TCP/IP has been installed.
TCPIP$INTERNET_SERVICES.STBTCP/IP internet execlet
TCPIP$NFS_SERVICES.STBSymbols for the TCP/IP NFS server. Available only if TCP/IP has been installed.
TCPIP$PROXY_SERVICES.STBSymbols for the TCP/IP proxy execlet. Available only if TCP/IP has been installed.
TCPIP$PWIPACP.STBTCP/IP PWIP ACP. Available only if TCP/IP has been installed.
TCPIP$PWIPDRIVER.STBTCP/IP PWIP driver. Available only if TCP/IP has been installed.
TCPIP$TNDRIVER.STBTCP/IP TELNET/RLOGIN server driver. Available only if TCP/IP has been installed.
TMSCP.EXETape MSCP server
VMS_EXTENSION.EXEVMS extensions for persona system services

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 you use the SYMBOL_TABLE=GLOBAL option in the linker options file.

A number of ready-built symbol table files ship with OpenVMS. 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. You can add the symbols in the other files to SDA's symbol table using the READ command. Table 2.5, “Modules Containing SDA Global Symbols and Data Structures” lists the files that OpenVMS provides in SYS$LOADABLE_IMAGES that define data structure offsets.

The following MACRO program, GLOBALS.MAR, shows how to obtain symbols in addition to those in SYS$BASE_IMAGE.EXE, other executive images listed in Table 4.1, “Modules Defining Global Locations Within Executive Images”, and the symbol table files that are listed in Table 2.5, “Modules Containing SDA Global Symbols and Data Structures”:

.TITLE GLOBALS
; n.b. on following lines GLOBAL must be capitalized
$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 following command to generate an object module file containing the globals defined in the program:

$MACRO GLOBALS+SYS$LIBRARY:LIB/LIBRARY /OBJECT=GLOBALS.STB

Examples

  1. SDA>  READ SDA$READ_DIR:SYSDEF.STB/LOG
    %SDA-I-READSYM, 10010 symbols read from 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/LOG
    %SDA-I-READSYM, 767 symbols read from 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.

4.16. REPEAT

Repeats execution of the last command issued. On terminal devices, the KP0 key performs the same function as the REPEAT command with no parameter or qualifier.

Format

REPEAT [count | /UNTIL=condition]

Parameter

count

Number of times the previous command is to be repeated. The default is a single repeat.

Qualifier

/UNTIL=condition

Defines a condition that terminates the REPEAT command. By default, there is no terminating condition.

Description

The REPEAT command is useful for stepping through a linked list of data structures, or for examining a sequence of memory locations. When used with ANALYZE/SYSTEM, it allows the changing state of a system location or data structure to be monitored.

You can also use the REPEAT command to provide a convenient method of either displaying a series of data structures in a linked list or examining a sequence of locations. For example:

FORMAT @IOC$GL_DEVLIST   ! Start at first DDB in system
FORMAT @.                ! Skip to next entry in list
<KP0>                    ! Repeat FORMAT @. command
.
.
.

Examples

  1. SDA> SPAWN CREATE SDATEMP.COM
    SEARCH  0:3FFFFFFF   12345678
    SET PROCESS/NEXT
    ^Z
    SDA>  SET PROCESS NULL
    SDA>  @SDATEMP
    SDA>  REPEAT/UNTIL = BADPROC

    This example demonstrates how to search the address space of each process in a system or dump a given pattern.

  2. SDA> SPAWN CREATE SDATEMP2.COM
    FORMAT CPUDB
    SET CPU /NEXT
    ^Z
    SDA>  READ SYSDEF
    SDA>  SET CPU /FIRST
    SDA>  @SDATEMP2
    SDA>  REPEAT/UNTIL = BADCPU

    This example demonstrates how to format the CPU database for every CPU in a dump.

  3. 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_FRAME
    
    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_FRAME qualifier to the instruction displays the call frame indicated by the saved frame in the current call frame, you can use the REPEAT command to repeat the SHOW CALL_FRAME/NEXT_FRAME command and follow a chain of call frames.

4.17. SEARCH

Scans a range of memory locations for all occurrences of a specified value or string.

Format

SEARCH [/qualifier] range [=] {expression | string}

Parameters

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:nRange of locations to be searched, from m to n
m;nRange of locations to be searched, starting at m and continuing for n bytes

You must use either an equals sign or a blank to separate range from expression or string.

expression

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.1, “Using Expressions and Operators”.

string

Character sequence for which SDA is to search. If all characters in the sequence are printable characters, the string is enclosed in quotes, for example, "My_String". If the character sequence contains non-printable characters, it must be specified as a comma-separated list composed of quoted strings and hexadecimal numbers; for example,("My_String",0C00,"More") would specify a search for"My_String<NUL><FF>More". Each hexadecimal number can be no more than 8 digits (4 bytes) in length. Non-printable sequences of more than 4 bytes must be split into multiple hexadecimal numbers. The maximum length of a search string is 127 bytes. Note that the quote character itself cannot be included in a quoted string and must be specified as a hexadecimal number.

Qualifiers

/IGNORE_CASE

Specifies that searches for strings are not to be case-specific. (By default, searches look for an exact match.) This qualifier is ignored for value searches.

/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. This qualifier is ignored for string searches.

/MASK=n

Allows the SEARCH command finer granularity 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. This qualifier is ignored for string searches.

/PHYSICAL

Specifies that the addresses used to define the range of locations to be searched are physical addresses.

/STEPS = {QUADWORD | LONGWORD | WORD | BYTE | value}

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 or the given string 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 for value searches, and a step factor of a byte for string searches.

Description

SEARCH displays each location as each value or string is found. If you press Ctrl/T while using the SEARCH command, the system displays how far the search has progressed. The progress display is always output to the terminal even if a SET OUTPUT <file> command has previously been entered.

Examples

  1. SDA> SEARCH GB81F0;500 B41B0000
    Searching from FFFFFFFF.800B81F0 to FFFFFFFF.800B86EF in LONGWORD steps for B41B0000...
    Match at FFFFFFFF.800B86E4    B41B0000

    This SEARCH command finds the value B41B0000 in the longword at FFFFFFFF.800B86E4.

  2. SDA> SEARCH 80000000;200/STEPS=BYTE 82
    Searching from FFFFFFFF.80000000 to FFFFFFFF.800001FF in BYTE steps for 00000082...
    Match at FFFFFFFF.8000012C    00000082

    This SEARCH command finds the value 00000082 in the longword at FFFFFFFF.8000012C.

  3. SDA> SEARCH/LENGTH=WORD 80000000;100 10
    Match at FFFFFFFF.80000030    0010
    Match at FFFFFFFF.80000040    0010
    Match at FFFFFFFF.80000090    0010
    Match at FFFFFFFF.800000A0    0010
    Match at FFFFFFFF.800000C0    0010
    5 matches found

    This SEARCH command finds the value 0010 in the words at FFFFFFFF.80000030, FFFFFFFF.80000040, FFFFFFFF.80000090, FFFFFFFF.800000A0, FFFFFFFF.800000C0.

  4. SDA> SEARCH/MASK=FF000000 80000000;40 20000000
    Searching from FFFFFFFF.80000000 to FFFFFFFF.8000003F in LONGWORD steps for 20000000...
    (Using search mask of FF000000)
    Match at FFFFFFFF.80000000    201F0104
    Match at FFFFFFFF.80000010    201F0001
    2 matches found

    This SEARCH command finds the value 20 in the upper byte of the longwords at FFFFFFFF.80000000 and FFFFFFFF.80000010, regardless of the contents of the lower 3 bytes.

  5. SDA> SEARCH g:i ("test",01020304,"this",05060708,"again")
     Searching from FFFFFFFF.80000000 to FFFFFFFF.FFFFFFFF in byte steps for "test....this....again"...
     (74,65,73,74,04,03,02,01,74,68 ,69,73,08,07,06,05,61,67,61,69,6E)
     No matches found

    This example combines quoted strings and hexadecimal values to form a character sequence to be used in a search. Note the order in which the bytes within each hexadecimal number are inserted into the search sequence: the least significant byte of the hexadecimal number is the first byte added to the search sequence.

4.18. SET CPU

When analyzing a system dump, selects a processor to become the current CPU for SDA. When invoked under ANALYZE/SYSTEM, SET CPU lists the database address for the specified CPU before exiting with the message: %SDA-E-CMDNOTVLD command not valid on the running system

Format

SET CPU {cpu-id | /FIRST | /NEXT | /PRIMARY } [/NOLOG]

Parameter

cpu-id

Numeric value indicating the identity of the processor to be made the current CPU. If you specify the 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

Qualifiers

/FIRST

The lowest numbered CPU (not necessarily the primary CPU) is set as the current CPU.

/NEXT

The next higher numbered CPU is set as the current CPU. SDA skips CPUs not in the configuration at the time of the system failure. If there are no further CPUs, SDA returns an error.

/NOLOG

Use the /NOLOG qualifier to inhibit output of the database address for the CPU being set.

/PRIMARY

The primary CPU is set as the current CPU.

Description

When you invoke SDA to examine a system dump, the current CPU context for SDA 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 CPU context for SDA to that of the processor indicated by cpu-id. The CPU specified by this command becomes the current CPU for SDA until you either exit from SDA or change the CPU context for SDA by issuing one of the following commands:

SET CPU cpu-id

SET CPU /FIRST

SET CPU /NEXT

SET CPU /PRIMARY

SHOW CPU cpu-id

SHOW CPU /FIRST

SHOW CPU /NEXT

SHOW CPU /PRIMARY

SHOW CRASH

SHOW MACHINE_CHECK cpu-id

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, the SDA process context is undefined and no process-specific information is available until you set the SDA process context to that of a specific process.

The following commands also change the CPU context for SDA to that of the CPU on which the process was most recently current:

SET PROCESS process-name

SET PROCESS/ADDRESS=pcb-address

SET PROCESS/INDEX=nn

SET PROCESS/NEXT

SHOW PROCESS process-name

SHOW PROCESS/ADDRESS=pcb-address

SHOW PROCESS/INDEX=nn

SHOW PROCESS/NEXT

VALIDATE PROCESS/POOL process-name

VALIDATE PROCESS/POOL/ADDRESS=pcb-address

VALIDATE PROCESS/POOL/INDEX=nn

VALIDATE PROCESS/POOL/NEXT

See Section 2.5, “SDA Context” for further discussion of the way in which SDA maintains its context information.

See the description of the REPEAT command for an example of the use of SET CPU/NEXT command.

4.19. SET ERASE_SCREEN

Enables or disables the automatic clearing of the screen before each new page of SDA output.

Format

SET ERASE_SCREEN {ON | OFF}

Parameters

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.

Description

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 is written to a file when the SET LOG or SET OUTPUT commands are used.

Examples

  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.

4.20. SET FETCH

Sets the default size and access method of address data used when SDA evaluates an expression that includes the @ unary operator.

Format

SET FETCH [{QUADWORD | LONGWORD | WORD | BYTE}]

[, {PHYSICAL | VIRTUAL} ]

Parameters

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

Sets the default access method to virtual addresses.

You can specify only one parameter out of each group. If you are changing both size and access method, separate the two parameters by spaces or a comma. Include a comma only if you are specifying a parameter from both groups. See Example 6.

Qualifiers

None.

Description

Sets the default size and/or default access method of address data used by the @ unary operator in commands such as EXAMINE and EVALUATE. SDA uses the current default size unless it is overridden by the ^Q, ^L, ^W, or ^B qualifier on the @ unary operator in an expression. SDA uses the current default access method unless it is overridden by the ^P or ^V qualifier on the @ unary operator in an expression.

Examples

  1. SDA>  EXAMINE MMG$GQ_SHARED_VA_PTES
    MMG$GQ_SHARED_VA_PTES:  FFFFFFFD.FF7FE000   ".`a....."

    This example 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 example shows a failure because the SET FETCH LONG causes SDA to assume that 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 example 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 example 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.

4.21. SET LOG

Initiates or discontinues the recording of an SDA session in a text file.

Format

SET [NO]LOG filespec

Parameter

filespec

Name of the file in which you want SDA to log your commands and their output. The default filespec is SYS$DISK:[default_dir]filename.LOG, where SYS$DISK and [default-dir] represent the disk and directory specified in your last DCL command SET DEFAULT. If you specify SET LOG without a filename or specify SET NOLOG, SDA stops recording the session and directs all output to SYS$OUTPUT.

Qualifier

None.

Description

The SET LOG command echoes the commands and output of an SDA session to a log file. The SET NOLOG command terminates this behavior.

The following differences exist between the SET LOG command and the SET OUTPUT command:

  • When logging is in effect, your commands and their results are still displayed on your terminal. The SET OUTPUT command causes the displays to be redirected to the output file and they no longer appear on the screen.

  • If an SDA command requires that you press Return to produce successive screens of display, the log file produced by SET LOG will record only those screens that are actually displayed. SET OUTPUT, however, sends the entire output of any SDA commands to its listing file.

  • The SET LOG command produces a log file with a default file type of .LOG; the SET OUTPUT command produces a listing file whose default file type is .LIS.

  • The SET OUTPUT command can generate a table of contents, each item of which refers to a display written to its listing file. SET OUTPUT also produces running heads for each page of output. The SET LOG command does not produce these items in its log file.

If you use the SET OUTPUT command to redirect output to a listing file, a SET LOG command to direct the same output to a log file is ineffective until output is restored to the terminal.

4.22. SET OUTPUT

Redirects output from SDA to the specified file or device.

Format

SET OUTPUT [/[NO]INDEX | /[NO]HEADER | /PERMANENT | /SINGLE_COMMAND] filespec

Parameter

filespec

Name of the file to which SDA is to send the output generated by its commands. The default filespec is SYS$DISK:[default_dir] filename.LIS, where SYS$DISK and [default-dir] represent the disk and directory specified in your last DCL command SET DEFAULT. You must specify a file name except when /PERMANENT is specified.

Qualifiers

/INDEX

/NOINDEX

The /INDEX qualifier causes SDA to include an index page at the beginning of the output file. This is the default unless you specify /NOHEADER or modify the default with a SET OUTPUT/PERMANENT command. The /NOINDEX qualifier causes SDA to omit the index page from the output file.

/HEADER

/NOHEADER

The /HEADER qualifier causes SDA to include a heading at the top of each page of the output file. This is the default unless you modify it with a SET OUTPUT/PERMANENT command. The /NOHEADER qualifier causes SDA to omit the page headings. Use of /NOHEADER implies /NOINDEX.

/PERMANENT

Modifies the defaults for /[NO]HEADER and /[NO]INDEX. Specify either or both qualifiers with or without a NO prefix to set new defaults. Setting the default to /NOHEADER implies a default of /NOINDEX. The new defaults remain in effect until another SET OUTPUT/PERMANENT command is entered or the SDA session is ended.

You cannot combine /PERMANENT and /SINGLE_COMMAND in one command, and you cannot provide a filespec with /PERMANENT.

/SINGLE_COMMAND

Indicates to SDA that the output for a single command is to be written to the specified file and that subsequent output should be written to the terminal. /SINGLE_COMMAND cannot be combined with /PERMANENT.

Description

When you use the SET OUTPUT command to send the SDA output to a file or device, SDA continues displaying the SDA commands that you enter but sends the output generated by those commands to the file or device you specify. (See the description of the SET LOG command for a list of differences between the SET LOG and SET OUTPUT commands.)

When you finish directing SDA commands to an output file and want to return to interactive display, issue the following command:

SDA> SET OUTPUT SYS$OUTPUT

You do not need this command when you specify the /SINGLE_COMMAND qualifier on the original SET OUTPUT command.

If you use the SET OUTPUT command to send the SDA output to a listing file and do not specify /NOINDEX or /NOHEADER, SDA builds a table of contents that identifies the displays you selected and places the table of contents at the beginning of the output file. The SET OUTPUT command formats the output into pages and produces a running head at the top of each page, unless you specify /NOHEADER.

If the table of contents does not fit on a single index page at the beginning of the listing file, SDA will insert additional index pages as necessary. These are inserted into the listing file immediately preceding the pages that are listed in each index page. Each index page includes the page number for the adjacent index pages.

Note

See the description of the DUMP command for use of SET OUTPUT/NOHEADER.

4.23. SET PROCESS

Selects a process to become the SDA current process.

Format

SET PROCESS {/ADDRESS=pcb-address | process-name | /ID=nn | /INDEX=nn | /NEXT | /SYSTEM}

Parameter

process-name

Name of the process to become the SDA current process. The process-name can contain up to 15 uppercase letters, numerals, the underscore (_), dollar sign ($), colon (:), and some other printable characters. If it contains any other characters (including lowercase letters), you may need to enclose the process-name in quotation marks (" ").

Qualifiers

/ADDRESS = pcb-address

Specifies the process control block (PCB) address of a process in order to display information about the process.

/ID=nn

/INDEX=nn
Specifies the process for which information is to be displayed either by its index into the system's list of software process control blocks (PCBs), or by its process identification. /ID and /INDEX are functionally equivalent. You can supply the following values for nn:
  • The process index itself.

  • The process identification (PID) or extended PID longword, from which SDA extracts the correct index. The PID or extended PID of any thread of a process with multiple kernel threads may be specified. Any thread-specific data displayed by further commands will be for the given thread.

To obtain these values for any given process, issue the SDA command SHOW SUMMARY/THREADS. The /ID=nn and /INDEX=nn qualifiers can be used interchangeably.

/NEXT

Causes SDA to locate the next valid process in the process list and select that process. If there are no further valid processes in the process list, SDA returns an error.

/SYSTEM

Specifies the new current process by the system process control block (PCB). The system PCB and process header (PHD) parallel the data structures that describe processes. They contain the system working set list, global section table, and other systemwide data.

Description

When you issue an SDA command such as EXAMINE, SDA displays the contents of memory locations in its current process. To display any information about another process, you must change the current process with the SET PROCESS command.

When you invoke SDA to analyze a crash dump, the process context defaults to that of the process that was current at the time of the system failure. If the failure occurred on a multiprocessing system, SDA sets the CPU context to that of the processor that caused the system to fail. The process context is set to that of the process that was current on that processor.

When you invoke SDA to analyze a running system, its process context defaults to that of the current process, that is, the one executing SDA.

The SET PROCESS command changes the current SDA process context to that of the process indicated by process-name, pcb-address, or /INDEX=nn. The process specified by this command becomes the current process for SDA until you either exit from SDA or change SDA process context by issuing one of the following commands:

SET PROCESS process-name

SET PROCESS/ADDRESS=pcb-address

SET PROCESS/INDEX=nn

SET PROCESS/NEXT

SET PROCESS/SYSTEM

SHOW PROCESS process-name

SHOW PROCESS/ADDRESS=pcb-address

SHOW PROCESS/INDEX=nn

SHOW PROCESS/NEXT

SHOW PROCESS/SYSTEM

VALIDATE PROCESS/POOL process-name

VALIDATE PROCESS/POOL/ADDRESS=pcb-address

VALIDATE PROCESS/POOL/INDEX=nn

VALIDATE PROCESS/POOL/NEXT

VALIDATE PROCESS/POOL/SYSTEM

When you analyze a crash dump from a multiprocessing system, changing process context causes a switch of CPU context as well. When you issue a SET PROCESS command, SDA automatically changes its CPU context to that of the CPU on which that process was most recently current.

The following commands will also switch process context when analyzing a system dump, if there was a current process on the target CPU at the time of the crash:

SET CPU cpu-id

SET CPU /FIRST

SET CPU /NEXT

SET CPU /PRIMARY

SHOW CPU cpu-id

SHOW CPU /FIRST

SHOW CPU /NEXT

SHOW CPU /PRIMARY

SHOW CRASH

SHOW MACHINE_CHECK cpu-id

See Section 2.5, “SDA Context” for further discussion of the way in which SDA maintains its context information.

Examples

  1. SDA> SET PROCESS/ADDRESS=80D772C0
    SDA> SHOW PROCESS
    Process index: 0012   Name: ERRFMT   Extended PID: 00000052
    -----------------------------------------------------------
    Process status:  02040001   RES,PHDRES,INTER
            status2: 00000001   QUANTUM_RESCHED
    
    PCB address              80D772CO    JIB address              80556600
    PHD address              80477200    Swapfile disk address    01000F01
    KTB vector address       80D775AC    HWPCB address            81260080
    Callback vector address  00000000    Termination mailbox          0000
    Master internal PID      00010004    Subprocess count                0
    Creator extended PID     00000000    Creator internal PID     00000000
    Previous CPU Id          00000000    Current CPU Id           00000000
    Previous ASNSEQ  0000000000000001    Previous ASN     000000000000002E
    Initial process priority        4    Delete pending count            0
    # open files allowed left     100    Direct I/O count/limit        150/150
    UIC                [00001,000004]    Buffered I/O count/limit      149/150
    Abs time of last event   0069D34E    BUFIO byte count/limit      99424/99808
    ASTs remaining                247    # of threads                    1
    Swapped copy of LEFC0    00000000    Timer entries allowed left     63
    Swapped copy of LEFC1    00000000    Active page table count         4
    Global cluster 2 pointer 00000000    Process WS page count          32
    Global cluster 3 pointer 00000000    Global WS page count           31

    The SET PROCESS command switches SDA's current process context to the process whose PCB is at address 80D772C0. The SHOW PROCESS command shows that the process is ERRFMT, and displays information from its PCB and job information block (JIB).

    See the description of the REPEAT command for an example of the use of the SET PROCESS/NEXT command.

4.24. SET RMS

Changes the options shown by the SHOW PROCESS/RMS command.

Format

SET RMS = (option[,...])

Parameter

option

Data structure or other information to be displayed by the SHOW PROCESS/RMS command. The table below lists those keywords that can be used as options.

Table 4.2. SET RMS Command Keywords for Displaying Process RMS Information
KeywordMeaning
[NO]ALL[: ifi] 1All control blocks (default)
[NO]ASBAsynchronous save block
[NO]BDBBuffer descriptor block
[NO]BDBSUMBDB summary page
[NO]BLBBuffer lock block
[NO]BLBSUMBuffer lock summary page
[NO]CCBChannel control block
[NO]DRCDirectory cache
[NO]FABFile access block
[NO]FCBFile control block
NO]FSBFile statistics block
[NO]FWAFile work area
[NO]GBDGlobal buffer descriptor
[NO]GBDSUMGBD summary page
[NO]GBHGlobal buffer header
[NO]GBHSHGlobal buffer hash table
[NO]GBSBGlobal buffer synchronization block
[NO]IDXIndex descriptor
[NO]IFAB[: ifi] 1Internal FAB. The optional parameter ifi is an internal file identifier. The default ifi (ALL) is all the files the current process has opened.
[NO]IFB[: ifi] 1Internal FAB
[NO]IRABInternal RAB
[NO]IRBInternal RAB
[NO]JFBJournaling file block
[NO]KLTBKey-less-than block
[NO]NAMName block
[NO]NWANetwork work area
[NO]PIOImage I/O (NOPIO), the default, or process I/O (PIO)
[NO]RABRecord access block
[NO]RLBRecord lock block
[NO]RURecovery unit structures, including the recovery unit block (RUB), recovery unit stream block (RUSB), and recovery unit file block (RUFB)
[NO]SFSBShared file synchronization block
[NO]WCBWindow control block
[NO]XABExtended attribute block
[NO]*Current list of options displayed by the SHOW RMS command

The default option is (ALL,NOPIO), which designates that the SHOW PROCESS/RMS command display all structures for all files related to the process image I/O.

If only a single option is specified, you can omit the parentheses. You can add a given data structure to those displayed by ensuring that the list of keywords begins with the asterisk (*) symbol. You can delete a given data structure from the current display by preceding its keyword with NO.

Qualifier

None.

Description

The SET RMS command determines the data structures to be displayed by the SHOW PROCESS/RMS command. (See the examples included in the discussion of the SHOW PROCESS command for information provided by various displays.) You can examine the options that are currently selected by issuing a SHOW RMS command.

Examples

  1. SDA>  SHOW RMS
    RMS Display Options:  IFB,IRB,IDX,BDB,BDBSUM,ASB,CCB,WCB,FCB,FAB,RAB,NAM,XAB,RLB,
    BLB,BLBSUM,GBD,GBH,FWA,GBDSUM,JFB,NWA,RU,DRC,SFSB,GBSB
    
    Display RMS structures for all IFI values.
    
    SDA>  SET RMS=IFB
    SDA>  SHOW RMS
    
    RMS Display Options:  IFB
    
    Display RMS structures for all IFI values.

    The first SHOW RMS command shows the default selection of data structures that are displayed in response to a SHOW PROCESS/RMS command. The SET RMS command selects only the IFB to be displayed by subsequent SET/PROCESS commands.

  2. SDA>  SET RMS=(*,BLB,BLBSUM,RLB)
    SDA>  SHOW RMS
    
    RMS Display Options:  IFB,RLB,BLB,BLBSUM
    
    Display RMS structures for all IFI values.

    The SET RMS command adds the BLB, BLBSUM, and RLB to the list of data structures currently displayed by the SHOW PROCESS/RMS command.

  3. SDA>  SET RMS=(*,NORLB,IFB:05)
    SDA>  SHOW RMS
    
    RMS Display Options:  IFB,BLB,BLBSUM
    Display RMS structures only for IFI=5.

    The SET RMS command removes the RLB from those data structures displayed by the SHOW PROCESS/RMS command and causes only information about the file with the ifi of 5 to be displayed.

  4. SDA> SET RMS=(*,PIO)

    The SET RMS command indicates that the data structures designated for display by SHOW PROCESS/RMS be associated with process-permanent I/O instead of image I/O.

4.25. SET SIGN_EXTEND

Enables or disables the sign extension of 32-bit addresses.

Format

SET SIGN_EXTEND {ON | OFF}

Parameters

ON

Enables automatic sign extension of 32-bit addresses with bit 31 set. This is the default.

OFF

Disables automatic sign extension of 32-bit addresses with bit 31 set.

Qualifiers

None.

Description

The 32-bit S0/S1 addresses need to be sign-extended to access 64-bit S0/S1 space. To do this, specify explicitly sign-extended addresses, or set the sign-extend command to ON, which is the default.

However, to access addresses in P2 space, addresses must not be sign-extended. To do this, specify a zero in front of the address, or set the sign-extend command to OFF.

Examples

  1. SDA> SET SIGN_EXTEND ON
    SDA>  examine 80400000
    FFFFFFFF.80400000: 23DEFF90.4A607621

    This shows the SET SIGN_EXTEND command as ON.

  2. SDA> SET SIGN_EXTEND OFF
    SDA>  EXAMINE 80400000
    %SDA-E-NOTINPHYS, 00000000.80400000: virtual data not in physical memory

    This shows the SET SIGN_EXTEND command as OFF.

4.26. SET SYMBOLIZE

Enables or disables symbolization of addresses in the display from an EXAMINE command.

Format

SET SYMBOLIZE {ON | OFF}

Parameters

ON

Enables symbolization of addresses.

OFF

Disables symbolization of addresses.

Qualifier

None.

Examples

  1. SDA> SET SYMBOLIZE ON
            SDA> examine g1234
            SYS$PUBLIC_VECTORS+01234:  47DF041C   "..ßG"
  2. SDA> SET SYMBOLIZE OFF
            SDA> examine g1234
            FFFFFFFF.80001234:  47DF041C   "..ßG"

These examples show the effect of enabling (default) or disabling symbolization of addresses.

4.27. SHOW ACPI (Integrity servers only)

Displays the contents of Advanced Configuration and Power Interface (ACPI) tables and namespace structures.

Format

SHOW ACPI {/NAMESPACE |/TABLE} [/ADDRESS = address | /ALL | /CHILDREN] [ident]

Parameter

ident

The name of the table or the namespace structure to be displayed. If an ident is given, /ADDRESS cannot be specified.

Qualifiers

/ADDRESS = address

The physical address of the table entry or virtual address of a namespace structure to be displayed. If /ADDRESS is used, no ident may be specified.

/ALL

Specifies that detailed information on each entity is to be displayed. By default, only a brief summary of each entity is given, except when a specific table is displayed.

/CHILDREN

Specifies that all the child namespace structures for a specified namespace entry are to be displayed. /CHILDREN cannot be used with /TABLES.

/NAMESPACE

Specifies that ACPI namespace structures are to be displayed. Either /NAMESPACE or /TABLES must be specified.

/TABLES

Specifies that ACPI tables are to be displayed. Either /NAMESPACE or /TABLES must be specified.

Description

The SHOW ACPI command displays the Advanced Configuration and Power Interface (ACPI) Tables and Namespace structures, either as a one line summary for each entity or in detail. The amount of detail varies for each structure. The structures most interesting to OpenVMS are formatted; others are output as a hexadecimal dump.

Examples

  1. SDA> SHOW ACPI /TABLES
    ACPI Tables
    -----------
                                                            OEM       ASL
    Signature   Physical Address     Length    OEM Id   Table Id   Vendor Id   Rev
    ---------   -----------------   --------   ------   --------   ---------   ---
    RSDP        00000000.3FB2E000   00000028   HP       -          -           02
    XSDT        00000000.3FB2E02C   0000007C   HP       zx2000     HP          01
    FACP        00000000.3FB373E0   000000F4   HP       zx2000     HP          03
    SPCR        00000000.3FB37518   00000050   HP       zx2000     HP          01
    DBGP        00000000.3FB37568   00000034   HP       zx2000     HP          01
    APIC        00000000.3FB37628   00000084   HP       zx2000     HP          01
    SPMI        00000000.3FB375A0   00000050   HP       zx2000     HP          04
    CPEP        00000000.3FB375F0   00000034   HP       zx2000     HP          01
    SSDT        00000000.3FB33870   00000A14   HP       zx2000     INTL        01
    SSDT        00000000.3FB34290   000022E2   HP       zx2000     INTL        01
    SSDT        00000000.3FB36580   00000342   HP       zx2000     INTL        01
    SSDT        00000000.3FB368D0   00000A16   HP       zx2000     INTL        01
    SSDT        00000000.3FB372F0   000000EB   HP       zx2000     INTL        01
    FACS        00000000.3FB374D8   00000040   -        -          -           01
    DSDT        00000000.3FB2E0E0   00005781   HP       zx2000     INTL        01
    HCDP        00000000.3FB2C000   00000088   HP       zx1        HP          00

    This example shows the default display for the ACPI tables.

  2. SDA> SHOW ACPI /TABLES RSDP
    
    ACPI Tables
    -----------
    RSDP
    
          Physical Address:      00000000.3FB2E000   Length:                  00000028
        OEM Identification:                 "HP"   XSDT PA:        00000000.3FB2E02C
       Revision:                             02

    This example shows the contents of the Root System Description Pointer (RSDP) table.

  3. SDA> SHOW ACPI /NAMESPACE
    ACPI Namespace
    --------------
          Node              ACPI      Owner   Object           Operand
         Address            Name       Id      Type            Object          Flags
    ----------------- ---------------- -- --------------- ----------------- -----------
    FFFFFFFF.88253028 \___             00 Device          FFFFFFFF.89523158 End_Of_Peer_List Subtree_Has_Ini
    FFFFFFFF.89521BD8   _GPE           00 Local_Scope     00000000.00000000
    FFFFFFFF.89523F58     _L14         01 Method          FFFFFFFF.89523F98 End_Of_Peer_List
    FFFFFFFF.89521C18   _PR_           00 Local_Scope     00000000.00000000
    FFFFFFFF.89521C58   _SB_           00 Device          00000000.00000000 Subtree_Has_Ini
    FFFFFFFF.89529098     SBA0         01 Device          00000000.00000000 Subtree_Has_Ini
    FFFFFFFF.895290D8       _HID       01 Method          FFFFFFFF.89529118
    FFFFFFFF.89529198       _CID       01 Integer         FFFFFFFF.8952AD18

    This example shows the default display for the ACPI namespace structures.

  4. SDA> SHOW ACPI/NAMESPACE/CHILDREN _GPE
    ACPI Namespace
    --------------
          Node              ACPI      Owner   Object           Operand
         Address            Name       Id      Type            Object          Flags
    ----------------- ---------------- -- --------------- ----------------- -----------
    FFFFFFFF.89521BD8 \_GPE            00 Local_Scope     00000000.00000000
    FFFFFFFF.89523F58 \_GPE._L14       01 Method          FFFFFFFF.89523F98 End_Of_Peer_List

    This example shows the summary display for the _GPE (General Purpose Event) package in the ACPI namespace, plus its child node.

4.28. SHOW ADDRESS

Displays the page table related information about a memory address.

Format

SHOW ADDRESS address [/PHYSICAL]

Parameter

address

The requested address.

Qualifier

/PHYSICAL

Indicates that a physical address has been given. The SHOW ADDRESS command displays the virtual address that maps to the given physical address.

Description

The SHOW ADDRESS command displays the region of memory that contains the memory address. It also shows all the page table entries (PTEs) that map the page and can show the range of addresses mapped by the given address if it is the address of a PTE. If the virtual address is in physical memory, the corresponding physical address is displayed.

When the /PHYSICAL qualifier is given, the SHOW ADDRESS command displays the virtual address that maps to the given physical address. This provides you with a way to use SDA commands that do not have a /PHYSICAL qualifier when only the physical address of a memory location is known.

Examples

  1. SDA> SHOW ADDRESS 80000000
    FFFFFFFF.80000000 is an S0/S1 address
    Mapped by Level-3 PTE at: FFFFFFFD.FFE00000
    Mapped by Level-2 PTE at: FFFFFFFD.FF7FF800
    Mapped by Level-1 PTE at: FFFFFFFD.FF7FDFF8
    Mapped by Selfmap PTE at: FFFFFFFD.FF7FDFF0
    Also mapped in SPT window at: FFFFFFFF.FFDF0000
    Mapped to physical address 00000000.00400000

    The SHOW ADDRESS command in this example shows where the address 80000000 is mapped at different page table entry levels.

  2. SDA> SHOW ADDRESS 0
    00000000.00000000 is a P0 address
    Mapped by Level-3 PTE at: FFFFFFFC.00000000
    Mapped by Level-2 PTE at: FFFFFFFD.FF000000
    Mapped by Level-1 PTE at: FFFFFFFD.FF7FC000
    Mapped by Selfmap PTE at: FFFFFFFD.FF7FDFF0
    Not mapped to a physical address

    The SHOW ADDRESS command in this example shows where the address 0 is mapped at different page table entry levels.

  3. SDA> SHOW ADDRESS FFFFFFFD.FF000000
    FFFFFFFD.FF000000 is the address of a process-private Level-2 PTE
    Mapped by Level-1 PTE at: FFFFFFFD.FF7FC000
    Mapped by Selfmap PTE at: FFFFFFFD.FF7FDFF0
    Range mapped at level 2: FFFFFFFC.00000000 to FFFFFFFC.00001FFF (1 page)
    Range mapped at level 3: 00000000.00000000 to 00000000.007FFFFF (1024 pages)
    Mapped to physical address 00000000.01230000

    The SHOW ADDRESS command in this example shows where the address FFFFFFFD.FF7FC000 is mapped at page table entry and the range mapped by the PTE at this address.

  4. SDA> SHOW ADDRESS/PHYSICAL 0
    Physical address 00000000.00000000 is mapped to system-space address FFFFFFFF.828FC000

    The SHOW ADDRESS command in this example shows physical address 00000000.00000000 mapped to system-space address FFFFFFFF.828FC000.

  5. SDA> SHOW ADDRESS/PHYSICAL 029A6000
    Physical address 00000000.029A6000 is mapped to process-space address 00000000.00030000
    (process index 0024)

    The SHOW ADDRESS command in this example shows physical address 00000000.029A6000 mapped to process-space address 00000000.00030000 (process index 0024).

4.29. SHOW BUGCHECK

Displays the value, name, and text associated with one or all bugcheck codes.

Format

SHOW BUGCHECK {/ALL (d) | name | number}

Parameters

name

The name of the requested bugcheck code.

number

The value of the requested bugcheck code. The severity bits in the value are ignored.

The parameters name and number and the qualifier /ALL are all mutually exclusive.

Qualifier

/ALL

Displays complete list of all the bugcheck codes, giving their value, name, and text. It is the default.

Description

The SHOW BUGCHECK command displays the value, name, and text associated with bugcheck codes.

Examples

  1. SDA> SHOW BUGCHECK 104
    0100  DIRENTRY       ACP failed to find same directory entry

    The SHOW BUGCHECK command in this example shows the requested bugcheck by number, ignoring the severity (FATAL).

  2. SDA> SHOW BUGCHECK DECNET
    08D0  DECNET         DECnet detected a fatal error

    The SHOW BUGCHECK command in this example shows the requested bugcheck by name.

  3. SDA> SHOW BUGCHECK
    BUGCHECK codes and texts
    ------------------------
    0008  ACPMBFAIL      ACP failure to read mailbox
    0010  ACPVAFAIL      ACP failure to return virtual address space
    0018  ALCPHD         Allocate process header error
    0020  ALCSMBCLR      ACP tried to allocate space already allocated
       .
       .
       .

    The SHOW BUGCHECK command in this example shows the requested bugcheck by displaying all codes.

4.30. SHOW CALL_FRAME

Displays the locations and contents of the quadwords representing a procedure call frame.

Format

SHOW CALL_FRAME { [starting-address]

| /EXCEPTION_FRAME = intstk-address

| /NEXT_FRAME | /SUMMARY | /ALL}

Parameter

starting-address

For Alpha, an expression representing the starting address of the procedure call frame to be displayed. If no starting-address is given, the default starting address is the contents of the frame pointer (FP) register of the SDA current process. For a process that uses pthreads, the following SDA command can be used to display the starting addresses for all pthreads:

SDA> pthread thread -o u

For Integrity servers, the starting address is an expression representing one of the following:

  • The invocation context handle of a frame.

  • The address of an exception frame. This is equivalent to the following SDA command:

    SDA> SHOW CALL_FRAME /EXCEPTION_FRAME=intstk-address
  • The address of a Thread Environment Block (TEB).

    For a list of all TEBs for the process, use the following SDA command:

    SDA> pthread thread -o u

If no starting address is given, the default starting address is the invocation context handle of the current procedure in the SDA current process.

Qualifier

/ALL

Displays details of all call frames beginning at the current frame and continuing until bottom of stack (equivalent to SHOW CALL and repeated execution of a SHOW CALL/NEXT command).

/EXCEPTION_FRAME=intstk-address

(Integrity servers only) Provides an alternate starting address for SHOW CALL_FRAME. intstk-address is the address of an exception frame from which SDA creates an initial invocation context and displays the procedure call frame.

/NEXT_FRAME

Displays the procedure call frame starting at the address stored in the frame longword of the last call frame displayed by this command. You must have issued a SHOW CALL_FRAME command previously in the current SDA session in order to use the /NEXT_FRAME qualifier to the command.

/SUMMARY

Provides a one-line summary for each call frame, including exception frames, system-service entry frames, ASTs, KPBs, and so on, until reaching the bottom of the stack.

Description

Whenever a procedure is called, information is stored on the stack of the calling routine in the form of a procedure call frame. The SHOW CALL_FRAME command displays the locations and contents of the call frame. The starting address of the call frame is determined from the specified starting address, the /NEXT_FRAME qualifier, or the address contained in the SDA current process frame register (the default action).

When using the SHOW CALL_FRAME/NEXT_FRAME command to follow a chain of call frames, SDA signals the end of the chain by the following message:

Cannot display further call frames (bottom of stack)

This message indicates that the saved frame in the previous call frame has a zero value (for Alpha) or that the current frame is marked Bottom of Stack (for Integrity servers).

Examples

  1. SDA> SHOW CALL_FRAME
    Call Frame Information
    ----------------------
            Stack Frame Procedure Descriptor
    Flags:  Base Register = FP, No Jacket, Native
            Procedure Entry: FFFFFFFF.837E9F10              EXCEPTION_PRO+01F10
            Return address on stack = FFFFFFFF.837E8A1C     EXE$CONTSIGNAL_C+0019C
    Registers saved on stack
    ------------------------
    7FF95F98  FFFFFFFF.FFFFFFFB  Saved R2
    7FF95FA0  FFFFFFFF.8042AEA0  Saved R3     EXCEPTION_NPRW+040A0
    7FF95FA8  00000000.00000002  Saved R5
    7FF95FB0  FFFFFFFF.804344A0  Saved R13    SCH$CLREF+00188
    7FF95FB8  00000000.7FF9FC00  Saved R29
    .
    .
    .
    SDA> SHOW CALL_FRAME/NEXT_FRAME
    Call Frame Information
    ----------------------
            Stack Frame Procedure Descriptor
    Flags:  Base Register = FP, No Jacket, Native
            Procedure Entry: FFFFFFFF.800FA388              RMS_NPRO+04388
            Return address on stack = FFFFFFFF.80040BFC     EXCEPTION_NPRO+00BFC
    Registers saved on stack
    ------------------------
    7FF99F60  FFFFFFFF.FFFFFFFD  Saved R2
    7FF99F68  FFFFFFFF.80425BA0  Saved R3     EXCEPTION_NPRW+03DA0
    7FF99F70  FFFFFFFF.80422020  Saved R4     EXCEPTION_NPRW+00220
    7FF99F78  00000000.00000000  Saved R5
    7FF99F80  FFFFFFFF.835C24A8  Saved R6     RMS_PRO+004A8
    7FF99F88  00000000.7FF99FC0  Saved R7
    7FF99F90  00000000.7FF9FDE8  Saved R8
    7FF99F98  00000000.7FF9FDF0  Saved R9
    7FF99FA0  00000000.7FF9FE78  Saved R10
    7FF99FA8  00000000.7FF9FEBC  Saved R11
    7FF99FB0  FFFFFFFF.837626E0  Saved R13    EXE$OPEN_MESSAGE+00088
    7FF99FB8  00000000.7FF9FD70  Saved R29
    .
    .
    .
    SDA> SHOW CALL_FRAME/NEXT_FRAME
    Call Frame Information
    ----------------------
            Stack Frame Procedure Descriptor
    Flags:  Base Register = FP, No Jacket, Native
            Procedure Entry: FFFFFFFF.835C2438              RMS_PRO+00438
            Return address on stack = FFFFFFFF.83766020     EXE$OPEN_MESSAGE_C+00740
    Registers saved on stack
    ------------------------
    7FF9FD88  00000000.7FF9FDA4  Saved R2
    7FF9FD90  00000000.7FF9FF00  Saved R3
    7FF9FD98  00000000.7FFA0050  Saved R29

    The SHOW CALL_FRAME commands in this SDA session follow a chain of call frames from that specified in the frame of the SDA current process.

  2. SDA> SHOW CALL/SUMMARY
    Call Frame Summary
    ------------------
    
         Frame Type           Handle           Current PC
    -------------------- -----------------  -----------------
    Exception Dispatcher 00000000.7FF43EB0  FFFFFFFF.8049E160  EXCEPTION_MON+5E360
    Register Stack Frame 00000000.7FF12180  00000000.000122C0  KP_SAMPLE+122C0
    Memory Stack Frame   00000000.7FF43ED0  FFFFFFFF.8066B440  EXE$CMKRNL_C+00330
    Memory Stack Frame   00000000.7FF43F20  FFFFFFFF.80194890  EXE$SS_DISP_C+00400
    SS Dispatcher        00000000.3FFFDFC0  FFFFFFFF.8018D240  SWIS$ENTER_KERNEL_SERVICE_C+003E0
    Register Stack Frame 000007FD.BFF58000  00000000.000124C0  KP_SAMPLE+124C0
    KP Start Frame       00000000.7AC95A20  FFFFFFFF.80161670  EXE$KP_START_C+003C0
    Memory Stack Frame   00000000.7AC95B50  00000000.00012CE0  KP_SAMPLE+12CE0
    Memory Stack Frame   00000000.7AC95BC0  00000000.000126F0  KP_SAMPLE+126F0
    Base Frame           00000000.7AC95BE0  00000000.7ADE0BB0  DCL+82BB0
    Bottom of stack

    This example of SHOW CALL/SUMMARY on an Integrity server system shows the call frame summary of a process that has triggered an exception. The exception occurred while running a program called KP_SAMPLE which has invoked the $CMKRNL system service.

4.31. SHOW CBB

Displays contents of a Common Bitmask Block.

Format

SHOW CBB address

Parameter

address

The address of the Common Bitmask Block. This is required.

Qualifiers

None.

Description

The contents of the specified common bitmask block are displayed: the number of valid bits, the interlock state, the unit size and count, and the current settings for the bits in the bitmask.

Example

  1. SDA>  SHOW CBB SMP$GS_CBB_ACTIVE_SET
    Common Bitmask Block at FFFFFFFF.8180CA00
    -----------------------------------------
    
      Valid bits:                     00000040   State:          00000000.00000000
      Unit count:                         0001   Unit size:               QUADWORD
    
      Unit bitmask:
           ........ ........ 00000000 00000001   00000000

    This example shows the active-CPU common bitmask block for a single-CPU system.

4.32. SHOW CEB

Displays information about Common Event flag Blocks, also known as Common Event flag clusters.

Format

SHOW CEB [address | /ALL]

Parameter

address

The address of a common event flag block. Detailed information is displayed for the specified common event flag block.

Qualifier

/ALL

Specifies that detailed information is to be displayed for each common event flag block. By default, a one-line summary is output for each common event flag block.

Description

The contents of one or all common event flag blocks is displayed. In one-line summary format, the address, name, creator process, reference count, current settings for the 32 event flags in the cluster, and the UIC of the cluster are displayed. In detailed format, the address of the cluster's Object Rights Block (ORB) and the count of waiting threads are also displayed, with lists of all associated processes and waiting threads.

You cannot specify both an address and /ALL; they are mutually exclusive.

SHOW COMMON_EVENT_BLOCK is a synonym for SHOW CEB.

Examples

  1. SDA> SHOW CEB
    Common Event Flags
    ------------------
    
    Address       Name              Creator       RefCount  EvtFlags       UIC        Flags
    -------- -------------- --------------------- --------  --------  --------------  -----
    81E1D340 clus6          0000009B Test1        00000001  00000000     [11,1]       Permanent
    81E294C0 clus5          0000009B Test2        00000001  00000000     [11,1]       Permanent
    8213A280 IPCACP_FLAGS   00000086 IPCACP       00000001  00000000      [1,*]

    This example shows the one-line summary of all common event flag blocks.

  2. SDA> SHOW CEB 81E294C0
    Common Event Flags
    ------------------
    
    CEB Address:                      81E294C0   Name:                       clus5
    Creator process EPID:             0000009B   Name:                       Test2
    Event flag vector:                00000000   Reference count:         00000001
    ORB address:                      829F75B0   Wait count:              00000001
    UIC:                                [11,1]   Flags:                   00000002  Permanent
    
                  Associated Processes               Waiting Threads
           -----------------------------------   ------------------------
             PCB       EPID         Name           KTB     Indx  WaitMask
           --------  --------  ---------------   --------  ----  --------
           81E1C740  000000A4  BISHOP_47         81E1C740  0000  FFFFFF84

    This example shows the details for the CEB at the given address.

4.33. SHOW CLASS

Displays information about scheduling classes that are active in the system or dump being analyzed.

Format

SHOW CLASS [class-name | /ALL]

Parameter

class-name

Name of the class to be displayed.

Qualifier

/ALL

Indicates that details of all active classes are to be displayed.

Description

SDA displays information about active scheduling classes in the system. By default, a summary of the classes is displayed.

Examples

  1. SDA> SHOW CLASS
    Scheduling Classes
    ------------------
    
                      Original  Current     Time    Process
       Class Name     Quantum   Quantum   Restrict   Count
    ----------------  --------  --------  --------  --------
    BISH              000000C6  000000C6  00FE0000  00000001

    This example shows the summary display of the SHOW CLASS command.

  2. SDA> SHOW CLASS bish
    Class name:                       "BISH"
    Original quantum:                 000000C6 (99%)
    Current quantum:                  000000C6 (99%)
    Time restrictions:                00FE0000 (until 23:59)
    
    Processes currently in class:
    
                PCB         EPID           Name
              --------    --------    ---------------
              83617D40    00000225    Milord_RTA1:

    This example shows the detailed display of the SHOW CLASS command.

4.34. SHOW CLUSTER

Displays connection manager and system communications services (SCS) information for all nodes in a cluster.

Format

SHOW CLUSTER { [{/ADDRESS=n | /CIRCUIT=pb-addr | /CSID=csid | /NODE=name}] | /SCS }

Parameters

None

Qualifier

/ADDRESS=n

Displays only the OpenVMS Cluster system information for a specific OpenVMS Cluster member node, given the address of the cluster system block (CSB) for the node. This is mutually exclusive with the /CIRCUIT=pb-addr, /CSID=csid, and /NODE=name qualifiers.

/CIRCUIT=pb-addr

Displays only the OpenVMS Cluster system information for a specific path, where pb-addr is the address of its path block. This qualifier is mutually exclusive with the /ADDRESS=n, /CSID=csid, and /NODE=name qualifiers.

/CSID=csid

Displays only the OpenVMS Cluster system information for a specific OpenVMS Cluster member node. The value csid is the cluster system identification number (CSID) of the node to be displayed. You can find the CSID for a specific node in a cluster by examining the CSB list display of the SHOW CLUSTER command. Other SDA displays refer to a system's CSID. For instance, the SHOW LOCKS command indicates where a lock is mastered or held by CSID. This is mutually exclusive with the /ADDRESS=n, /CIRCUIT=pb-addr, and /NODE=name qualifiers.

/NODE=name

Displays only the OpenVMS Cluster system information for a specific OpenVMS Cluster member node, given its SCS node name. This is mutually exclusive with the /ADDRESS=n, /CIRCUIT=pb-addr, and /CSID=csid qualifiers.

/SCS

Displays a view of the cluster as seen by SCS.

Description

The SHOW CLUSTER command provides a view of the OpenVMS Cluster system from either the perspective of the connection manager (the default behavior), or from the perspective of the port driver or drivers (if the /SCS qualifier is used).

OpenVMS Cluster as Seen by the Connection Manager

The SHOW CLUSTER command provides a series of displays.

The OpenVMS Cluster summary display supplies the following information:

  • Number of votes required for a quorum

  • Number of votes currently available

  • Number of votes allocated to the quorum disk

  • Status summary indicating whether or not a quorum is present

The CSB list displays information about the OpenVMS Cluster system blocks (CSBs) currently in operation; one CSB is assigned to each node of the cluster. For each CSB, the CSB list displays the following information:

  • Address of the CSB

  • Name of the OpenVMS Cluster node it describes

  • CSID associated with the node

  • Number of votes (if any) provided by the node

  • State of the CSB

  • Status of the CSB

For information about the state and status of nodes, see the description of the ADD CLUSTER command of the SHOW CLUSTER utility in the VSI OpenVMS System Management Utilities Reference Manual.

The cluster block display includes information recorded in the cluster block (CLUB), including a list of activated flags, a summary of quorum and vote information, and other data that applies to the cluster from the perspective of the node for which the SDA is being run.

The cluster failover control block display provides detailed information concerning the cluster failover control block (CLUFCB). The cluster quorum disk control block display provides detailed information from the cluster quorum disk control block (CLUDCB).

Subsequent displays provide information for each CSB listed previously in the CSB list display. Each display shows the state and flags of a CSB, as well as other specific node information. (See the ADD MEMBER command of the SHOW CLUSTER utility in the VSI OpenVMS System Management Utilities Reference Manual for information about the flags for OpenVMS Cluster nodes.)

If any of the qualifiers /ADDRESS=n, /CSID=csid, or /NODE=name are specified, then the SHOW CLUSTER command displays only the information from the CSB of the specified node.

OpenVMS Cluster as Seen by the Port Driver

The SHOW CLUSTER/SCS command provides a series of displays.

The SCS listening process directory lists those processes that are listening for incoming SCS connect requests. For each of these processes, this display records the following information:

  • Address of its directory entry

  • Connection ID

  • Name

  • Explanatory information, if available

The SCS systems summary display provides the system block (SB) address, node name, system type, system ID, and the number of connection paths for each SCS system. An SCS system can be a OpenVMS Cluster member, storage controller, or other such device.

Subsequent displays provide detailed information for each of the system blocks and the associated path blocks. The system block displays include the maximum message and datagram sizes, local hardware and software data, and SCS poller information. Path block displays include information that describes the connection, including remote functions and other path-related data.

If the qualifier /CIRCUIT=pb-addr is specified, the SHOW CLUSTER command displays only the information from the specified path block.

Examples

  1. SDA> SHOW CLUSTER
    OpenVMS Cluster data structures
                   --- OpenVMS Cluster Summary ---
         Quorum   Votes   Quorum Disk Votes   Status Summary
         ------   -----   -----------------   --------------
            2       2            1            qf_dynvote,qf_vote,quorum
                        --- CSB list ---
    Address   Node    CSID      Votes   State     Status
    -------   ----    ----      -----   -----     ------
    805FA780  FLAM5   00010006    0     local   member,qf_same,qf_noaccess
    8062C400  ROMRDR  000100ED    1     open    member,qf_same,qf_watcher,qf_active
    8062C780  VANDQ1  000100EF    0     open    member,qf_same,qf_noaccess
                 --- Cluster Block (CLUB) 805FA380 ---
    Flags: 16080005 cluster,qf_dynvote,init,qf_vote,qf_newvote,quorum
    Quorum/Votes                  2/2    Last transaction code          02
    Quorum Disk Votes               1    Last trans. number            596
    Nodes                           3    Last coordinator CSID    000100EF
    Quorum Disk               $1$DIA0    Last time stamp       31-DEC-1992
    Found Node SYSID     00000000FC03                             17:26:35
    Founding Time          3-JAN-1993    Largest trans. id        00000254
                             21:04:21    Resource Alloc. retry           0
    Index of next CSID           0007    Figure of Merit          00000000
    Quorum Disk Cntrl Block  805FADC0    Member State Seq. Num        0203
    Timer Entry Address      00000000    Foreign Cluster          00000000
    CSP Queue                   empty
         --- Cluster Failover Control Block (CLUFCB) 805FA4C0 ---
    Flags: 00000000
    Failover Step Index      00000037    CSB of Synchr. System    8062C780
    Failover Instance ID     00000254
         --- Cluster Quorum Disk Control Block (CLUDCB) 805FADC0 ---
    State     : 0002 qs_rem_act
    Flags     : 0100 qf_noaccess
    CSP Flags : 0000
    Iteration Counter               0             UCB address     00000000
    Activity Counter                0             TQE address     805FAE00
    Quorum file LBN          00000000             IRP address     00000000
                                                  Watcher CSID    000100ED
         --- FLAM5 Cluster System Block (CSB) 805FA780 ---
    State:  0B local
    Flags:  070260AA member,qf_same,qf_noaccess,selected,local,status_rcvd,send_status
    Cpblty: 00000000
    SWVers: 7.0
    HWName: DEC 3000 Model 400
    Quorum/Votes       1/0    Next seq. number    0000    Send queue      00000000
    Quor. Disk Vote      1    Last seq num rcvd   0000    Resend queue    00000000
    CSID          00010006    Last ack. seq num   0000    Block xfer Q.   805FA7D8
    Eco/Version       0/23    Unacked messages       0    CDT address     00000000
    Reconn. time  00000000    Ack limit              0    PDT address     00000000
    Ref. count           2    Incarnation   1-JAN-1993    TQE address     00000000
    Ref. time  31-AUG-1992                    00:00:00    SB address      80421580
                  17:26:35    Lock mgr dir wgt       0    Current CDRP    00000001
         --- ROMRDR Cluster System Block (CSB) 8062C400 ---
    State:  01 open
    Flags:  0202039A member,qf_same,cluster,qf_active,selected,status_rcvd
    Cpblty: 00000000
    SWVers: 7.0
    HWName: DEC 3000 Model 400
    
    Quorum/Votes       2/1    Next seq. number    B350    Send queue      00000000
    Quor. Disk Vote      1    Last seq num rcvd   E786    Resend queue    00000000
    CSID          000100ED    Last ack. seq num   B350    Block xfer Q.   8062C458
    Eco/Version       0/22    Unacked messages       1    CDT address     805E8870
    Reconn. time  00000000    Ack limit              3    PDT address     80618400
    Ref. count           2    Incarnation  19-AUG-1992    TQE address     00000000
    Ref. time  19-AUG-1992                    16:15:00    SB address      8062C140
                  16:17:08    Lock mgr dir wgt       0    Current CDRP    00000000
         --- VANDQ1 Cluster System Block (CSB) 8062C780 ---
    State:  01 open
    Flags:  020261AA member,qf_same,qf_noaccess,cluster,selected,status_rcvd
    Cpblty: 00000000
    SWVers: 7.0
    HWName: DEC 3000 Model 400
    Quorum/Votes       1/0    Next seq. number    32B6    Send queue      00000000
    Quor. Disk Vote      1    Last seq num rcvd   A908    Resend queue    00000000
    CSID          000100EF    Last ack. seq num   32B6    Block xfer Q.   8062C7D8
    Eco/Version       0/23    Unacked messages       1    CDT address     805E8710
    Reconn. time  00000000    Ack limit              3    PDT address     80618400
    Ref. count           2    Incarnation  17-AUG-1992    TQE address     00000000
    Ref. time  19-AUG-1992                    15:37:06    SB address      8062BCC0
                  16:21:22    Lock mgr dir wgt       0    Current CDRP    00000000
             --- SWPCTX Cluster System Block (CSB) 80D3B1C0 ---
    State:  0B local
    Flags:  030A60AA member,qf_same,qf_noaccess,selected,send_ext_status,local,status_rcvd
    Cpblty: 00000037 rm8sec,vcc,dts,cwcreprc,threads
    SWVers: V7.0
    HWName: DEC 3000 Model 400
    Quorum/Votes       1/1    Next seq. number    0000    Send queue      00000000
    Quor. Disk Vote      1    Last seq num rcvd   0000    Resend queue    00000000
    CSID          00010001    Last ack. seq num   0000    Block xfer Q.   80D3B218
    Eco/Version       0/26    Unacked messages       0    CDT address     00000000
    Reconn. time  00000000    Ack limit              0    PDT address     00000000
    Ref. count           2    Incarnation  12-JUL-1996    TQE address     00000000
    Ref. time  16-JUL-1996                    15:36:17    SB address      80C50800
                  16:15:48    Lock mgr dir wgt       0    Current CDRP    00000001

    This example illustrates the default output of the SHOW CLUSTER command.

  2. SDA> SHOW CLUSTER/SCS
    OpenVMS Cluster data structures
    --------------------------
    
                    --- SCS Listening Process Directory ---
    
    Entry Address     Connection ID     Process Name           Information
    -------------     -------------     ------------           -----------
    
      80C71EC0          74D20000        SCS$DIRECTORY          Directory Server
      80C72100          74D20001        MSCP$TAPE              NOT PRESENT HERE
      80E16940          74D20002        MSCP$DISK              MSCP$DISK
      80E23B40          74D20003        VMS$SDA_AXP            Remote SDA
      80E23B40          74D20003        VMS$SDA_AXP            Remote SDA
      80E25540          74D20004        VMS$VAXcluster         ................
      80E29E80          74D20005        SCA$TRANSPORT
      813020C0          74D20053        PATHWORKScluster       .....TurboServer
    
                       --- SCS Systems Summary ---
    
      SB Address     Node      Type       System ID         Paths
      ----------     ----      ----       ---------         -----
    
      8493BC00      ARUSHA     VMS       000000004CA1         2
      80E23800      HSJ201     HSJ       4200101A1B20         1
      80E3FF40      ORNOT      VMS       000000004CA7         2
      80E43F40      LOADQ      VMS       000000004C31         2
      80E473C0      HSJ300     HSJ       420010051D20         1
      80E47CC0      HSJ101     HSJ       420010081720         1
      80E47D40      HSJ100     HSJ       4200100B1520         1
      80E478C0      HSJ600     HSJ       420010070920         1
      80E49180      HSJ401     HSJ       4200100D0320         1
      80E47DC0      HSJ301     HSJ       420010091F20         1
      80E47E40      HSJ601     HSJ       4200100A0B20         1
      80E49500      HSJ400     HSJ       4200100C0120         1
      80E5BF80      CHOBE      VMS       000000004CD6         2
      80E5F080      ETOSHA     VMS       000000004CF3         2
      80E5FC00      VMS        VMS       000000004C7A         2
      80E4FF80      HSJ501     HSJ       4200101C0720         1
      80E5FD80      HSJ200     HSJ       420010191920         1
      80E5FE80      HSJ500     HSJ       4200101B0520         1
      80E5FE00      IPL31      VMS       000000004F52         2
      80E59F80      ZAPNOT     VMS       000000004CBB         2
      80E61F80      ALTOS      VMS       000000004D0F         2
      80E72000      TSAVO      VMS       000000004CFE         2
      80ED5D00      SLYTHE     VMS       000000004DD1         1
      80EDDD00      AZSUN      VMS       000000004D56         1
      80EDDE00      CALSUN     VMS       000000004EA4         1
      80EDFC00      4X4TRK     VMS       00000000FF26         1
      80EE93C0      GNRS       VMS       00000000FC2B         1
      80EE94C0      IXIVIV     VMS       000000004E56         1
      80EF1A80      CLAIR      VMS       000000004CDF         1
      80EF1C00      INT4       VMS       00000000FD70         1
      80EFDF80      SCOP       VMS       00000000FC87         1
      80EFFAC0      MOCKUP     VMS       00000000FCD5         1
    
                        --- ARUSHA System Block (SB) 8493BC00 ---
    
    System ID            000000004CA1    Local software type          VMS
    Max message size              216    Local software vers.         V7.2
    Max datagram size             576    Local software incarn.   DF4AC300
    Local hardware type          ALPH                             009F7570
    Local hardware vers. 000000000003    SCS poller timeout           5AD3
                         040400000000    SCS poller enable mask         27
    Status:  00000000
    
                        --- Path Block (PB) 80E55F80 ---
    
                    Status:  0020  credit
    
    Remote sta. addr.    000000000016    Remote port type          00000010
    Remote state                 ENAB    Number of data paths             2
    Remote hardware rev.     00000008    Cables state            A-OK B-OK
    Remote func. mask        ABFF0D00    Local state                   OPEN
    Reseting port                  16    Port dev. name               PNA0
    Handshake retry cnt.            2    SCS MSGBUF address        80E4C528
    Msg. buf. wait queue     80E55FB8    PDT address               80E2A180
    
                        --- Path Block (PB) 80ED0900 ---
    
                    Status:  0020  credit
    
    Remote sta. addr.    0000000000DF    Remote port type                NI
    Remote state                 ENAB    Number of data paths             2
    Remote hardware rev.     00000104    Cables state            A-OK B-OK
    Remote func. mask        83FF0180    Local state                   OPEN
    Reseting port                  00    Port dev. name               PEA0
    Handshake retry cnt.            3    SCS MSGBUF address        80ED19A0
    Msg. buf. wait queue     80ED0938    PDT address               80EC3C70
    
       .
       .
       .
    

    This example illustrates the output of the SHOW CLUSTER /SCS command.

4.35. SHOW CONNECTIONS

Displays information about all active connections between System Communications Services (SCS) processes or a single connection.

Format

SHOW CONNECTIONS [ {/ADDRESS=cdt-address | /NODE=name | /SYSAP=name } ]

Parameters

None.

Qualifiers

/ADDRESS=cdt-address

Displays information contained in the connection descriptor table (CDT) for a specific connection. You can find the cdt-address for any active connection on the system in the CDT summary page display of the SHOW CONNECTIONS command. In addition, CDT addresses are stored in many individual data structures related to SCS connections. These data structures include class driver request packets (CDRPs) and unit control blocks (UCBs) for class drivers that use SCS, and cluster system blocks (CSBs) for the connection manager.

/NODE=name

Displays all CDTs associated with the specified remote SCS node name.

/SYSAP=name

Displays all CDTs associated with the specified local SYSAP.

Description

The SHOW CONNECTIONS command provides a series of displays.

The CDT summary page lists information regarding each connection on the local system, including the following:

  • CDT address

  • Name of the local process with which the CDT is associated

  • Connection ID

  • Current state

  • Name of the remote node (if any) to which it is currently connected

The CDT summary page concludes with a count of CDTs that are free and available to the system.

SHOW CONNECTIONS next displays a page of detailed information for each active CDT listed previously.

Example

  1. SDA> SHOW CONNECTIONS
                  --- CDT Summary Page ---
    CDT Address   Local Process     Connection ID     State       Remote Node
    -----------   -------------     -------------     -----       -----------
     805E7ED0     SCS$DIRECTORY       FF120000        listen
     805E8030     MSCP$TAPE           FF120001        listen
     805E8190     VMS$VMScluster      FF120002        listen
     805E82F0     MSCP$DISK           FF120003        listen
     805E8450     SCA$TRANSPORT       FF120004        listen
     805E85B0     MSCP$DISK           FF150005        open         VANDQ1
     805E8710     VMS$VMScluster      FF120006        open         VANDQ1
     805E8870     VMS$VMScluster      FF120007        open         ROMRDR
     805E89D0     MSCP$DISK           FF120008        open         ROMRDR
     805E8C90     VMS$DISK_CL_DRVR    FF12000A        open         ROMRDR
     805E8DF0     VMS$DISK_CL_DRVR    FF12000B        open         VANDQ1
     805E8F50     VMS$TAPE_CL_DRVR    FF12000C        open         VANDQ1
    Number of free CDT's:  188
              --- Connection Descriptor Table (CDT) 80C44850 ---
    State:  0001 listen               Local Process:        MSCP$TAPE
    Blocked State:  0000
    Local Con. ID   899F0003    Datagrams sent         0    Message queue   80C4488C
    Remote Con. ID  00000000    Datagrams rcvd         0    Send Credit Q.  80C44894
    Receive Credit         0    Datagram discard       0    PB address      00000000
    Send Credit            0    Message Sends          0    PDT address     00000000
    Min. Rec. Credit       0    Message Recvs          0    Error Notify    822FFCC0
    Pend Rec. Credit       0    Mess Sends NoFP        0    Receive Buffer  00000000
    Initial Rec. Credit    0    Mess Recvs NoFP        0    Connect Data    00000000
    Rem. Sta.   000000000000    Send Data Init.        0    Aux. Structure  00000000
    Rej/Disconn Reason     0    Req Data Init.         0    Fast Recvmsg Rq 00000000
    Queued for BDLT        0    Bytes Sent             0    Fast Recvmsg PM 00000000
    Queued Send Credit     0    Bytes rcvd             0    Change Affinity 00000000
                                Total bytes map        0
          --- Connection Descriptor Table (CDT) 805E8030 ---
    State:  0001 listen           Local Process:        MSCP$TAPE
    Blocked State:  0000
    Local Con. ID   FF120001    Datagrams sent         0    Message queue   805E8060
    Remote Con. ID  00000000    Datagrams rcvd         0    Send Credit Q.  805E8068
    Receive Credit         0    Datagram discard       0    PB address      00000000
    Send Credit            0    Messages Sent          0    PDT address     00000000
    Min. Rec. Credit       0    Messages Rcvd.         0    Error Notify    804540D0
    Pend Rec. Credit       0    Send Data Init.        0    Receive Buffer  00000000
    Initial Rec. Credit    0    Req Data Init.         0    Connect Data    00000000
    Rem. Sta.   000000000000    Bytes Sent             0    Aux. Structure  00000000
    Rej/Disconn Reason     0    Bytes rcvd             0
    Queued for BDLT        0    Total bytes map        0
    Queued Send Credit     0
       .
       .
       .
    

    This example shows the default output of the SHOW CONNECTIONS command.

4.36. SHOW CPU

When analyzing a dump, displays information about the state of a CPU at the time of the system failure. SHOW CPU is only valid when you are analyzing a crash dump. It is not a valid command when you are analyzing the running system, because all the CPU-specific information may not be available. If invoked when you are analyzing a running system, SHOW CPU will only list the CPU database address(es) for the specified CPU or all CPUs.

Format

SHOW CPU [cpu-id | /FIRST | /NEXT | /PRIMARY]

Parameter

cpu-id

Numeric value indicating the identity of the CPU for which context information is to be displayed. If you specify the cpu-id parameter, the SHOW CPU command performs an implicit SET CPU command, making the CPU indicated by cpu-id the current CPU for subsequent SDA commands.

If you do not specify a cpu-id, the state of the SDA current CPU is displayed.

If you specify the cpu-id of a CPU 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

See the description of the SET CPU command and Section 2.5, “SDA Context” for information on how this can affect the CPU context---and process context---in which SDA commands execute.

Qualifiers

/FIRST

The state of the lowest numbered CPU (not necessarily the primary CPU) is displayed.

/NEXT

The state of the next higher numbered CPU is displayed. SDA skips CPUs not in the configuration at the time of system failure. If there are no further CPUs, SDA returns an error.

/PRIMARY

The state of the primary CPU is displayed.

Description

The SHOW CPU command displays system failure information about the CPU specified by cpu-id or, by default, the SDA current CPU, as defined in Section 2.5, “SDA Context”.

The SHOW CPU command produces several displays. The first display is a brief description of the system failure and its environment that includes the following:

  • Reason for the bugcheck.

  • Name of the currently executing process. If no process has been scheduled on this CPU, SDA displays the following message:

    Process currently executing: no processes currently scheduled on the processor
  • File specification of the image executing within the current process (if there is a current process).

  • Interrupt priority level (IPL) of the CPU at the time of the system failure.

  • The CPU database address.

  • The CPU's capability set.

  • On Integrity server systems, the Exception Frame Summary.

On Alpha, the register display follows. First the general registers are output, showing the contents of the CPU's integer registers (R0 to R30), and the AI, RA, PV, FP, PC, and PS at the time of the system failure.

The Alpha processor registers display consists of the following parts:

  • Common processor registers

  • Processor-specific registers

  • Stack pointers

The first part of the processor registers display includes registers common to all Alpha processors, which are used by the operating system to maintain the current process virtual address space, system space, or other system functions. This part of the display includes the following registers:

  • Hardware privileged context block base register (PCBB)

  • System control block base register (SCBB)

  • Software interrupt summary register (SISR)

  • Address space number register (ASN)

  • AST summary register (ASTSR)

  • AST enable register (ASTEN)

  • Interrupt priority level register (IPL)

  • Processor priority level register (PRBR)

  • Page table base register (PTBR)

  • Virtual page table base register (VPTB)

  • Floating-point control register (FPCR)

  • Machine check error summary register (MCES)

On Integrity server systems, the register display is in the form of the contents of the exception frame generated by the bugcheck. See SHOW CRASH for more details.

The last part of the display includes the four stack pointers: the pointers of the kernel, executive, supervisor, and user stacks (KSP, ESP, SSP, and USP, respectively). In addition, on Integrity servers, the four register stack pointers are displayed: KBSP, EBSP, SBSP, UBSP.

The SHOW CPU command concludes with a listing of the spinlocks, if any, owned by the CPU at the time of the system failure, reproducing some of the information given by the SHOW SPINLOCKS command. The spinlock display includes the following information:

  • Name of the spinlock.

  • Address of the spinlock data structure (SPL).

  • The owning CPU's CPU ID.

  • IPL of the spinlock.

  • Indication of the depth of this CPU's ownership of the spinlock. A number greater than 1 indicates that this CPU has nested acquisitions of the spinlock.

  • Rank of the spinlock.

  • Timeout interval for spinlock acquisition (in terms of 10 milliseconds).

  • Shared array (shared spinlock context block pointers)

Examples

  1. SDA> SHOW CPU 0
    CPU 00 Processor crash information
    ----------------------------------
    CPU 00 reason for Bugcheck: CPUEXIT, Shutdown requested by another CPU
    
    Process currently executing on this CPU:   None
    
    Current IPL: 31  (decimal)
    
    CPU database address:  81414000
    
    CPUs Capabilities:    PRIMARY,QUORUM,RUN
    
    General registers:
    
    R0   = FFFFFFFF.81414000  R1   = FFFFFFFF.81414000  R2   = 00000000.00000000
    R3   = FFFFFFFF.810AD960  R4   = 00000000.01668E90  R5   = 00000000.00000001
    R6   = 66666666.66666666  R7   = 77777777.77777777  R8   = FFFFFFFF.814FB040
    R9   = 99999999.99999999  R10  = FFFFFFFF.814FB0C0  R11  = BBBBBBBB.BBBBBBBB
    R12  = CCCCCCCC.CCCCCCCC  R13  = FFFFFFFF.810AD960  R14  = FFFFFFFF.81414018
    R15  = 00000000.00000004  R16  = 00000000.000006AC  R17  = 00000000.00000047
    R18  = 00000000.00000000  R19  = 00000000.00000000  R20  = FFFFFFFF.8051A494
    R21  = 00000000.00000000  R22  = 00000000.00000001  R23  = 00000000.00000010
    R24  = FFFFFFFF.81414000  AI   = FFFFFFFF.81414000  RA   = FFFFFFFF.81006000
    PV   = 00000001.FFFFFFFF  R28  = 00000000.00000000  FP   = FFFFFFFF.88ABDFD0
    PC   = FFFFFFFF.8009C95C  PS   = 18000000.00001F04
    
    Processor Internal Registers:
    
    ASN  = 00000000.00000000                     ASTSR/ASTEN =          00000000
    IPL  =          0000001F  PCBB = 00000000.01014080  PRBR = FFFFFFFF.81414000
    PTBR = 00000000.0000FFBF  SCBB = 00000000.000001E8  SISR = 00000000.00000100
    VPTB = FFFFFEFC.00000000  FPCR = 00000000.00000000  MCES = 00000000.00000000
    
            KSP    = FFFFFFFF.88ABDCD8
            ESP    = FFFFFFFF.88ABF000
            SSP    = FFFFFFFF.88AB9000
            USP    = FFFFFFFF.88AB9000
    
                    Spinlocks currently owned by CPU 00
    
    SCS                                    Address        810AF300
    Owner CPU ID       00000000            IPL            00000008
    Ownership Depth    00000000            Rank           0000001A
    Timeout Interval   002DC6C0            Share Array    00000000
    

    This example shows the default output of the SHOW CPU command on an Alpha system.

4.37. SHOW CRASH

Provides system information identifying a running system, or displays information about the state of the system at the time of a system failure.

Format

SHOW CRASH [/ALL | /CPU=n]

Parameters

None.

Qualifiers

/ALL

Displays exception data for all CPUs. By default, the registers (on Alpha) or exception frame contents (on Integrity servers) are omitted from the display for any CPUs with CPUEXIT or DBGCPUEXIT bugchecks.

/CPU=n

Allows exception data to be displayed from CPUs other than the one considered as the crash CPU when more than one CPU crashes simultaneously.

Description

The SHOW CRASH command has two different functions, depending on whether you use it to analyze a running system or a system failure.

When used during the analysis of a running system, the SHOW CRASH command produces a display that describes the system and the version of OpenVMS that it is running. The system crash information display contains the following information:

  • Name and version number of the operating system

  • Major and minor IDs of the operating system

  • Identity of the OpenVMS system, including an indication of its cluster membership

  • CPU ID of the primary CPU

  • Address of all CPU databases

When used during the analysis of a system failure, the SHOW CRASH command produces several displays that identify the system and describe its state at the time of the failure.

If the current CPU context for SDA is not that of the processor that signaled the bugcheck, or the CPU specified with the /CPU=n qualifier, the SHOW CRASH command first performs an implicit SET CPU command to make that processor the current CPU for SDA. (See the description of the SET CPU command and Section 2.5, “SDA Context” for a discussion of how this can affect the CPU context---and process context---in which SDA commands execute.)

The system crash information display in this context provides the following information:

  • Date and time of the system failure.

  • Name and version number of the operating system.

  • Major and minor IDs of the operating system.

  • Identity of the system.

  • CPU IDs of both the primary CPU and the CPU that initiated the bugcheck. In a uniprocessor system, these IDs are identical.

  • Bitmask of the active and available CPUs in the system.

  • For each active processor in the system, the address of its CPU database and the name of the bugcheck that caused the system failure. Generally, there will be only one significant bugcheck in the system. All other processors typically display the following as their reason for taking a bugcheck:

    CPUEXIT, Shutdown requested by another CPU

Subsequent screens of the SHOW CRASH command display information about the state of each active processor on the system at the time of the system failure. The information in these screens is identical to that produced by the SHOW CPU command, including the registers (on Alpha), exception frame (on Integrity servers), stack pointers, and records of spinlock ownership. The first such screen presents information about the processor that caused the failure; others follow according to the numeric order of their CPU IDs. For the processor that caused the failure, if an exception bugcheck (INVEXCEPTN, SSRVEXCEPT, FATALEXCEPT, UNXSIGNAL) or, for Integrity servers only, also a KRNLSTAKNV or DEBUGCRASH bugcheck has occurred, SHOW CRASH first displays the exception frame from the original exception. If /ALL is not specified, the registers (on Alpha) or exception frame contents (on Integrity servers) are omitted from the display for any CPUs with CPUEXIT or DBGCPUEXIT bugchecks.

SHOW CRASH displays the original exception in process dumps.

Examples

  1. SDA> SHOW CRASH
    Version of system: OpenVMS (TM) Alpha Operating System, Version X901-SSB
    
    System Version Major ID/Minor ID: 3/0
    
    VMScluster node: VMSTS6, a
    
    Crash CPU ID/Primary CPU ID:  00/00
    
    Bitmask of CPUs active/available:  00000001/00000001
    
    CPU bugcheck codes:
            CPU 00 -- INVEXCEPTN, Exception while above ASTDEL
    
    System State at Time of Exception
    ---------------------------------
    Exception Frame:
    ----------------
            R2  = FFFFFFFF.810416C0  SCS$GA_LOCALSB+005C0
            R3  = FFFFFFFF.81007E60  EXE$GPL_HWRPB_L
            R4  = FFFFFFFF.850AEB80
            R5  = FFFFFFFF.81041330  SCS$GA_LOCALSB+00230
            R6  = FFFFFFFF.81038868  CON$INITLINE
            R7  = FFFFFFFF.81041330  SCS$GA_LOCALSB+00230
            PC  = FFFFFFFF.803EF81C  SYS$TTDRIVER+0F81C
            PS  = 30000000.00001F04
    
             FFFFFFFF.803EF80C:     STL             R24,#X0060(R5)
             FFFFFFFF.803EF810:     LDL             R28,#X0138(R5)
             FFFFFFFF.803EF814:     BIC             R28,R27,R28
             FFFFFFFF.803EF818:    00000138
       PC => FFFFFFFF.803EF81C:     HALT
             FFFFFFFF.803EF820:     HALT
             FFFFFFFF.803EF824:     BR              R31,#XFF0000
             FFFFFFFF.803EF828:     LDL             R24,#X0138(R5)
             FFFFFFFF.803EF82C:     BIC             R24,#X40,R24
    
       PS =>
             MBZ SPAL      MBZ    IPL VMM MBZ CURMOD INT PRVMOD de
               0   30   00000000000 1F  0   0   KERN   1   KERN
    
    Signal Array
    ------------
            Length = 00000003
            Type   = 0000043C
            Arg    = FFFFFFFF.803EF81C  SYS$TTDRIVER+0F81C
            Arg    = 30000000.00001F04
    %SYSTEM-F-OPCDEC, opcode reserved to Digital fault at PC=FFFFFFFF803EF81C, PS=00001F04
    
    Saved Scratch Registers in Mechanism Array
    ------------------------------------------
    R0   = 00000000.00000000  R1   = FFFFFFFF.811998B8  R16  = 00000000.00001000
    R17  = FFFFFFFF.8119B1F0  R18  = 00000000.00000010  R19  = FFFFFFFF.810194F0
    R20  = 00000000.00000000  R21  = 0000000F.00000000  R22  = 00000000.00000000
    R23  = 00000000.00004000  R24  = 00000000.00001000  R25  = 00000000.00000000
    R26  = FFFFFFFF.81041474  R27  = 00000000.00004000  R28  = 00000000.00001000
    
       .
       .
       .
                               (CPU-specific display omitted)
       .
       .
       .
    

    This long display reflects the output of the SHOW CRASH command within the analysis of a system failure on an OpenVMS Alpha system.

  2. SDA> SHOW CRASH
    System crash information
    ------------------------
    Time of system crash: 12-OCT-2000 11:27:58.02
    
    Version of system: OpenVMS (TM) Alpha Operating System, Version X74B-FT2
    
    System Version Major ID/Minor ID: 3/0
    
    System type: DEC 3000 Model 400
    
    Crash CPU ID/Primary CPU ID:  00/00
    
    Bitmask of CPUs active/available:  00000001/00000001
    
    CPU bugcheck codes:
            CPU 00 -- PGFIPLHI, Pagefault with IPL too high
    
    System State at Time of Page Fault:
    -----------------------------------
    
    Page fault for address 00000000.00046000 occurred at IPL: 8
    Memory management flags: 00000000.00000001 (instruction fetch)
    
    Exception Frame:
    ----------------
            R2  = 00000000.00000003
            R3  = FFFFFFFF.810B9280  EXCEPTION_MON+39C80
            R4  = FFFFFFFF.81564540  PCB
            R5  = 00000000.00000088
            R6  = 00000000.000458B0
            R7  = 00000000.7FFA1FC0
            PC  = 00000000.00046000
            PS  = 20000000.00000803
    
             00000000.00045FF0:     LDQ             R2,#X0050(FP)
             00000000.00045FF4:     LDQ             R12,#X0058(FP)
             00000000.00045FF8:     LDQ             R13,#X0060(FP)
             00000000.00045FFC:     LDQ             R14,#X0068(FP)
       PC => 00000000.00046000:     BIS             R1,R17,R1
             00000000.00046004:     BIS             R31,#X01,R25
             00000000.00046008:     STQ_U           R1,#X0002(R10)
             00000000.0004600C:     BSR             R26,#X00738C
             00000000.00046010:     LDQ_U           R16,#X0002(R10)
    
       PS =>
             MBZ SPAL      MBZ    IPL VMM MBZ CURMOD INT PRVMOD de
              0   20   00000000000 08  0   0   KERN   0   USER
    
       .
       .
       .
                                            (CPU-specific display omitted)
       .
       .
       .
    

    This display reflects the output of a SHOW CRASH command within the analysis of a PGFIPLHI bugcheck on an OpenVMS Alpha system.

  3. SDA> SHOW CRASH /ALL
    System crash information
    ------------------------
    
    Time of system crash:  1-DEC-2003 13:31:10.50
    
    
    Version of system: OpenVMS I64 Operating System, Version XA2T-J2S
    
    System Version Major ID/Minor ID: 3/0
    
    
    System type: HP rx2600  (900MHz/1.5MB)
    
    Crash CPU ID/Primary CPU ID:  01/00
    
    Bitmask of CPUs active/available:  00000003/00000003
    
    
    CPU bugcheck codes:
            CPU 01 -- database address 8396DD80 -- SSRVEXCEPT, Unexpected system se
    
            1 other -- CPUEXIT, Shutdown requested by another CPU
                    CPU 00 -- database address 83864000
    
    
    
    System State at Time of Original Exception
    ------------------------------------------
    
    Exception Frame at 00000000.7FF43BD0
    ------------------------------------
    
     IPL             =                 00
     TRAP_TYPE       =           00000008 Access control violation fault
     IVT_OFFSET      =           00000800 Data TLB Fault
     IIP             =  00000000.00020120 SYS$K_VERSION_08+00100
     IIPA            =  00000000.00020110 SYS$K_VERSION_08+000F0
     IFA             =  00000000.00000000
    
     IPSR            =  00001010.0A0A6010
    
                        RT  TB  LP  DB  SI  DI  PP  SP  DFH DFL DT  PK  I   IC  MFH MFL AC  BE  UP
                        1   0   1   0   0   0   0   0   1   0   1   0   1   1   0   1   0   0   0
                        IA  BN  ED  RI  SS  DD  DA  ID  IT  MC  IS  CPL
                        0   1   0   0   0   0   0   0   1   0   0   0
    
     PREVSTACK       =                 00
     BSP             =  00000000.7FF12240
     BSPSTORE        =  00000000.7FF120C0
     BSPBASE         =  00000000.7FF120C0
     RNAT            =  00000000.00000000
    
     RSC             =  00000000.00000003 LOADRS   BE   PL   MODE
                                          0000     0    0    Eager
    
     PFS             =  00000000.00000B9F
    
                        PPL    PEC    RRB.PR   RRB.FR   RRB.GR     SOR       SOL           SOF
                        0       0.       0.       0.       0.       0.    23. (32-54)   31. (32-62)
    
     FLAGS           =                 00
     STKALIGN        =           000002D0
     PREDS           =  00000000.FF562AA3
     IHA             =  FFFFFFFF.7FF3E120
     INTERRUPT_DEPTH =                 00
    
     ISR             =  00000804.00000000
    
    
                        ED  EI  SO  NI  IR  RS  SP  NA  R   W   X   CODE
                        1   0   0   0   0   0   0   0   1   0   0   0000
    
    
     ITIR            =  00000000.FFFF0934 KEY       PS
                                          FFFF09    0D
    
     IFS             =  80000000.00000593
    
    
                        Valid         RRB.PR   RRB.FR   RRB.GR     SOR       SOL           SOF
                        1                0.       0.       0.       0.    11. (32-42)   19. (32-50)
    
    
     B0              =  FFFFFFFF.80241AE0 AMAC$EMUL_CALL_NATIVE_C+00340
     B1              =  80000000.FFD643B0
     B2              =  00000000.00000000
     B3              =  00000000.00000000
     B4              =  00000000.00000000
     B5              =  00000000.7FF43E38
     B6              =  00000000.00020110 SYS$K_VERSION_08+000F0
     B7              =  FFFFFFFF.80A28170 NSA$CHECK_PRIVILEGE_C
    
     GP              =  00000000.00240000
     R2              =  FFFFFFFF.839B8098 PSB+00058
     R3              =  E0000000.00000068
     R4              =  FFFFFFFF.839731C0 PCB
     R5              =  00000000.00000008
     R6              =  00000000.7FF43F40
     R7              =  00000000.00000002
     R8              =  00000000.00010000 SYS$K_VERSION_07
     R9              =  00000000.00000020
     R10             =  00000000.0000003E
     R11             =  00000000.00000001
    
     KSP             =  00000000.7FF43EA0
    
     R13             =  00000000.00000000
     R14             =  00000000.00040008 UCB$M_SUPMVMSG+00008
     R15             =  00000000.00020110 SYS$K_VERSION_08+000F0
     R16             =  FFFFFFFF.802417A0 AMAC$EMUL_CALL_NATIVE_C
     R17             =  00000000.00010004 UCB$M_DELETEUCB+00004
     R18             =  00000000.00040000 UCB$M_CHAN_TEAR_DOWN
     R19             =  00000000.00040000 UCB$M_CHAN_TEAR_DOWN
     R20             =  00000000.7FF43F38
     R21             =  00000000.7FF43F80
     R22             =  00000000.00040000 UCB$M_CHAN_TEAR_DOWN
     R23             =  00000000.00000000
     R24             =  00000000.00000000
     R25             =  00000000.00000000
     R26             =  00000000.00000000
     R27             =  00000000.FF565663
     R28             =  00000000.00000003
     R29             =  00000000.7FF43EA0
     R30             =  000007FD.C0000300
     R31             =  FFFFFFFF.806549D0 PROCESS_MANAGEMENT_MON+677D0
    
     R32             =  00000000.7AC9DBC0
     R33             =  00000000.00000001
     R34             =  00000000.7FFCF88C MMG$IMGHDRBUF+0008C
     R35             =  FFFFFFFF.83973528 ARB+00230
     R36             =  00000000.00000000
     R37             =  00000000.00000000
     R38             =  FFFFFFFF.80A28410 NSA$CHECK_PRIVILEGE_C+002A0
     R39             =  00000000.00000915
     R40             =  FFFFFFFF.82D01640 SYSTEM_PRIMITIVES+00221440
     R41             =  00000000.00000B9F
     R42             =  00000000.7FF43EA0
    
     R43/OUT0        =  00000000.7FFCF87C MMG$IMGHDRBUF+0007C
     R44/OUT1        =  E0000000.00000068
     R45/OUT2        =  00000000.00000000
     R46/OUT3        =  00000000.FF561663
     R47/OUT4        =  00000000.7FFCDA68 CTL$AG_CLIDATA
     R48/OUT5        =  00000000.7FFCDBE8 CTL$AG_CLIDATA+00180
     R49/OUT6        =  00000000.00000003
     R50/OUT7        =  FFFFFFFF.839731C0 PCB
    
     NATMASK         =               003A
     NATS            =  00000000.00000000
     CSD             =  CFFFFFFF.00000000
     SSD             =  CCCC0BAD.BAD0CCCC
     LC              =  00000000.00000000
     EC              =  00000000.00000000
    
     FPSR            =  0009804C.0270033F SF3    SF2    SF1    SF0    TRAPS
                                          004C   004C   004E   000C   3F
    
     F6              =  0FFC9.C0000000.00000000
     F7              =  1003E.00000000.00000018
     F8              =  1000B.FF000000.00000000
     F9              =  10007.A8000000.00000000
     F10             =  10003.C2492492.49249249
     F11             =  0FFF6.C30C30C3.0C30C30C
    
     PPREVMODE        =                 03
    
    Instruction Stream:
    -------------------
                                        { .mfb
             SYS$K_VERSION_08+000E0:                nop.m       000000
                                                    nop.f       000000
                                                    br.ret.sptk.many b0 ;;
                                        }
                                        { .mii
             SYS$K_VERSION_08+000F0:                alloc       r41 = ar.pfs,  0B, 08, 00
                                                    mov         r29 = r12
                                                    mov         r42 = r12
                                        }
                                        { .mmi
       PC => SYS$K_VERSION_08+00100:                ld4         r24 = [r0] ;;
                                                    nop.m       000000
                                                    sxt4        r24 = r24 ;;
                                        }
                                        { .mii
             SYS$K_VERSION_08+00110:                nop.m       000000
    
                                                    sxt4        r14 = r24 ;;
                                                    cmp.eq      p6, p7 = r14, r0
                                        }
                                        { .mfb
             SYS$K_VERSION_08+00120:                nop.m       000000
                                                    nop.f       000000
                                               (p6) br.cond.dpnt.few 0000060
                                        }
    
    Signal Array
    ------------
            Length = 00000005
            Type   = 0000000C
            Arg    = 00000000.00000000
            Arg    = 00000000.00000000
            Arg    = 00000000.00020120
            Arg    = 00000000.00000003
    %SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=0000000000000000,
                                                        PC=0000000000020120, PS=00000003
    
    
    CPU 01 Processor state at time of SSRVEXCEPT bugcheck
    -----------------------------------------------------
    
    
    CPU 01 reason for Bugcheck: SSRVEXCEPT, Unexpected system service exception
    
    
    Process currently executing on this CPU: SYSTEM
    
    
    Current image file: IPFEX3$DKB200:[SYS0.][SYSMGR]X.EXE;2
    
    
    Current IPL: 0  (decimal)
    
    
    CPU database address: 8396DD80
    
    
    CPUs Capabilities:    QUORUM,RUN
    
    
    Exception Frame at 00000000.7FF435B0
    ------------------------------------
    
        IPL              =                 00
        TRAP_TYPE        =           00000041      Bugcheck Breakpoint Trap
        IVT_OFFSET       =           00002C00      Break Instruction
        IIP              =  FFFFFFFF.80491E90      EXCEPTION_MON+5E690
        IIPA             =  FFFFFFFF.80491E80      EXCEPTION_MON+5E680
        IFA              =  00000000.00030000      SYS$K_VERSION_01
    
    .
    .
    .
    
        IIM              =  00000000.00100002      BREAK$C_SYS_BUGCHECK
    
        PPREVMODE        =                 00
    
        KR0              =  00000000.00000000
        KR1              =  00000000.00000000
        KR2              =  00000000.00000000
        KR3              =  00000000.00000003
        KR4              =  00000000.00000000
        KR5 (Next Timer) =  000000BC.DEA95C24
        KR6 (CPUdb VA)   =  FFFFFFFF.8396DD80
        KR7 (Slot VA)    =  FFFFFFFF.86910000
    
        KSP              =  00000000.7FF43880
        ESP              =  00000000.7FF68000
        SSP              =  00000000.7FFAC000
        USP              =  00000000.7AC9DB60
    
                    No spinlocks currently owned by CPU 01
    
    
    
    CPU 00 Processor state at time of CPUEXIT bugcheck
    --------------------------------------------------
    
    
    CPU 00 reason for Bugcheck: CPUEXIT, Shutdown requested by another CPU
    
    
    Process currently executing on this CPU:   None
    
    Current IPL: 31  (decimal)
    
    
    CPU database address: 83864000
    
    
    CPUs Capabilities:    PRIMARY,QUORUM,RUN
    
    
    Exception Frame at FFFFFFFF.8696F9F0
    ------------------------------------
    
        IPL              =                 1F
        TRAP_TYPE        =           00000041      Bugcheck Breakpoint Trap
        IVT_OFFSET       =           00002C00      Break Instruction
        IIP              =  FFFFFFFF.802F62F0      SYSTEM_SYNCHRONIZATION+43BF0
        IIPA             =  FFFFFFFF.802F62F0      SYSTEM_SYNCHRONIZATION+43BF0
        IFA              =  FFFFFFFF.86A280C0
    
    .
    .
    .
    
        IIM              =  00000000.00100002      BREAK$C_SYS_BUGCHECK
    
        PPREVMODE        =                 00
    
        KR0              =  00000000.203D0000
        KR1              =  00000000.60000000
        KR2              =  00000000.00000000
        KR3              =  00000000.0001001F
        KR4              =  00000000.00000000
        KR5 (Next Timer) =  000000C4.FDFE03C8
        KR6 (CPUdb VA)   =  FFFFFFFF.83864000
        KR7 (Slot VA)    =  FFFFFFFF.8690F000
    
        KSP              =  FFFFFFFF.8696FCC0
        ESP              =  FFFFFFFF.86971000
        SSP              =  FFFFFFFF.86957000
        USP              =  FFFFFFFF.86957000
    
                    No spinlocks currently owned by CPU 00
    

    This example from an OpenVMS Integrity server system shows summary information on the crash: the time it occurred, its OpenVMS version, hardware type, and bugcheck codes. This is followed by the exception frame from the exception that triggered the crash, the instruction stream active at the time of the exception, and the signal array that describes the exception. The exception frame from the bugcheck triggered by the original exception is then displayed (that is, the bugcheck on the crash CPU) followed by the bugcheck exception frame for the other CPU in the system.

4.38. SHOW DEVICE

Displays a list of all devices in the system and their associated data structures, or displays the data structures associated with a given device or devices.

Format

SHOW DEVICE [ device-name[:] | /ADDRESS=ucb-address | /BITMAP | /CDT=cdt_address | /CHANNELS | /HOMEPAGE | /PDT | /UCB=ucb-address]

Parameters

device-name

Device or devices for which data structures are to be displayed. The following table lists several uses of the device-name parameter:

To display the structures for:Take the following action:
All devices in the systemDo not specify a device-name (for example, SHOW DEVICE).
A single deviceSpecify an entire device-name (for example, SHOW DEVICE VTA20).
All devices of a certain type on a single controllerSpecify only the device type and controller designation (for example, SHOW DEVICE RTA or SHOW DEVICE RTB).
All devices of a certain type on any controllerSpecify only the devicetype (for example, SHOW DEVICE RT).
All devices whose names begin with a certain character or character stringSpecify the character or character string (for example, SHOW DEVICE D).
All devices on a single node or HSCSpecify only the node name or HSC name (for example, SHOW DEVICE GREEN$).
All devices with a certain allocation classSpecify the allocation class including leading and trailing $, for example, SHOW DEVICE $63$.

A colon (:) at the end of a device name is optional.

Note

All qualifiers specific to Memory Channel (CHANNELS, HOMEPAGE, and PDT) are disabled for OpenVMS Integrity server systems.

Qualifiers

/ADDRESS=ucb-address

Indicates the device for which data structure information is to be displayed by the address of its unit control block (UCB). The /ADDRESS qualifier is an alternate method of supplying a device name to the SHOW DEVICE command. If both the device-name parameter and the /ADDRESS qualifier appear in a single SHOW DEVICE command, SDA responds only to the parameter or qualifier that appears first. /ADDRESS is functionally equivalent to /UCB.

/BITMAP

Displays information about data structures related to Write Bitmap (WBM). Bitmaps are used by Host-Base Volume Shadowing (HBVS) for the implementation of Mini Copy and Host-Based Minimerge (HBMM). If the /BITMAP qualifier is specified with a device that is not an HBVS virtual unit, the error NOSUCHDEV is returned

A device name must be specified. If SHOW DEVICE/BITMAP DSis entered, bitmaps for all HBVS virtual units are displayed.

/CDT=cdt_address

Identifies the device by the address of its Connector Descriptor Table (CDT). This applies to cluster port devices only.

/CHANNELS

Displays information on active Memory Channel channel blocks. This qualifier is ignored for devices other than Memory Channel.

/HOMEPAGE

Displays fields from the Memory Channel Home Page. This qualifier is ignored for devices other than Memory Channel.

/PDT

Displays the Memory Channel Port Descriptor Table. This qualifier is ignored for devices other than Memory Channel.

/UCB=ucb-address

See the description of /ADDRESS, which is functionally equivalent to /UCB.

Description

The SHOW DEVICE command produces several displays taken from system data structures that describe the devices in the system configuration.

If you use the SHOW DEVICE command to display information for more than one device or one or more controllers, it initially produces the device data block (DDB) list to provide a brief summary of the devices for which it renders information in subsequent screens.

Information in the DDB list appears in five columns, the contents of which are as follows:

  • Address of the device data block (DDB)

  • Controller name

  • Name of the ancillary control process (ACP) associated with the device

  • Name of the device driver

  • Address of the driver prologue table (DPT)

The SHOW DEVICE command then produces a display of information pertinent to the device controller. This display includes information gathered from the following structures:

  • Device data block (DDB)

  • Primary channel request block (CRB)

  • Interrupt dispatch block (IDB)

  • Driver dispatch table (DDT)

If the controller is an HSC controller, SHOW DEVICE also displays information from its system block (SB) and each path block (PB).

Many of these structures contain pointers to other structures and driver routines. Most notably, the DDT display points to various routines located within driver code, such as the start I/O routine, unit initialization routine, and cancel I/O routine.

For each device unit subject to the SHOW DEVICE command, SDA displays information taken from its unit control block, including a list of all I/O request packets (IRPs) in its I/O request queue. For certain mass storage devices, SHOW DEVICE also displays information from the primary class driver data block (CDDB), the volume control block (VCB), and the ACP queue block (AQB). For units that are part of a shadow set, SDA displays a summary of shadow set membership.

As it displays information for a given device unit, SHOW DEVICE defines the symbols of the table below as appropriate:

SymbolMeaning
UCBAddress of unit control block
SBAddress of system block
ORBAddress of object rights block
DDBAddress of device data block
DDTAddress of driver dispatch table
CRBAddress of channel request block
SUDAddress of supplementary VCB data
SHADAddress of host-based shadowing data structure
AMBAssociated mailbox UCB pointer
IRPAddress of I/O request packet
2P_UCBAddress of alternate UCB for dual-pathed device
LNMAddress of logical name block for mailbox
PDTAddress of port descriptor table
CDDBAddress of class driver descriptor block for MSCP served device
2P_CDDBAddress of alternate CDDB for MSCP served device
RWAITCNTResource wait count for MSCP served device
VCBAddress of volume control block for mounted device
2P_DDBAddress of secondary DDB
VP_IRPAddress of volume processing IRP
MMBAddress of merge management block
CPYLOCKID of copier lock
VU_TOVirtual Unit Timeout (seconds)
VU_UCBUCB address of Virtual Unit
MPDEVAddress of multipath data structure
PRIMARY_UCBUCB address for primary path
CURRENT_UCBUCB address for current path

If you are examining a driver-related system failure, you may find it helpful to issue a SHOW STACK command after the appropriate SHOW DEVICE command, to examine the stack for any of these symbols. Note, however, that although the SHOW DEVICE command defines those symbols relevant to the last device unit it has displayed, and redefines symbols relevant to any subsequently displayed device unit, it does not undefine symbols. (For instance, SHOW DEVICE DUA0 defines the symbol PDT, but SHOW DEVICE MBA0 does not undefine it, even though the PDT structure is not associated with a mailbox device.) To maintain the accuracy of such symbols that appear in the stack listing, use the DEFINE command to modify the symbol name. For example:

SDA> DEFINE DUA0_PDT PDT
SDA> DEFINE MBA0_UCB UCB

See the descriptions of the READ and FORMAT commands for additional information on defining and examining the contents of device data structures.

Examples

  1. SDA> SHOW DEVICE/ADDRESS=8041E540
    OPA0                                   VT300_Series       UCB address    8041E540
    
    Device status:   00000010 online
    Characteristics: 0C040007 rec,ccl,trm,avl,idv,odv
                     00000200 nnm
    Owner UIC [000001 ,000004]  Operation count        160    ORB address    8041E4E8
          PID         00010008  Error count              0    DDB address    8041E3F8
    Class/Type           42/70  Reference count          2    DDT address    8041E438
    Def. buf. size          80  BOFF              00000001    CRB address    8041E740
    DEVDEPEND         180093A0  Byte count        0000012C    I/O wait queue 8041E5AC
    DEVDEPND2         FB101000  SVAPTE            80537B80
    DEVDEPND3         00000000  DEVSTS            00000001
    FLCK index              3A
    DLCK address      8041E880
    *** I/O request queue is empty ***

    This example reproduces the SHOW DEVICE display for a single device unit, OPA0. Whereas this display lists information from the UCB for OPA0, including some addresses of key data structures and a list of pending I/O requests for the unit, it does not display information about the controller or its device driver. To display the latter information, specify the device-name as OPA (for example, SHOW DEVICE OPA).

  2. SDA>  SHOW DEVICE DU
    I/O data structures
    -------------------
                                DDB list
                                --------
    
           Address    Controller     ACP         Driver               DPT
           -------    ----------   --------   ------------            ---
    
          80D0B3C0    BLUES$DUA     F11XQP    SYS$DKDRIVER          807735B0
          8000B2B8    RED$DUA       F11XQP    SYS$DKDRIVER          807735B0
          80D08BA0    BIGTOP$DUA    F11XQP    SYS$DKDRIVER          807735B0
          80D08AE0    TIMEIN$DUA    F11XQP    SYS$DKDRIVER          807735B0
       .
       .
       .
    Press RETURN for more.
       .
       .
       .
    

    This excerpt from the output of the SHOW DEVICE DU command illustrates the format of the DDB list. In this case, the DDB list concerns itself with those devices whose device type begins with DU. It displays devices of these types attached to various HSCs (RED$ and BLUES$) and systems in a cluster (BIGTOP$ and TIMEIN$).

4.39. SHOW DUMP

Displays formatted information from the header, error log buffers, logical memory blocks (LMBs), memory map, compression data, and a summary of the dump. Also displays hexadecimal information of individual blocks.

Format

SHOW DUMP [/ALL

| /BLOCK[=m [{:|;}n] ]

| /COLLECTION [= {ALL|n} ]

| /COMPRESSION_MAP [=m [:n[:p[{:|;}q]]]]

| /ERROR_LOGS

| /FILE = {COLLECTION | DUMP [=n]}

| /HEADER

| /LMB [= {ALL|n} ]

| /MEMORY_MAP

| /SUMMARY]

Parameters

None.

Qualifiers

/ALL

Displays the equivalent to specifying all the /SUMMARY, /HEADER, /ERROR_LOGS, /COMPRESSION_MAP, /LMB=ALL, /MEMORY_MAP, and /COLLECTION qualifiers.

/BLOCK [=m [{:|;}n] ]
Displays a hexadecimal dump of one or more blocks. You can specify ranges by using the following syntax:
no valueDisplays next block
mDisplays single block
m:nDisplays a range of blocks from m to n, inclusive
m;nDisplays a range of blocks starting at m and continuing for n blocks
/COLLECTION [= {ALL|n} ]

Displays the contents of the file identification or unwind data collection (on Integrity servers only) appended to a copy of the dump using COPY/COLLECT or written to a separate collection file using COLLECT/SAVE. By default, a summary of the collection is displayed. You can specify that the details of a single entry or all entries are to be displayed. n is the start block number of the collection entry, as displayed in the collection summary.

/COMPRESSION_MAP [=m [:n[:p[{:|;}q]]] ]

In a compressed dump, displays details of the compression data. You can specify levels of detail by using the following syntax, where m,n,p,q may each be wildcarded (*):

no valueDisplays a summary of all compression map blocks.
mDisplays contents of a single compression map block.
m:nDisplays details of single compression map entry.
m:n:pDisplays compressed and raw data for the specified compression section (item p in section m:n). Note that m:n:p may contain wildcards (*).
m:n:p:qDisplays compressed and raw data for the specified range of compression sections (items p to q inclusive in section m:n).
m:n:p;qDisplays compressed and raw data for the specified range of compression sections ( q items starting from item p in section m:n).
/ERROR_LOGS

Displays a summary of the error log buffers.

/FILE = {COLLECTION | DUMP [=n]}

If analyzing multiple dump files from a partial dump copy, or if a separate collection file is in use, the /FILE qualifier indicates whether the SHOW DUMP command applies to one of the dump files or to the collection file.

If /FILE is not specified, by default, the SHOW DUMP/SUMMARY, SHOW DUMP/HEADER, SHOW DUMP/COLLECTION, and SHOW DUMP/ALL commands apply to all open files, and the SHOW DUMP/LMB=ALL and SHOW DUMP/COMPRESSION commands apply to all open dump files. If /FILE=DUMP is specified without a file number, then these commands apply to the primary dump file.

By default, SHOW DUMP/BLOCK applies to the primary dump file. By default, SHOW DUMP/LMB=n and SHOW DUMP/COMPRESSION=n apply to the primary dump file or to the dump file for which the command was last used.

All other qualifiers are applicable only to the primary dump file.

/HEADER

Displays the formatted contents of the dump header.

/LMB[= {ALL|n} ]

In a selective dump, displays the formatted contents of logical memory block (LMB) headers and the virtual address (VA) ranges within the LMB. You can specify the LMBs to be displayed by using the following syntax:

no valueDisplays next LMB
nDisplays LMB at block n of the dump
ALLDisplays all LMBs
/MEMORY_MAP

In a full dump, displays the contents of the memory map.

/SUMMARY

Displays a summary of the dump. This is the default.

Description

The SHOW DUMP command displays information about the structure of the dump file. It displays the header, the error log buffers, and, if appropriate, the compression map, the logical memory block (LMB) headers, the memory map, the file identification collection, and the unwind data collection (on Integrity server systems only). Use this command when troubleshooting dump analysis problems.

Examples

  1. SDA> SHOW DUMP/SUMMARY
    Summary of dump file DKA300:[SYS0.SYSEXE]SYSDUMP.DMP;8
    ------------------------------------------------------
    Dump type:                   Compressed selective
    Size of dump file:           000203A0/000203A0 (132000./132000.)
    Highest VBN written:         0000D407          (54279.)
    Uncompressed equivalent:     0001AF1C          (110364.)
    Compression ratio:           2.03:1            (49.2%)
    
    
                                                                         Uncomp    Uncomp
                          Dump file section             VBN     Blocks     VBN     blocks
    ----------------------------------------------  ---------- --------  -------  --------
    Dump header                                       00000001 00000002
    Error log buffers                                 00000003 00000020
    Compression map                                   00000023 00000010
    LMB 0000 (PT space)                               00000033 00000038  00000033 000000D2
    LMB 0001 (S0/S1 space)                            0000006B 0000621B  00000105 000095A5
    LMB 0002 (S2 space)                               00006286 000001A3  000096AA 00000352
    LMB 0003 (Page tables of key process "SYSTEM")    00006429 00000005  000099FC 00000062
    LMB 0004 (Memory of key process "SYSTEM")         0000642E 00000071  00009A5E 00000342
       .
       .
       .
    LMB 0003 (Page tables of key process "NETACP")    0000697B 00000009  0000AE14 00000052
    LMB 0004 (Memory of key process "NETACP")         00006984 000013F7  0000AE66 00001F42
    LMB 0005 (Key global pages)                       00007D7B 000002BA  0000CDA8 00000312
    LMB 0006 (Page tables of process "DTWM")          00008035 00000013  0000D0BA 00000082
    LMB 0007 (Memory of process "DTWM")               00008048 000013A3  0000D13C 000022E4
       .
       .
       .
    LMB 0006 (Page tables of process "Milord_FTA1:")  0000C5E3 00000005  00019A44 00000062
    LMB 0007 (Memory of process "Milord_FTA1:")       0000C5E8 00000074  00019AA6 00000222
    LMB 0008 (Remaining global pages)                 0000C65C 00000DAC  00019CC8 00001255
    

    This example of the SHOW DUMP/SUMMARY command gives a summary of a selective dump.

  2. SDA> SHOW DUMP/HEADER
    Dump header
    -----------
        Header field                      Meaning                        Value
    --------------------  ---------------------------------------  -----------------
    DMP$W_FLAGS           Flags                                                 0FC1
                           DMP$V_OLDDUMP:    Dump has been analyzed
                           DMP$V_WRITECOMP:  Dump write was completed
                           DMP$V_ERRLOGCOMP: Error log buffers written
                           DMP$V_DUMP_STYLE: Selective dump
                                             Verbose messages
                                             Dump off system disk
                                             Compressed
    DMP$B_FLAGS2          Additional flags                                        09
                           DMP$V_COMPRESSED: Dump is compressed
                           DMP$V_ALPHADUMP:  This is an OpenVMS Alpha dump
    DMP$Q_SYSIDENT        System version                                  "X69G-FT1"
    DMP$Q_LINKTIME        Base image link date/time        " 8-JUN-1996 02:07:27.31"
    DMP$L_SYSVER          Base image version                                03000000
    DMP$W_DUMPVER         Dump version                                          0704
    DMP$L_DUMPBLOCKCNT    Count of blocks dumped for memory                 0000D3D5
    DMP$L_NOCOMPBLOCKCNT  Uncompressed blocks dumped for memory             0001AEEA
    DMP$L_SAVEPRCCNT      Number of processes saved                         00000014
       .
       .
       .
    EMB$Q_CR_TIME         Crash date/time                  " 3-JUL-1996 09:30:13.36"
    EMB$L_CR_CODE         Bugcheck code                                 "SSRVEXCEPT"
    EMB$B_CR_SCS_NAME     Node name                                       "SWPCTX  "
    EMB$T_CR_HW_NAME      Model name                            "DEC 3000 Model 400"
    EMB$T_CR_LNAME        Process name                                      "SYSTEM"
    DMP$L_CHECKSUM        Dump header checksum                              439E5E91

    This example of the SHOW DUMP/HEADER command shows the information in the header.

  3. SDA> SHOW DUMP/COLLECTION
    
    File and unwind data collection
    -------------------------------
    
    Collection start VBN:     0002155B
    Collection end VBN:       00022071
    Collection block count:   00000B17
    
      VBN       Blocks        Contents
    --------   --------   ------------------------------
    0002155B   000000C1   Unwind data segment 00000001 of _$30$DKB200:[VMS$COMMON.SYSEXE]DCL.EXE;1
    0002161C   00000001   Unwind data segment 00000001 of _$30$DKB200:[VMS$COMMON.SYSEXE]USB$UC...
    0002161D   0000000C   Unwind data segment 00000008 of _$30$DKB200:[VMS$COMMON.SYSEXE]USB$UC...
    .
    .
    .
    0002200F   0000001F   Unwind data segment 00000007 of _$30$DKB200:[VMS$COMMON.SYSEXE]LATACP...
    0002202E   00000006   Unwind data segment 0000000B of _$30$DKB200:[VMS$COMMON.SYSEXE]LATACP...
    00022034   00000001   Unwind data segment 00000002 of _$30$DKB200:[BISHOP]CMEXEC_LOOP.EXE;1
    00022035   00000001   File data for _$30$DKA0:
    00022036   0000003B   File data for _$30$DKB200:
    00022071   00000001   Disk data

    This example of the SHOW DUMP/COLLECTION command shows the contents of the file identification and unwind data collection appended to a system dump when it was copied using the SDA command COPY/COLLECT. Note that unwind data segments are found only in system dumps taken on OpenVMS Integrity server systems.

4.40. SHOW EFI (Integrity servers Only)

Displays information from the Extensible Firmware Interface (EFI) data structures. Currently, the only display provided by SDA is the EFI memory map.

Format

SHOW EFI /MEMMAP [=ALL] [range]

Parameters

range

The entry or range of entries to be displayed, expressed using the following syntax:

mDisplays entry m
m:nDisplays the entries from m to n
m;nDisplays n entries starting at m

You cannot specify a range with /MEMMAP=ALL.

Qualifiers

/MEMMAP [=ALL]

Displays the EFI memory map. This qualifier is required. By default, only entries in the EFI memory map with the RUNTIME attribute are displayed. If /MEMMAP=ALL is specified, all entries are displayed.

You cannot specify /MEMMAP=ALL and also supply a range of entries to be displayed.

Description

SDA locates the EFI memory map in the system or dump and displays the contents. If no range is given, SDA also displays information about the location and size of the memory map.

Examples

  1. SDA> SHOW EFI/MEMMAP
    
    EFI Memory Map
    --------------
    
    Memory map address:            FFFFF802.06402000
    Entry count:                            00000025
    Size of entry:                          00000030
    
    Entry        Memory Type       Physical Address    Virtual Address      Pages (4KB)        Attributes
    -----  ----------------------  -----------------  -----------------  -----------------  -----------------
     0003  Runtime_Services_Code   00000000.000C0000  FFFFF802.00000000  00000000.00000040  80000000.00000001  UC  Runtime
     0016  Runtime_Services_Data   00000000.3F048000  FFFFF802.00040000  00000000.00000304  80000000.00000008  UCE Runtime
     0017  Runtime_Services_Code   00000000.3F34C000  FFFFF802.00344000  00000000.0000003C  80000000.00000008  UCE Runtime
     0019  Runtime_Services_Data   00000000.3F3E2000  FFFFF802.00380000  00000000.00000012  80000000.00000008  UCE Runtime
     001A  Runtime_Services_Code   00000000.3F3F4000  FFFFF802.00392000  00000000.0000006E  80000000.00000008  UCE Runtime
     001B  Runtime_Services_Data   00000000.3F462000  FFFFF802.00400000  00000000.00000182  80000000.00000008  UCE Runtime
     001C  Runtime_Services_Code   00000000.3F5E4000  FFFFF802.00582000  00000000.000004DC  80000000.00000008  UCE Runtime
     001D  PAL_Code                00000000.3FAC0000  FFFFF802.00A80000  00000000.00000040  80000000.00000008  UCE Runtime
     0020  Runtime_Services_Data   00000000.3FB38000  FFFFF802.00AC0000  00000000.000004C8  80000000.00000008  UCE Runtime
     0022  Memory_Mapped_IO        00000000.FED00000  FFFFF802.01000000  00000000.00001300  80000000.00000001  UC  Runtime
     0024  Mem_Map_IO_Port_Space   0003FFFF.FC000000  FFFFF802.02400000  00000000.00004000  80000000.00000001  UC  Runtime

    This example shows a typical display from the SHOW EFI/MEMMAP command.

4.41. SHOW EXCEPTION_FRAME

Displays the contents of the exception frame at the given address or searches to display a one-line summary of all exception frames found on all applicable stacks.

Format

SHOW EXCEPTION_FRAME {address | [/SUMMARY] [range]}

Parameter

address

Address of the exception frame.

range

Range of addresses specifiable as start:end or start;length.

Qualifier

/SUMMARY (D)
  • The /SUMMARY qualifier is the default.

  • SHOW EXCEPTION and SHOW EXCEPTION range imply /SUMMARY.

  • If a range, either start:end or start;length, is given, then that range is searched instead of the stacks.

Description

Displays the contents of the exception frame at the given address (which is rounded down to an octaword-aligned address), or searches to display a one-line summary of all exception frames found on all applicable stacks.

Under some circumstances, the exception frame of the actual bugcheck is copied (by BUGCHECK) to the system stack for the CPU. Since this stack is also searched, multiple hits may occur for this exception frame.

On Alpha, the search for exception frames relies on valid processor status (PS) values in the PS offset from each possible 64-byte-aligned start address for an exception frame. Since only some of the bits in the PS can be validated, there may be frames displayed that are not exception frames (false positives). Do not assume that each frame displayed is actually an exception frame without further investigation.

On Integrity servers, the search for exception frames is focused on the type/subtype offsets from each possible octaword-aligned start address for an exception frame. Thus, it is likely that frames displayed are exception frames.

Examples

  1. SDA>  SHOW EXCEPTION
    Exception Frame Summary
    -----------------------
     Exception Frame  Type            Stack   IIP / Ret_Addr   Trap_Type / Service_Number
    ----------------- ----            -----  ----------------- --------------------------
    00000000.7FF43540 ORIGINAL_INTSTK Kernel FFFFFFFF.8048DB70 00000041 Bugcheck Breakpoint Trap
    00000000.7FF43BA0 INTSTK          Kernel 00000000.00020200 00000008 Access control violation fault
    00000000.7FF43F40 SSENTRY         Kernel 00000000.00020090 01000019 SYS$CMKRNL
    

    The SHOW EXCEPTION_FRAME command example displays the summary.

    Examples of the display of the contents of an exception frame are available in the SHOW CRASH description.

4.42. SHOW EXECUTIVE

Displays the location and size of each loadable image that makes up the executive.

Format

SHOW EXECUTIVE [execlet-name | /ALL | /SUMMARY (D)]

Parameter

execlet-name

Displays detailed data for the specified loadable image only. If you use wildcards in execlet-name, SDA displays detailed data for all matching loadable images.

If the command is specified with no parameter or qualifier, the default is to display one line of data for each loadable image.

Qualifiers

/ALL

Displays detailed data for all loadable images.

/SUMMARY

Displays a single line of data for all loadable images. This is the default.

Description

The executive consists of two base images and a number of other executive images.

The base image called SYS$BASE_IMAGE.EXE contains:

  • Symbol vectors for universal executive routines and data cells

  • Procedure descriptors for universal executive routines

  • Globally referenced data cells

The base image called SYS$PUBLIC_VECTORS.EXE contains:

  • Symbol vectors for system service procedures

  • Procedure descriptors for system services

  • Transfer routines for system services

The base images are the pathways to routines and system service procedures in the other executive images.

The SHOW EXECUTIVE command lists the location and size of each executive image with other information such as link date and time. It can enable you to determine whether a given memory address falls within the range occupied by a particular image. (Table 4.1, “Modules Defining Global Locations Within Executive Images” describes the contents of each executive image.)

SHOW EXECUTIVE also displays the base address and length for each nonzero length image section.

On OpenVMS Alpha the execlets can be sliced; on OpenVMS Integrity servers all execlets are sliced. This means each different image section can be relocated in system memory so that the sections are no longer contiguous. The SHOW EXECUTIVE display contains information on where each image section resides.

The difference between a sliced image and a non-sliced image in the display is that the base, the end, and the length of a sliced image are blank. Only the image section base, end, and length are valid.

On Alpha, there are six different image section types: nonpaged read only, nonpaged read-write, paged read only, paged read-write, init, and fixup. Each section type can occur only once. Only the image sections loaded into system memory are displayed.

On Integrity servers, there are six different image section types: code, short data, read-only data, read-write data, init, and fixup. Some section types can occur more than once. Only the image sections loaded into system memory are displayed.

The MAP command makes it easier to find out in which execlet an address resides. See the description of the MAP command for details.

By default, SDA displays each location within an executive image as an offset from the beginning of the image, for instance, EXCEPTION+00282. Similarly, those symbols that represent system services point to the transfer routine in SYS$PUBLIC_VECTORS.EXE and not to the actual system service procedure. When tracing the course of a system failure through the listings of modules contained within a given executive image, you may find it useful to load into the SDA symbol table all global symbols and global entry points defined within one or all executive images. See the description of the READ command for additional information.

The SHOW EXECUTIVE command usually shows all components of the executive, as illustrated in the following example. In rare circumstances, you may obtain a partial listing. For instance, after it has loaded the EXCEPTION module (in the INIT phase of system initialization), the system can successfully post a bugcheck exception and save a crash dump before loading all the executive images that are normally loaded.

Examples

  1. SDA> SHOW EXECUTIVE
    VMS Executive layout summary
    ----------------------------
    
    
    Image           LDRIMG   SeqNum        Base               End             Length        SymVec
    -------------- -------- -------- ----------------- ----------------- ----------------- --------
    SYS$MADDRIVER  8161BCC0 00000094 FFFFFFFF.837C2000 FFFFFFFF.837DDFFF 00000000.0001C000
    SYS$DADDRIVER  8161AB80 00000092 FFFFFFFF.82238000 FFFFFFFF.82247FFF 00000000.00010000
    SYS$LASTDRIVER 81617540 00000090 FFFFFFFF.813DA000 FFFFFFFF.813F5FFF 00000000.0001C000
    SYS$LTDRIVER   81611B40 0000008E FFFFFFFF.813A2000 FFFFFFFF.813D9FFF 00000000.00038000
    LAT$RATING     81611440 0000008C FFFFFFFF.8139A000 FFFFFFFF.813A1FFF 00000000.00008000
    PWIPDRIVER     8160B440 0000008A FFFFFFFF.81386000 FFFFFFFF.81399FFF 00000000.00014000
      .
      .
      .
    ERRORLOG               814195C0 00000014 --< sliced >--
    SYSTEM_SYNCHRONIZATION 81418840 00000012 --< sliced >--
    SYSTEM_PRIMITIVES      81417AC0 00000010 --< sliced >--
    SYSTEM_DEBUG           81416D40 0000000E FFFFFFFF.83382000 FFFFFFFF.833E5FFF 00000000.00064000
    SYS$OPDRIVER           81415FC0 0000000C --< sliced >--
    SYS$ESBTDRIVER         81415240 0000000A --< sliced >--

    The SHOW EXECUTIVE command displays a summary list of the executive images. The display has been moved left to fit within the page boundaries of the manual.

  2. SDA> SHOW EXECUTIVE EX*
    VMS Executive layout
    --------------------
    
    
    Image                     Base               End             Length       ImageOff  SymVec
    ------------------  ----------------- ----------------- ----------------- -------- --------
    EXCEPTION_MON
     Data (read/write)  FFFFFFFF.841BAC00 FFFFFFFF.841BAC13 00000000.00000014 00010000
     Data (read/write)  FFFFFFFF.841BAE00 FFFFFFFF.841BAE03 00000000.00000004 00014000
     Code               FFFFFFFF.8041E600 FFFFFFFF.80508D5F 00000000.000EA760 00018000
     Data (read only)   FFFFFFFF.841BB000 FFFFFFFF.841C278F 00000000.00007790 00104000
     Data (read/write)  FFFFFFFF.841C2800 FFFFFFFF.841D049F 00000000.0000DCA0 0010C000
     Data (read/write)  FFFFFFFF.841D0600 FFFFFFFF.841D0613 00000000.00000014 0011C000
     Data (read only)   FFFFFFFF.841D0800 FFFFFFFF.841D7D93 00000000.00007594 00120000
     Short data         FFFFFFFF.841D7E00 FFFFFFFF.841DF247 00000000.00007448 00130000
      Linked  2-APR-2004 13:08  LDRIMG 84891900   SeqNum 00000022       GP FFFFFFFF.843D7E00
    
    EXEC_INIT
     Code               FFFFFFFF.80327700 FFFFFFFF.803B304F 00000000.0008B950 00010000
     Data (read only)   FFFFFFFF.84196C00 FFFFFFFF.8419D62F 00000000.00006A30 0009C000
     Data (read/write)  FFFFFFFF.8419D800 FFFFFFFF.841A7987 00000000.0000A188 000A4000
     Short data         FFFFFFFF.841A7A00 FFFFFFFF.841AA2DF 00000000.000028E0 000B0000
      Linked 23-MAR-2004 15:02   LDRIMG 84889040   SeqNum 0000001E       GP FFFFFFFF.843A7A00

    This example from Integrity servers displays the use of the wildcard with the SHOW EXECUTIVE command. The display has been moved left to fit within the page boundaries of the manual.

4.43. SHOW GALAXY

Displays a brief one-page summary of the state of the Galaxy and all the instances in the Galaxy.

Format

SHOW GALAXY

Parameters

None.

Qualifiers

None.

Examples

SDA> SHOW GALAXY
Galaxy summary
--------------
  GMDB address        Creator node ID  Revision       Creation time
-----------------     ---------------  --------  -----------------------  -----
FFFFFFFF.7F234000         00000001        1.0    31-MAR-1999 13:15:08.08      O

Node ID     NODEB address      Name    Version        Join time
--------  -----------------  --------  --------  -----------------------  -----
00000000  FFFFFFFF.7F236000  ANDA1A       1.0    31-MAR-1999 14:11:09.08
00000001  FFFFFFFF.7F236200  ANDA2A       1.0    31-MAR-1999 14:10:49.06
00000002  FFFFFFFF.7F236400  ANDA3A       1.0    31-MAR-1999 14:13:26.16
00000003  FFFFFFFF.7F236600                      - Node block is empty -

This SHOW GALAXY example shows the summary of the state of the Galaxy.

4.44. SHOW GCT

Displays the contents of the Galaxy configuration tree either in summary (hierarchical format) or in detail, node by node.

Format

SHOW GCT [/ADDRESS=n | /ALL | /HANDLE | /OWNER=n

| /SUMMARY (D) | /TYPE=type ]

[/CHILDREN] | [/FULL]

Parameters

None.

Qualifiers

/ADDRESS=n

Displays the Galaxy configuration tree (GCT) node at the given address.

/ALL

Provides a detailed display of all nodes in the tree.

/CHILDREN

When used with /ADDRESS=n or /HANDLE=n, the /CHILDREN qualifier causes SDA to display all nodes in the configuration tree that are children of the specified node.

/FULL

When used with /CHILDREN, /OWNER=n, or /TYPE=type, the /FULL qualifier causes SDA to provide a detailed display of each node.

/HANDLE=n

Provides a detailed display of the Galaxy configuration tree (GCT) node with the given handle.

/OWNER=n

Displays all nodes in the tree currently owned by the node with the given handle.

/SUMMARY

Provides a summary display of the Galaxy configuration tree (GCT) in hierarchical form. This qualifier is the default.

/TYPE=type

Displays all nodes in the tree of the given type, which can be one of the following:

BUSCABCOMMUNITY
CORECPUCPU_MODULE
EXP_CHASSISFRU_DESCFRU_ROOT
HARD_PARTITIONHOSEHW_ROOT
IO_CTRLIOPMEMORY_CTRL
MEMORY_DESCMEMORY_SUBPARTITION
POWER_ENVIRPSEUDORISER
ROOTSBBSLOT
SMBSOCSOCKET
SW_ROOTSYS_CHASSISSYS_INTER_SWITCH
TEMPLATE_ROOTTHREAD 

The type given may be an exact match, in which case just that type is displayed (for example, a CPU); or a partial match, in which case all matching types are displayed (for example, /TYPE=CP displays both CPU and CPU_MODULE nodes).

Description

Examples

  1. SDA> SHOW GCT
    Galaxy Configuration Tree summary
    ---------------------------------
    Base address of Config Tree: FFFFFFFF.83694040 (2 pages)
    Initial Current Name/Min PA/ OS type/Max PA/
    Handle Hierarchy Id Owner Owner Base PA Size (bytes) Flags
    -------- ------------------- ----------------- -------- -------- ----------------- ----------------- ------------------------
    00000000 Root 00000000.00000000 414C4147-5958-0030-0000-......
    |
    00000240 |_HW_Root 00000000.00000000
    00000280 | |_IOP 00000000.00000006 00001800 000000A0.00000000 000000AF.FFFFFFFF
    00000300 | |_IOP 00000000.00000007 00001700 000000B0.00000000 000000BF.FFFFFFFF
    00000380 | |_IOP 00000000.00000008 00001600 000000C0.00000000 000000CF.FFFFFFFF
    00000400 | |_CPU_Module 00000000.00000000 00001580
    00000440 | | |_CPU 00000000.09000000 00001600 Primary
    00000480 | | |_CPU 00000000.1B000001 00001600 00001800
    000004C0 | |_CPU_Module 00000000.00000001 00001580
    00000500 | | |_CPU 00000000.1B000002 00001600 00001800
    00000540 | | |_CPU 00000000.10000003 00001600 00001700
    00000580 | |_CPU_Module 00000000.00000002 00001580
    000005C0 | | |_CPU 00000000.07000004 00001700 Primary
    00000600 | | |_CPU 00000000.0A000005 00001700 00001800
    00000640 | |_CPU_Module 00000000.00000003 00001580
    00000680 | | |_CPU 00000000.07000006 00001800 Primary
    000006C0 | | |_CPU 00000000.0C000007 00001800 00001600
    00000700 | |_Memory_Sub 00000000.00000000 00001580 00000000.00000000 00000000.FFFFFFFF
    00000780 | |_Memory_Ctrl 00000000.00000005 00001600
    000007C0 | |_Memory_Desc 00000000.00000000 00001600 00000000.00000000 00000000.40000000
    | | |_Fragment 00001600 00000000.00000000 00000000.00200000 Console Private Base
    | | |_Fragment 00001600 00000000.00200000 00000000.3FD7E000 Private Base
    | | |_Fragment 00001600 00000000.3FF7E000 00000000.00082000 Console Private Base
    00000A40 | |_Memory_Desc 00000000.40000000 00001700 00000000.40000000 00000000.40000000
    | | |_Fragment 00001700 00000000.40000000 00000000.00200000 Console Private Base
    | | |_Fragment 00001700 00000000.40200000 00000000.3FD7E000 Private Base
    | | |_Fragment 00001700 00000000.7FF7E000 00000000.00082000 Console Private Base
    00000CC0 | |_Memory_Desc 00000000.80000000 00001800 00000000.80000000 00000000.40000000
    | | |_Fragment 00001800 00000000.80000000 00000000.00200000 Console Private Base
    | | |_Fragment 00001800 00000000.80200000 00000000.3FD7E000 Private Base
    | | |_Fragment 00001800 00000000.BFF7E000 00000000.00082000 Console Private Base
    00000F40 | |_Memory_Desc 00000000.C0000000 00001580 00000000.C0000000 00000000.40000000
    | |_Fragment 00001580 00000000.C0000000 00000000.40000000 Shared
    |
    000011C0 |_SW_Root 00000000.00000000
    00001580 | |_Community 00000000.00000000 000011C0
    00001600 | |_Partition 00000000.00000000 00001580 ANDA1A OpenVMS Alpha
    00001700 | |_Partition 00000000.00000001 00001580 ANDA2A OpenVMS Alpha
    00001800 | |_Partition 00000000.00000002 00001580 ANDA3A OpenVMS Alpha
    |
    00001200 |_Template_Root 00000000.00000000
    00001240 |_IOP 00000000.00000000
    000012C0 |_CPU 00000000.00000000
    00001300 |_Memory_Desc 00000000.00000000 00000000.02000000

    This command shows the summary (hierarchical) display of the configuration tree.

  2. SDA> SHOW GCT/HANDLE=00000700
    
    Galaxy Configuration Tree
    -------------------------
    
    Handle:                           00000700   Address:        FFFFFFFF.83694740
    Node type:                      Memory_Sub   Size:                        0080
    Id:                      00000000.00000000   Flags:          00000000.00000001 Hardware
    
    
    Related nodes:
    
        Node relationship     Handle             Type                   Id
      ---------------------  --------    ---------------------   -----------------
      Initial owner          00001580    Community               00000000.00000000
      Current owner          -<Same>-
      Parent                 00000240    HW_Root                 00000000.00000000
      Previous sibling       00000640    CPU_Module              00000000.00000003
      Next sibling           -<None>-
      Child                  00000780    Memory_Ctrl             00000000.00000005
      Configuration binding  00000240    HW_Root                 00000000.00000000
      Affinity binding       00000240    HW_Root                 00000000.00000000
    
    Min. physical address:   00000000.00000000
    Max. physical address:   00000000.FFFFFFFF

    This command shows the detailed display of the specified node.

4.45. SHOW GLOBAL_SECTION_TABLE

Displays information contained in the global section table, including pageable sections of loadable images. Functionally equivalent to SHOW GST.

Format

SHOW GLOBAL_SECTION_TABLE [/SECTION_INDEX=n]

SHOW GST [/SECTION_INDEX=n]

Parameters

None.

Qualifiers

/SECTION_INDEX=n

Displays only the global section table entry for the specified section.

Description

Displays the entire contents of the global section table, unless you specify the qualifier /SECTION_INDEX. This command is equivalent to SHOW PROCESS/PROCESS_SECTION_TABLE/SYSTEM. SDA displays the information in the table below for each GST entry.

PartDefinition
INDEXIndex number of the entry. Entries in the global section table begin at the highest location in the table, and the table expands toward lower addresses.
ADDRESSAddress of the global section table entry.
SECT/GPTEVirtual address that marks the beginning of the first page of the section described by this entry, if a loadable image; or the virtual address of the global page table entry for the first page, if a global section.
GSDAddress of the corresponding Global Section Descriptor. This field is zero for loadable images.
PAGELETSLength of the global section. This is in units of pagelets, except for a PFN-mapped section in which the units are pages.
VBNVirtual block number. The number of the file's virtual block that is mapped into the section's first page.
WINDOWAddress of the window control block on which the section file is open.
REFCNTNumber of pages of this section that are currently mapped.
FLINKForward link. The pointer to the next entry in the GST list.
BLINKBackward link. The pointer to the previous entry in the GST list.
FLAGSFlags that describe the access that the system and processes have to the global section.

Examples

  1. SDA> SHOW GST
    Global Section Table
    --------------------
    Global section table information
    --------------------------------
    Last entry allocated 00000238
    First free entry 00000000
    Global section table
    --------------------
     Index Address Sect/GPTE Addr CCB/GSD Pagelets VBN Window Refcnt Flink Blink Flags
     -------- -------- ----------------- -------- -------- -------- -------- -------- ----- ----- --------------------
    00000001 81409FD8 FFFFFFFF.83384000 00000000 00000025 00000003 81419E40 00000003 0000 0000 AMOD=KRNL
    00000002 81409FB0 FFFFFFFF.833AE000 00000000 00000064 00000220 8141A040 00000007 0000 0000 AMOD=KRNL
    00000003 81409F88 FFFFFFFF.83312000 00000000 00000001 0000063A 81450BC0 00000001 0000 0000 CRF WRT AMOD=KRNL
    00000004 81409F60 FFFFFFFF.833C0000 00000000 00000003 00000003 814233C0 00000001 0000 0000 AMOD=KRNL
    00000005 81409F38 FFFFFEFE.00058890 82065C70 00000002 0000000D 814F9AC0 00000003 0005 0005 WRTMOD=EXEC AMOD=USER PERM
    Name = INS$82065BC0_003 SYSGBL
    File = DISK$X97D_R2Y:[VMS$COMMON.SYSLIB]DECW$TRANSPORT_COMMON.EXE;1
    00000006 81409F10 FFFFFFFF.833E6000 00000000 00000011 00000023 8142E480 00000002 0000 0000 AMOD=KRNL
    00000007 81409EE8 FFFFFEFE.00052010 82025CA0 0000000C 00000004 814C0600 00000000 0007 0007 WRTMOD=EXEC AMOD=USER PERM
    File = DISK$X97D_R2Y:[VMS$COMMON.SYSLIB]SYS$SSISHR.EXE;1 SYSGBL
    00000008 81409EC0 FFFFFFFF.83400000 00000000 000000B4 00000003 81446340 0000000C 0000 0000 AMOD=KRNL
    00000009 81409E98 FFFFFFFF.83418000 00000000 00000038 000000B7 81446340 00000001 0000 0000 CRF WRT AMOD=KRNL
    0000000A 81409E70 FFFFFEFE.00052028 820261B0 00000027 00000019 814C0AC0 00000003 000A 000A WRTMOD=EXEC AMOD=USER PERM
    Name = INS$82026130_006 SYSGBL
    File = DISK$X97D_R2Y:[VMS$COMMON.SYSLIB]DISMNTSHR.EXE;1
    0000000B 81409E48 FFFFFEFE.00052050 82026630 0000007A 00000004 814C0D00 00000008 000B 000B WRTMOD=EXEC AMOD=USER PERM
    Name = INS$82026540_002 SYSGBL
    File = DISK$X97D_R2Y:[VMS$COMMON.SYSLIB]DTI$SHARE.EXE;1
    .
    .
    .

4.46. SHOW GLOCK

Displays the Galaxy locks for the Galaxy Management Database (GMDB), process tables, and/or system tables.

Format

SHOW GLOCK [/ADDRESS=n [/PHYSICAL]

| /ALL

| /GMDB_TABLE

| /HANDLE=n [/LINKED]

| /PROCESS_TABLE [=n ]

| /SYSTEM_TABLE [=n ]]

[/BRIEF]

Parameters

None.

Qualifiers

/ALL

Displays information provided by the /GMDB_TABLE, /PROCESS_TABLE, and /SYSTEM_TABLE qualifiers. The /ALL qualifier also displays information from the base GMDB Galaxy lock.

/BRIEF

Displays a single line for each Galaxy lock, regardless of any other qualifiers.

/GMDB_TABLE

Displays the Galaxy lock table for the Galaxy Management Database (GMDB) including the embedded and attached Galaxy locks.

/PROCESS_TABLE [=n]

Displays all the process Galaxy lock tables with the embedded and attached Galaxy locks, as well as a summary table. The /PROCESS_TABLE=n qualifier displays the single Galaxy lock table without a summary page.

/SYSTEM_TABLE [=n]

Displays all the system Galaxy lock tables with the embedded and attached Galaxy locks, as well as a summary table. The /SYSTEM_TABLE=n qualifier displays the single Galaxy lock table without a summary page.

/ADDRESS=n [/PHYSICAL]

Displays the single Galaxy lock at address n. Because process Galaxy locks are located by their physical address, you must use the /PHYSICAL qualifier to enter such an address.

/HANDLE=n [/LINKED]

Displays the single Galaxy lock whose handle is n. The optional qualifier /LINKED causes SDA to display all Galaxy locks linked to the one specified.

Examples

  1. SDA> SHOW GLOCK
    Galaxy Lock Database
    --------------------
    
    Base address of GLock segment of GMDB:       FFFFFFFF.7F238000
    Length:                                      00000000.00082000
    
      Nodes:                 00000000.00000007   Flags:          00000000.00000000
    
    Process tables:          00000000.00000400   System tables:  00000000.00000400
      First free:                     00000002                            00000001
      First used:                     00000001                            00000000
    
    Embedded GLocks:
    
    GLock address:           FFFFFFFF.7F238020   Handle:         80000000.00000805
    
      GLock name:            GMDB_GLOCK_LOCK     Flags:                         00
      Owner count:                          00   Owner node:                    00
      Node sequence:                      0000   Owner:                     000000
      IPL:                                  08   Previous IPL:                  00
      Wait bitmask:          00000000.00000000   Timeout:                 00000000
      Thread ID:             00000000.00000000
    
    GLock address:           FFFFFFFF.7F238190   Handle:         80000000.00000833
    
      GLock name:            PRC_LCKTBL_LOCK     Flags:                         00
      Owner count:                          00   Owner node:                    00
      Node sequence:                      0000   Owner:                     000000
      IPL:                                  08   Previous IPL:                  00
      Wait bitmask:          00000000.00000000   Timeout:                 00000000
      Thread ID:             00000000.00000000
    
    GLock address:           FFFFFFFF.7F2381D0   Handle:         80000000.0000083B
    
      GLock name:            SYS_LCKTBL_LOCK     Flags:                         00
      Owner count:                          00   Owner node:                    00
      Node sequence:                      0000   Owner:                     000000
      IPL:                                  08   Previous IPL:                  00
      Wait bitmask:          00000000.00000000   Timeout:                 00000000
      Thread ID:             00000000.00000000
    

    This example shows the summary of the Galaxy lock database.

  2. SDA> SHOW GLOCK/PROCESS_TABLE
    Galaxy Lock Database: Process Lock Table #0001
    ----------------------------------------------
    
    Base address of Process Lock Table #0001:    FFFFFFFF.7F23A000
    
      Lock size:                          0040   Flags:                         01  VALID
      Region Index/Sequence:     0008/00000001   Access mode:                   03
      Region physical size:  00000000.00002000   Virtual size:   00000000.00002000
      Number of locks:       00000000.00000080   Nodes:          00000000.00000007
    
    Per-node reference counts:
    
        Node   Count
        ----   -----
        0000    0001
        0001    0001
        0002    0001
    
    Embedded GLock:
    
    GLock address:           FFFFFFFF.7F23A040   Handle:         80000000.00000C09
    
      GLock name:            PLCKTBL_LOCK001     Flags:                         00
      Owner count:                          00   Owner node:                    00
      Node sequence:                      0000   Owner:                     000000
      IPL:                                  00   Previous IPL:                  00
      Wait bitmask:          00000000.00000000   Timeout:                 00000000
      Thread ID:             00000000.00000000
    
    Attached GLocks:
    
    GLock address:          P00000000.C05EC7C0   Handle:         00000001.000000F9
    
      GLock name:            CPU_BAL_LOCK        Flags:                         00
      Owner count:                          00   Owner node:                    00
      Node sequence:                      0000   Owner:                     000000
      IPL:                                  00   Previous IPL:                  00
      Wait bitmask:          00000000.00000000   Timeout:                 00000000
      Thread ID:             00000000.00000000
    
       .
       .
       .
    
    GLock address:          P00000000.C05EC000   Handle:         00000001.00000001
    
      GLock name:            CPU_BAL_LOCK        Flags:                         00
      Owner count:                          00   Owner node:                    00
      Node sequence:                      0000   Owner:                     000000
      IPL:                                  00   Previous IPL:                  00
      Wait bitmask:          00000000.00000000   Timeout:                 00000000
      Thread ID:             00000000.00000000
    
    Used GLock count = 0020
    
    Free GLock count = 0060
    
    Galaxy Lock Database: Process Lock Table Summary
    ------------------------------------------------
    
    Total used Process Lock Tables:              00000001
    Total free Process Lock Tables:              000003FF
    

    This example shows the Galaxy locks for all processes.

4.47. SHOW GMDB

Displays the contents of the Galaxy Management Database (GMDB) and/or the node blocks of the instances in the Galaxy system.

Format

SHOW GMDB [/ALL]

[/NODE [=name | =n | /ADDRESS=n ] [/SUMMARY]

Parameters

None.

Qualifiers

/ADDRESS

Specifies the address of a single node block to be displayed when used with the /NODE qualifier. See the description of the /NODE qualifier.

/ALL

Displays the contents of the Galaxy Management Database and all node blocks that have ever been used (contents nonzero).

/NODE [=name | =n | /ADDRESS=n]

Displays the contents of the specified node block, given by either the name of the instance, the partition number, or the address of the node block. If you specify only the /NODE qualifier, the node block for the current instance is displayed.

/SUMMARY

Displays a one-page summary of the GMDB and all node blocks.

Note

The default action displays the contents of the Galaxy Management Database.

Examples

  1. SDA> SHOW GMDB
    
    Galaxy Management Database
    -------------------------
    
    Base address of GMDB:                        FFFFFFFF.7F234000
    Base address of NODEB for this instance:     FFFFFFFF.7F236000
    
      Revision:                            1.0   Maximum node ID:         00000003
      Creation time:   31-MAR-1999 13:15:08.08   Incarnation:    00000000.00000003
      State:                       OPERATIONAL   Creator node:            00000001
      Base size:             00000000.00004000   Total size:     00000000.000A6000
      Last joiner ID:                 00000002   Remover node ID:         FFFFFFFF
      Last leaver ID:                 00000002   Node timeout (msec)          5000.
      Lock owner                      00000002   Lock flags:                  0000
      Break owner:                    FFFFFFFF   Breaker ID:              FFFFFFFF
    
    Version Information:
    
      Min Version Operational              1.0   Min Version Allowed           1.0
      Max Version Operational              1.0
    
    Membership bitmask:      FFFFFFFF.7F236800
    
      Valid bits:                     00000004   State:          00000000.0000001E  AUTO_LOCK TIMEOUT_CRASH....
      Unit count:                         0001   Unit size:               QUADWORD
      Lock IPL:                             16   Saved IPL:               00000008
      Count of bits set:              00000003
      Timeout count:                  000186A0
      Summary bitmask:       00000000.00000001
    
      Unit bitmask:
           ........ ........ ........ .......7   00000000
    
    Remove node bitmask:     FFFFFFFF.7F236880
    
      Valid bits:                     00000004   State:          00000000.00000018  SUMMARY_BITS SET_COUNT
      Unit count:                         0001   Unit size:               QUADWORD
      Count of bits set:              00000000
      Summary bitmask:       00000000.00000000
    
      Unit bitmask:
           ........ ........ ........ .......0   00000000
    
    Subfacility validation flags:     00000000
    
      Galaxy locks segment:  FFFFFFFF.7F238000   Length:         00000000.00082000
      Shared memory segment: FFFFFFFF.7F2BA000   Length:         00000000.0000A000
      CPU comms segment:     FFFFFFFF.7F2C4000   Length:         00000000.00014000
      CPU info segment:      FFFFFFFF.7F2D8000   Length:         00000000.00002000
      Membership segment:    FFFFFFFF.7F2DA000   Length:         (empty)
    
    MMAP address:            FFFFFFFF.7F234200
    
      Level count:                        0000   Flags:                       0001  VALID
      Top page count:                 00000053   Virtual size:   00000000.000A6000
      PFN list page count:            00000000   First PFN:               00060000
      Data page count:                00000053

    This example shows the overall summary of the Galaxy Management Database.

  2. SDA> SHOW GMDB/NODE=0
    
    GMDB: Node ID 00000000 (current instance)
    -----------------------------------------
    
    Base address of node block:                  FFFFFFFF.7F236000
    
      Version:                             1.0   Node name:                 ANDA1A
      Join time:       31-MAR-1999 14:11:09.08   Incarnation:    00000000.00000005
      State:                            MEMBER   Crash_all acknowledge:   00000000
      Validation done:                00000000   Reform done:             00000000
    
      IP interrupt mask:     00000000.00000000
    
    Little brother:                   00000002   Heartbeat:      00000000.0019EAD1
    Big brother:                      00000001   Last watched_node:       00000000
    
      Watched_node #0:       FFFFFFFF.7F236078   Node watched:            00000002
      Last heartbeat:        00000000.0017C1AD   Miss count:              00000000

    This example shows Galaxy Management Database information for the specified instance.

4.48. SHOW GSD

Displays information contained in the global section descriptors.

Format

SHOW GSD [/ADDRESS=n | /ALL | /DELETED | /GLXGRP

| /GLXSYS | /GROUP | /SYSTEM]

Parameters

None.

Qualifiers

/ADDRESS=n

Displays a specific global section descriptor entry, given its address.

/ALL

Displays information in all the global section descriptors, that is, the system, group, and deleted global section descriptors, plus the Galaxy group and Galaxy system global section descriptors, if the system or dump being analyzed is a member of an OpenVMS Galaxy system. This qualifier is the default.

/DELETED

Displays information in the deleted (that is, delete pending) global section descriptors.

/GLXGRP

Displays information in the group global section descriptors of a Galaxy system.

/GLXSYS

Displays information in the system global section descriptors of a Galaxy system.

/GROUP

Displays information in the group global section descriptors.

/SYSTEM

Displays information in the system global section descriptors.

Description

The SHOW GSD command displays information that resides in the global section descriptors. The table below shows the fields and their meaning.

FieldMeaning
ADDRESSGives the address of the global section descriptor.
NAMEGives the name of the global section.
GSTXGives the global section table index.
FLAGSGives the settings of flags for specified global section, as a hexadecimal number; also displays key flag bits by name.
BASEPFN 1Gives physical page frame number at which the section starts. This field applies only to PFN mapped global sections.
PAGES 1Gives number of pages (not pagelets) in section. This field applies only to PFN mapped global sections.
REFCNT 1Gives number of times this global section is mapped. This field applies only to PFN mapped global sections.

Examples

4.49. SHOW GST

See SHOW GLOBAL_SECTION_TABLE.

4.50. SHOW HEADER

Displays the header of the dump file.

Format

SHOW HEADER

Parameters

None.

Qualifiers

None.

Description

The SHOW HEADER command produces a 10-column display, each line of which displays both the hexadecimal and ASCII representation of the contents of the dump file header in 32-byte intervals. Thus, the first eight columns, when read right to left, represent the hexadecimal contents of 32 bytes of the header; the ninth column, when read left to right, records the ASCII equivalent of the contents. (The period [.] in this column indicates an ASCII character that cannot be displayed.)

After it displays the contents of the header blocks, the SHOW HEADER command displays the hexadecimal contents of the saved error log buffers.

See the OpenVMS AXP Internals and Data Structures manual for a discussion of the information contained in the dump file header. See also the SHOW DUMP and CLUE ERRLOG commands, which you can use to obtain formatted displays of the dump header and error log buffers.

See also the SHOW DUMP command, which will output a formatted display of the contents of the dump header.

Examples

4.51. SHOW IMAGE

Displays information about an image, regardless of the type of image (executive, activated, or installed).

Format

SHOW IMAGE image-name

Parameters

image-name

Name of the image to be displayed. This is a required parameter that may include wildcards.

Qualifiers

None.

Description

Searches the executive image list for the image name, and, if a match is found, displays the loaded image information. Next, searches the activated image list for the process (if SDA has a current process context). If a match is found, displays the activated image information. Finally, searches the installed image lists, directory by directory. If a match is found, displays the installed image (known file entry) information.

SHOW IMAGE x is equivalent to SHOW EXECUTIVE x followed by SHOW PROCESS/IMAGE=x followed by SHOW KFE x .

Examples

  1. SDA> show image sys$public_vectors
    
    Image SYS$PUBLIC_VECTORS
    ------------------------
    
                                VMS Executive image layout
                                --------------------------
    
    Image                                   Base               End             Length       ImageOff  SymVec
    --------------------------------- ----------------- ----------------- ----------------- -------- --------
    SYS$PUBLIC_VECTORS                                                                               81804B18
        Nonpaged read only            FFFFFFFF.80000000 FFFFFFFF.800025FF 00000000.00002600 00000000
        Nonpaged read/write           FFFFFFFF.81800000 FFFFFFFF.81807FFF 00000000.00008000 00004000
            Linked 30-AUG-2004 09:36  LDRIMG 81C17480   SeqNum 00000000 --< sliced >--
    
    
                                Process activated images
                                ------------------------
    
       Image Name/Link Time/Section Type     Start     End    Type/File Id
    --------------------------------------- -------- -------- ------------
    SYS$PUBLIC_VECTORS                      81804B18 818071B7 GLBL
    
                            IMCB   Sym Vect Maj,Minor ID   Base     End    ImageOff
                          -------- -------- ------------ -------- -------- --------
                          7FF6A250 81804B18 113,16596271
    
    
    
                                Known File Entries
                                ------------------
    
    KFD Device/Directory/Type: $31$DKB100:<SYS0.SYSCOMMON.SYSLIB>.EXE
    -----------------------------------------------------------------
    
        KFE                   Image Name/                KFERES Address/       File ID/      Flags/
      Address                 Section Type                     Base              End        ImageOff
      --------  --------------------------------------- ----------------- ----------------- --------
      82984C50  SYS$PUBLIC_VECTORS;1                                      (3923,194,0)

    This example shows the output from SHOW IMAGE for SYS$PUBLIC_VECTORS. Part of the example has been moved left to stay within page boundaries of the manual.

4.52. SHOW KFE

Displays information about known file entries (installed images).

Format

SHOW KFE [image_name | /ADDRESS=kfe_address | /ALL]

SHOW KNOWN_FILE_ENTRY [image_name | /ADDRESS=kfe_address | /ALL]

Parameters

image-name

Name of the image to be displayed. This may include wildcards, but cannot include device or directory information.

Qualifiers

/ADDRESS=kfe_address

Specifies the address of a single KFE of interest. The details are displayed for this KFE with device/directory information from the corresponding KFD (Known File Directory).

/ALL

Displays details for all KFEs, including device/directory information from the corresponding KFDs, with the contents of the Known File Pointer Block (KFPB).

Description

The SHOW KFE command displays information about known files (installed images). By default, a summary line without image-section information is given for each image. Use the /ALL qualifier to obtain detailed information for all images. For a single image, specify the image name or KFE address.

The image_name parameter, the /ADDRESS, and /ALL qualifiers cannot be used together. SHOW KNOWN_FILE_ENTRY is a synonym for SHOW KFE.

Examples

  1. SDA> SHOW KFE
    Known File Entries
    ------------------
    
    KFPB address:                 8292D860
    Hash table address:           82975360
    Hash table size:                  0080
    Entry count:                      016F
    
    KFD Device/Directory/Type: $31$DKB100:<SYS0.SYSCOMMON.CDE$DEFAULTS.SYSTEM.BIN>.EXE
    ---------------------------------------------------------
    
      KFD address:                829E8D60
      Reference count:                0002
    
        KFE     Image Name          KFERES Address    File ID         Flags
      --------  ------------------- ----------------- -------------   --------
      829E8290  DECW$LOGINOUT;1     (7204,49,0)       LIM Open HdrRes Shared
      829E8DB0  DTGREET;1           (5651,19,0)       Open HdrRes     Shared
    
    KFD Device/Directory/Type: $31$DKB100:<SYS0.SYSCOMMON.SYSEXE>.EXE
    -----------------------------------------------------------------
    
      KFD address:                8299C140
      Reference count:                0066
    
        KFE     Image Name                 KFERES Address       File ID       Flags
      --------  ------------------------ ----------------- ----------------- --------
      8299C210  AUTHORIZE;1                                (72,176,0)        ProcPriv AuthPriv
      829ACE10  BACKUP;1                                   (73,176,0)
      8299C2A0  CDU;1                                      (75,176,0)        ProcPriv Open HdrRes AuthPriv
      8299C660  CIA;1                                      (510,176,0)       ProcPriv AuthPriv
      829ACE90  CONVERT;1                                  (77,176,0)
      829A3AD0  COPY;1                   829A3E70          (78,176,0)        Open HdrRes Shared
      829ACF10  CREATE;1                                   (79,176,0)
      .
      .
      .
    

    This example shows the first page of summary output for all known images.

  2. SDA> show kfe decc*
    
    Known File Entries
    ------------------
    
    KFD Device/Directory/Type: $31$DKB100:<SYS0.SYSCOMMON.SYSLIB>.EXE
    -----------------------------------------------------------------
    
        KFE          Image Name/               KFERES Address/       File ID/      Flags/
      Address        Section Type                    Base              End        ImageOff
      --------  ----------------------------- ----------------- ----------------- --------
      829900B0  DECC$SHR;1                    82990960          (2431,189,0)      LIM Open HdrRes
                                                                                           Shared ResCode
    
                    Paged read only           FFFFFFFF.80A70000 FFFFFFFF.80C815FF 00000000
                    Initialization            00000000.7BEC0000 00000000.7BF00DFF 00220000
                    Fixup                     00000000.7BF10000 00000000.7BF1B1FF 00270000
                    Nonpaged read/write       00000000.7BF20000 00000000.7BF2FBFF 00280000
                    Nonpaged read/write       00000000.7BF30000 00000000.7BF309FF 00290000
    
                    Fixup                     00000000.7BF40000 00000000.7BF401FF 002A0000
                    Paged read/write          00000000.7BF50000 00000000.7BF56FFF 002B0000
    
    
    KFD Device/Directory/Type: $31$DKB100:<SYS0.SYSCOMMON.SYSMSG>.EXE
    -----------------------------------------------------------------
    
        KFE         Image Name/                KFERES Address/     File ID/ Flags/
      Address       Section Type                     Base            End    ImageOff
      --------  --------------------------------------- ------------ --- --------
      829AE4F0  DECC$MSG;1                                    (257,176,0)  LIM Open HdrRes Shared

    This example shows the details for all images that match the wildcard DECC*.

4.53. SHOW KNOWN_FILE_ENTRY

See SHOW KFE.

4.54. SHOW LAN

Displays information contained in various local area network (LAN) data structures.

Format

SHOW LAN [/qualifier[,...]]

Parameters

None.

Qualifiers

/ATM

Specifies that asynchronous transfer mode (ATM) information for the LAN be displayed.

/CLIENT=name

Specifies that information be displayed for the specified client. Valid client designators are SCA, DECNET, LAT, MOPRC, TCPIP, DIAG, ELN, BIOS, LAST, USER, ARP, MOPDL, LOOP, BRIDGE, DNAME, ENCRY, DTIME, and LTM. The /CLIENT, /DEVICE, and /UNIT qualifiers are synonymous and mutually exclusive.

/COUNTERS

Specifies that the LAN station block (LSB) and unit control block (UCB) counters be displayed.

/CSMACD

Specifies that Carrier Sense Multiple Access with Collision Detect (CSMA/CD) information for the LAN be displayed. By default, both CSMA/CD and Fiber Distributed Data Interface (FDDI) information is displayed.

/DEVICE=name

Specifies that information be displayed for the specified device, unit, or client. For each LAN adapter on the system, there is one device and multiple users of that device called, units or clients. Device designators are specified in the format XXdn, where XX is the type of device, d is the device letter, and n is the unit number. The device letter and unit number are optional. The first unit, which is always present, is the template unit. These are specified as indicated in this example for a DEMNA called EX:

/DEVICE=EX---display all EX devices on the system

/DEVICE=EXA---display the first EX device only

/DEVICE=EXA0---display the first EXA unit

/DEVICE=SCA---display SCA unit

/DEVICE=LAT---display LAT units

Valid client names are listed in the /CLIENT=name qualifier. The /CLIENT, /DEVICE, and /UNIT qualifiers are synonymous and mutually exclusive.

/ELAN

Specifies information from an Emulated LAN (ELAN) that runs over an asynchronous transfer mode (ATM) network. The /ELAN qualifier displays the LAN Station Block (LSB) address, device state, and the LSB fields pertinent to an ELAN for both the parent ATM device and the ELAN pseudo-device drivers. It also specifies the name, description, parent device, state, and LAN emulation client (LEC) attributes of the ELAN.

The qualifier /ELAN used with the device qualifier (/ELAN/DEVICE=ELA) will only display information for the specified device or pseudo-device.

/ERRORS

Specifies that the LSB and UCB error counters be displayed.

/FDDI

Specifies that Fiber Distributed Data Interface (FDDI) information for the LAN be displayed. By default, both CSMA/CD and FDDI information is displayed.

/FULL

Specifies that all information from the LAN, LSB, and UCB data structures be displayed.

/INTERNAL

Specifies internal counters of the drivers by displaying the internal counters. If the /INTERNAL qualifier is used with the /DEVICE qualifier, the /INTERNAL specifies the internal counters of a specific driver.

/QUEUES

Specifies a listing of all queues, whether their status is valid or invalid, and all elements of the queues. If the /QUEUES qualifier is used with the /DEVICE qualifier, the /QUEUES specifies a specific queue.

/SOURCEROUTING

Specifies that the information in the source routing table maintained by the Token Ring driver be displayed.

/SUMMARY

Specifies that only a summary of LAN information (a list of flags, LSBs, UCBs, and base addresses) be printed. This is the default.

/TIMESTAMPS

Specifies that time information (such as start and stop times and error times) from the device and unit data structures be printed. SDA displays the data in chronological order.

/TR

Specifies that Token Ring information for the LAN be displayed.

/UNIT=name

Specifies that information be displayed for the specified unit. See the descriptions for /CLIENT=name and /DEVICE=name qualifiers.

/VCI

Specifies that information be displayed for the VMS Communication Interface Block (VCIB) for each LAN device with an active VCI user. If you use the /VCI qualifier with the /DEVICE qualifier, the VCIB is only displayed for the specified device.

Description

The SHOW LAN command displays information contained in various local area network (LAN) data structures. By default, or when the /SUMMARY qualifier is specified, SHOW LAN displays a list of flags, LSBs, UCBs, and base addresses. When the /FULL qualifier is specified, SHOW LAN displays all information found in the LAN, LSB, and UCB data structures.

Examples

  1. SDA>  SHOW LAN/FULL
    LAN Data Structures
    -------------------
                   -- LAN Information Summary 23-MAY-1996 13:07:52 --
    LAN flags:  00000004 LAN_INIT
    LAN block address           80DB7140    Timer DELTA time            10000000
    Number of stations                 2    DAT sequence number                1
    LAN module version                 1    First SVAPTE                FFDF60F0
    LANIDEF version                   51    Number of PTEs                     3
    LANUDEF version                   26    SVA of first page           8183C000
    First LSB address           80DCA980
    
                -- LAN CSMACD Network Management 23-MAY-1996 13:07:52 --
    Creation time                   None    Times created                      0
    Deletion time                   None    Times deleted                      0
    Module EAB                  00000000    Latest EIB                  00000000
    Port EAB                    00000000
    Station EAB                 00000000
    NM flags:   00000000
                 -- LAN FDDI Network Management 23-MAY-1996 13:07:52 --
    Creation time                   None    Times created                      0
    Deletion time                   None    Times deleted                      0
    Module EAB                  00000000    Link EAB                    00000000
    Port EAB                    00000000    PHY port EAB                00000000
    Station EAB                 00000000    Module EIB                  00000000
    NM flags:   00000000
    LAN Data Structures
    -------------------
                   -- ESA Device Information 23-MAY-1996 13:07:52 --
    LSB address                 80DCA980    Driver code address         80CAE838
    Driver version     00000001.07010037    Device1 code address        00000000
    Device1 version    00000000.00000000    Device2 code address        00000000
    Device2 version    00000000.00000000    LAN code address            80CAFA00
    LAN version        00000001.07010112    DLL type                      CSMACD
    Device name                 EY_NITC2    MOP name                         MXE
    MOP ID                            94    HW serial               Not supplied
    HW version                  00000000    Promiscuous mode                 OFF
    Controller mode               NORMAL    Promiscuous UCB             00000000
    Internal loopback                OFF    All multicast state              OFF
    Hardware address   08-00-03-DE-00-12    CRC generation mode               ON
    Physical address   AA-00-04-00-88-FE    Full Duplex Enable               OFF
    Active unit count                  1    Full Duplex State                OFF
    Line speed                        10
    Flags:  00000000
    Char:   00000000
    Status: 00000003 RUN,INITED
    
    
    
    
    LAN Data Structures
    -------------------
                -- ESA Device Information (cont) 23-MAY-1996 13:07:52 --
    Put rcv ptr/index           00000000    Get rcv ptr/index           00000015
    Put xmt ptr/index           80DCB620    Get xmt ptr/index           80DCB620
    Put cmd ptr/index           00000000    Get cmd ptr/index           00000000
    Put uns ptr/index           00000000    Get uns ptr/index           00000000
    Put smt ptr/index           00000000    Get smt ptr/index           00000000
    RBufs owned by dev                 0    Rcv packet limit                  32
    XEnts owned by dev                 0    XEnts owned by host                4
    CEnts owned by dev                 0    Transmit timer                     0
    UEnts owned by dev                 0    Control timer                      0
    SEnts owned by dev                 0    Periodic SYSID timer             599
    Current rcv buffers               17    Ring unavail timer                 0
    Rqst MAX rcv buffers              32    USB timer                         26
    Rqst MIN rcv buffers              16    Receive alignment                  0
    Curr MAX rcv buffers              32    Receive buffer size             1518
    Curr MIN rcv buffers              16    Min 1st chain segment              0
    FILL rcv buffers                  16    Min transmit length                0
    ADD  rcv buffers                  32    Dev xmt header size                0
    LAN Data Structures
    -------------------
                -- ESA Device Information (cont) 23-MAY-1996 13:07:52 --
    Last receive         23-MAY 13:07:51    Last transmit        23-MAY 13:07:50
    ADP address                 80D4B280    IDB address                 80DCA880
    DAT stage                   00000000    DAT xmt status     0000003C.003C0001
    DAT number started                 1    DAT xmt complete     23-MAY 13:07:19
    DAT number failed                  0    DAT rcv found                   None
    DAT VCRP                    80DCBB80    DAT UCB                     00000000
    Mailbox enable flag                0    CRAM read comman            00000000
    CSR base phys addr 00000000.00000000    CRAM write comma            00000000
    Mailboxes in use                   0    Media                           UNDF
    2nd LW status flags         00000000
    LAN Data Structures
    -------------------
             -- ESA Network Management Information 23-MAY-1996 13:07:52 --
    Creation time                   None    Create count                       0
    Deletion time                   None    Enable count                       0
    Enabled time                    None    Number of ports                    0
    Disabled time                   None    Events logged                      0
    EIB address                 00000000    NMgmt assigned addr             None
    LLB address                 00000000    Station name itmlst         00000000
    LHB address                 00000000    Station itmlst len                 0
    First LPB address           00000000
    LAN Data Structures
    -------------------
                    -- ESA Fork Information 23-MAY-1996 13:07:52 --
    ISR   FKB sched      23-MAY 13:07:51    ISR   FKB in use flag           FREE
    ISR   FKB time       23-MAY 13:07:51    ISR   FKB count                  200
    IPL8  FKB sched      23-MAY 13:07:20    IPL8  FKB in use flag           FREE
    IPL8  FKB time       23-MAY 13:07:20    IPL8  FKB count                    1
    RESET FKB sched                 None    RESET FKB in use flag           FREE
    RESET FKB time                  None    RESET FKB count                    0
    NM    FKB sched                 None    NM    FKB in use flag           FREE
    NM    FKB time                  None    NM    FKB count                    0
    Fork status code                   0
    
    
    
    
    LAN Data Structures
    -------------------
                    -- ESA Queue Information 23-MAY-1996 13:07:52 --
    Control hold queue      80DCACF0  Status:  Valid, empty
    Control request queue   80DCACF8  Status:  Valid, empty
    Control pending queue   80DCAD00  Status:  Valid, empty
    Transmit request queue  80DCACE8  Status:  Valid, empty
    Transmit pending queue  80DCAD18  Status:  Valid, empty
    Receive buffer list     80DCAD38  Status:  Valid, 17 elements
    Receive pending queue   80DCAD20  Status:  Valid, empty
    Post process queue      80DCAD08  Status:  Valid, empty
    Delay queue             80DCAD10  Status:  Valid, empty
    Auto restart queue      80DCAD28  Status:  Valid, empty
    Netwrk mgmt hold queue  80DCAD30  Status:  Valid, empty
              -- ESA Multicast Address Information 23-MAY-1996 13:07:52 --
    AB-00-00-04-00-00
                      -- ESA Unit Summary 23-MAY-1996 13:07:52 --
    UCB      UCB Addr  Fmt   Value           Client     State
    ---      --------  ---   -----           ------  -----------
    ESA0     80D4F6C0
    ESA1     80E35400  Eth   60-03           DECNET  0017 STRTN,LEN,UNIQ,STRTD
    LAN Data Structures
    -------------------
                  -- ESA Counters Information 23-MAY-1996 13:07:52 --
    Octets received                  596    Octets sent                      230
    PDUs received                      8    PDUs sent                          5
    Mcast octets received            596    Mcast octets sent                138
    Mcast PDUs received                8    Mcast PDUs sent                    3
    Unrec indiv dest PDUs              0    PDUs sent, deferred                0
    Unrec mcast dest PDUs              1    PDUs sent, one coll                0
    Data overruns                      0    PDUs sent, mul coll                0
    Unavail station buffs              0    Excessive collisions               0
    Unavail user buffers               0    Late collisions                    0
    CRC errors                         0    Carrier check failure              0
    Alignment errors                   0    Last carrier failure            None
    Rcv data length err                0    Coll detect chk fail               5
    Frame size errors                  0    Short circuit failure              0
    Frames too long                    0    Open circuit failure               0
    Seconds since zeroed              34    Transmits too long                 0
    Station failures                   0    Send data length err               0
    
    
    
    
    LAN Data Structures
    -------------------
               -- ESA Counters Information (cont) 23-MAY-1996 13:07:52 --
    No work transmits                  0    Ring avail transitions             0
    Buffer_Addr transmits              0    Ring unavail transitions           0
    SVAPTE/BOFF transmits              0    Loopback sent                      0
    Global page transmits              0    System ID sent                     0
    Bad PTE transmits                  0    ReqCounters sent                   0
    Restart pending counter            0    Internal counters size            40
    +00 MCA not enabled              187    +2C Generic (or unused)     00000000
    +04 Xmt underflows                 0    +30 Generic (or unused)     00000000
    +08 Rcv overflows                  0    +34 Generic (or unused)     00000000
    +0C Memory errors                  0    +38 Generic (or unused)     80DCAD18
    +10 Babbling errors                0    +3C Generic (or unused)     80DCAD18
    +14 Local buffer errors            0    +40 Generic (or unused)     004E0840
    +18 LANCE interrupts             202    +44 Generic (or unused)     61616161
    +1C Xmt ring <31:0>         00000000    +48 Generic (or unused)     61616161
    +20 Xmt ring <63:32>        00000000    +4C Generic (or unused)     61616161
    +24 Soft errors handled            0    +50 Generic (or unused)     61616161
    +28 Generic (or unused)     00000000    +54 Generic (or unused)     61616161
    LAN Data Structures
    -------------------
                    -- ESA Error Information 23-MAY-1996 13:07:52 --
    Fatal error count                  0    Last error CSR              00000000
    Fatal error code                None    Last fatal error                None
    Prev  error code                None    Prev fatal error                None
    Transmit timeouts                  0    Last USB time                   None
    Control timeouts                   0    Last UUB time                   None
    Restart failures                   0    Last CRC time                   None
    Power failures                     0    Last CRC srcadr                 None
    Bad PTE transmits                  0    Last length erro                None
    Loopback failures                  0    Last exc collisi                None
    System ID failures                 0    Last carrier fai                None
    ReqCounters failures               0    Last late collis                None
    LAN Data Structures
    -------------------
                 -- ESA0 Template Unit Information 23-MAY-1996 13:07:52 --
    LSB address                 80DCA980    Error count                        0
    VCIB address                00000000    Parameter mask              00000000
    Stop IRP address            00000000    Promiscuous mode                 OFF
    Restart IRP address         00000000    All multicast mode               OFF
    LAN medium                    CSMACD    Source Routing mode      TRANSPARENT
    Packet format               Ethernet    Access mode                EXCLUSIVE
    Eth protocol type              00-00    Shared user DES                 None
    802E protocol ID      00-00-00-00-00    Padding mode                      ON
    802.2 SAP                         00    Automatic restart           DISABLED
    802.2 Group SAPs         00,00,00,00    Allow prom client                 ON
    Controller mode               NORMAL    Can change address               OFF
    Internal loopback                OFF    802.2 service                   User
    CRC generation mode               ON    Rcv buffers to save                1
    Functional Addr mod               ON    Minimum rcv buffers                4
    Hardware address   08-00-03-DE-00-12    User transmit FC/AC               ON
    Physical address   FF-FF-FF-FF-FF-FF    User receive FC/AC               OFF
    
    
    
    
    LAN Data Structures
    -------------------
              -- ESA1 60-03 (DECNET) Unit Information 23-MAY-1996 13:07:52 --
    LSB address                 80DCA980    Error count                        0
    VCIB address                00000000    Parameter mask              00DA8695
    Stop IRP address            80E047C0    Promiscuous mode                 OFF
    Restart IRP address         00000000    All multicast mode               OFF
    LAN medium                    CSMACD    Source Routing mode      TRANSPARENT
    Packet format               Ethernet    Access mode                EXCLUSIVE
    Eth protocol type              60-03    Shared user DES                 None
    802E protocol ID      00-00-00-00-00    Padding mode                      ON
    802.2 SAP                         00    Automatic restart           DISABLED
    802.2 Group SAPs         00,00,00,00    Allow prom client                 ON
    Controller mode               NORMAL    Can change address               OFF
    Internal loopback                OFF    802.2 service                   User
    CRC generation mode               ON    Rcv buffers to save               10
    Functional Addr mod               ON    Minimum rcv buffers                4
    Hardware address   08-00-03-DE-00-12    User transmit FC/AC               ON
    Physical address   AA-00-04-00-88-FE    User receive FC/AC               OFF
    LAN Data Structures
    -------------------
          -- ESA1 60-03 (DECNET) Unit Information (cont) 23-MAY-1996 13:07:52 --
    Last receive         23-MAY 13:07:47    Starter's PID               0001000F
    Last transmit        23-MAY 13:07:50    Maximum header size               16
    Last start attempt   23-MAY 13:07:20    Maximum buffer size             1498
    Last start done      23-MAY 13:07:20    Rcv quota charged              15040
    Last start failed               None    Default FC value                  00
    MCA match enabled                 01    Default AC value                  00
    Last MCA filtered  AB-00-00-04-00-00    Maintenance state                 ON
    UCB status:  00000017 STRTN,LEN,UNIQ,STRTD
    Receive IRP queue       80E356E8  Status:  Valid, 1 element
    Receive pending queue   80E356E0  Status:  Valid, empty
    Multicast address table, embedded:
      AB-00-00-04-00-00
    LAN Data Structures
    -------------------
            -- ESA1 60-03 (DECNET) Counters Information 23-MAY-1996 13:07:52 --
    Octets received                  483    Octets sent                      180
    PDUs received                      7    PDUs sent                          3
    Mcast octets received            483    Mcast octets sent                180
    Mcast PDUs received                7    Mcast PDUs sent                    3
    Unavail user buffer                0    Multicast not enabled              0
    Last UUB time                   None    User buffer too small              0
    

    The SHOW LAN/FULL command displays information for all LAN, LSB, and UCB data structures.

  2. SDA>  SHOW LAN/TIME
                   -- LAN History Information 12-FEB-1995 11:08:48 --
    12-FEB 11:08:47.92  ESA               Last receive
    12-FEB 11:08:47.92  ESA               Last fork scheduled
    12-FEB 11:08:47.92  ESA               Last fork time
    12-FEB 11:08:47.77  ESA5     LAST     Last receive
    12-FEB 11:08:47.72  ESA3     LAT      Last receive
    12-FEB 11:08:41.25  ESA               Last transmit
    12-FEB 11:08:41.25  ESA5     LAST     Last transmit
    12-FEB 11:08:40.02  ESA2     DECnet   Last receive
    12-FEB 11:08:39.14  ESA2     DECnet   Last transmit
    12-FEB 11:08:37.39  ESA3     LAT      Last transmit
    12-FEB 10:19:25.31  ESA               Last unavail user buffer
    12-FEB 10:19:25.31  ESA2     DECnet   Last unavail user buffer
    11-FEB 14:10:20.09  ESA5     LAST     Last start completed
    11-FEB 14:10:02.16  ESA3     LAT      Last start completed
    11-FEB 14:09:58.44  ESA2     DECnet   Last start completed
    11-FEB 14:09:57.44  ESA               Last DAT transmit

    The SHOW LAN/TIME command displays print time information from device and unit data structures.

  3. SDA> SHOW LAN/VCI/DEVICE=ICB
                   -- ICB VCI Information 17-APR-1996 14:22:07 --
    LSB address  = 80A1D580
    Device state = 00000003 RUN,INITED
             -- ICB2 80-41 (LAST) VCI Information 17-APR-1996 14:22:07 --
    VCIB address =    8096F238
    CLIENT flags:     00000001 RCV_DCB
    LAN flags:        00000004 LAN_INIT
    DLL flags:        00000005 XMT_CHAIN,PORT_STATUS
    UCB status:       00000015 STRTN,UNIQ,STRTD
    VCI ID                         LAST    VCI version               00010001
    UCB address                80A4C5C0    DP VCRP address           00000000
    Hardware address  00-00-93-08-52-CF    LDC address               80A1D720
    Physical address  00-00-93-08-52-CF    LAN medium                      TR
    Transmit available         80A1D670    Outstanding operations           0
    Maximum receives                  0    Outstanding receives             0
    Max xmt size                   4444    Header size                     52
    Build header rtn           808BF230    Report event rtn          86327130
    XMT initiate rtn           808BF200    Transmit complete rtn     86326D80
    XMT frame rtn              808BF210    Receive complete rtn      86326A80
          -- ICB2 80-41 (LAST) VCI Information (cont) 17-APR-1996 14:22:07 --
    Portmgmt initiate rtn      808BF0C0    Portmgmt complete rtn     86327100
    Monitor request rtn        00000000    Monitor transmit rtn      00000000
    Monitor flags              00000000    Monitor receive rtn       00000000
    Port usable                00000000    Port unusable             00000000

    The SHOW LAN/VCI/DEVICE=ICB command displays the VCIB for a Token Ring device (ICB) that has an active VCI user (LAST).

  4. SDA> SHOW LAN/ELAN
            -- HCA Emulated LAN LSB Information 17-APR-1996 14:08:02 --
    LSB address = 8098D200
    Device state = 00000101 RUN,RING_AVAIL
    Driver CM VC setup adr   808986A0    Driver CM VC teardown adr    80898668
    NIPG CM handle adr       8096C30C    NIPG CM SVC handle           00000000
    NIPG CM agent handle adr 809B364C    NIPG CM mgr lineup handle    809B394C
    NIPG CM ILMI IO handle   809B378C    MIB II handle adr            809B94CC
    MIB handle adr           809B3ACC    Queue header for EL LSBs     00000000
    DEC MIB handle adr       809BBD8C    NIPG current TQEs used       00000000
    Count of allocated TQEs  0000000D    NIPG current pool used       0000D2C0
    NIPG pool allocations    00075730
            -- ELA Emulated LAN LSB Information 17-APR-1996 14:08:02 --
    LSB address = 80AB08C0
    Device state = 00000001 RUN
    ELAN name = ELAN 1
    ELAN description = ATM ELAN
    ELAN parent = HCA0
    ELAN state = 00000001 ACTIVE
    MAX transmit size     MTU_1516          ELAN media type      LAN_802_3
    LEC attr buff adr     80AB1FC0          LEC attr buff size    00000328
    Event mask            00000000          PVC identifer         00000000
    Extended sense        00000000
             -- ELA Emulated LAN LEC Attributes 17-APR-1996 14:08:02 --
    LAN type          00000000          LAN MTU              00000001
    Proxy flag        00000000          Control timeout      0000000A
    Max UF count      00000001          Max UF time          00000001
    VCC timeout       000004B0          Max retry count      00000002
    LEC id            00000002          Forw delay time      0000000F
    Flush timeout     00000004          Path switch delay    00000006
    SM state          00000070          Illegal CTRL frames  00000000
    CTRL xmt failures 00000000          CTRL frames sent     0000000C
    CTRL frames_rcvd  00000012          LEARPs sent          00000000
    LEARPS rcvd       00000000          UCASTs sent direct   00000000
    UCASTs flooded    00000006          UCASTs discarded     00000001
    NUCASTs sent      00000000
    Local ESI         00000000.00000000
    BUS ATM addr      3999990000000008002BA57E80.AA000302FF12.00
    LES ATM addr      3999990000000008002BA57E80.AA000302FF14.00
    My ATM addr       3999990000000008002BA57E80.08002B2240A0.00
    

    The SHOW LAN/ELAN command displays information for the parent ATM device (HCA) driver and the ELAN pseudo-device (ELA) driver.

  5. SDA> SHOW LAN/ELAN/DEV=ELA
            -- ELA Emulated LAN LSB Information 17-APR-1996 14:08:22 --
    LSB address = 80AB08C0
    Device state = 00000001 RUN
    ELAN name = ELAN 1
    ELAN description = ATM ELAN
    ELAN parent = HCA0
    ELAN state = 00000001 ACTIVE
    MAX transmit size     MTU_1516          ELAN media type      LAN_802_3
    LEC attr buff adr     80AB1FC0          LEC attr buff size    00000328
    Event mask            00000000          PVC identifer         00000000
    Extended sense        00000000
             -- ELA Emulated LAN LEC Attributes 17-APR-1996 14:08:22 --
    LAN type             00000000          LAN MTU              00000001
    Proxy flag           00000000          Control timeout      0000000A
    Max UF count         00000001          Max UF time          00000001
    VCC timeout          000004B0          Max retry count      00000002
    LEC id               00000002          Forw delay time      0000000F
    Flush timeout        00000004          Path switch delay    00000006
    SM state             00000070          Illegal CTRL frames  00000000
    CTRL xmt failures    00000000          CTRL frames sent     0000000C
    CTRL frames_rcvd     00000012          LEARPs sent          00000000
    LEARPS rcvd          00000000          UCASTs sent direct   00000000
    UCASTs flooded       00000006          UCASTs discarded     00000001
    NUCASTs sent         00000000
    Local ESI            00000000.00000000
    BUS ATM addr         3999990000000008002BA57E80.AA000302FF12.00
    LES ATM addr         3999990000000008002BA57E80.AA000302FF14.00
    My ATM addr          3999990000000008002BA57E80.08002B2240A0.00
    

    The SHOW LAN/ELAN/DEVICE=ELA command displays information for the ELAN pseudo-device (ELA) driver only.

  6. SDA>  SHOW LAN/ELAN/DEVICE=HCA
           -- HCA Emulated LAN LSB Information 17-APR-1996 14:08:25 --
    LSB address = 8098D200
    Device state = 00000101 RUN,RING_AVAIL
    Driver CM VC setup adr   808986A0    Driver CM VC teardown adr    80898668
    NIPG CM handle adr       8096C30C    NIPG CM SVC handle           00000000
    NIPG CM agent handle adr 809B364C    NIPG CM mgr lineup handle    809B394C
    NIPG CM ILMI IO handle   809B378C    MIB II handle adr            809B94CC
    MIB handle adr           809B3ACC    Queue header for EL LSBs     00000000
    DEC MIB handle adr       809BBD8C    NIPG current TQEs used       00000000
    Count of allocated TQEs  0000000D    NIPG current pool used       0000D2C0
    NIPG pool allocations    000757B2
    

    The SHOW LAN/ELAN/DEVICE=HCA command displays information for the ATM device (HCA) driver only.

4.55. SHOW LOCKS

Displays information about all lock management locks in the system, or about a specified lock.

Format

SHOW LOCKS [ lock-id

| /ADDRESS=n

| /ALL (d)

| /BRIEF

| /BLOCKING

| /CACHED

| /CONVERT

| /GRANTED

| /NAME=name

| /STATUS=(keyword[,...])

| /WAITING ] or SHOW LOCKS {/POOL | /SUMMARY}

Parameters

lock-id

Name of a specific lock.

Qualifiers

/ADDRESS=n

Displays a specific lock, given the address of the lock block.

/ALL

Lists all locks that exist in the system. This is the default behavior of the SHOW LOCKS command.

/BLOCKING

Displays only the locks that have a blocking AST specified or attached.

/BRIEF

Displays a single line of information for each lock.

/CACHED

Displays locks that are no longer valid. The memory for these locks is saved so that later requests for locks can use them. Cached locks are not displayed in the other SHOW LOCKS commands.

/CONVERT

Displays only the locks that are on the conversion queue.

/GRANTED

Displays only the locks that are on the granted queue.

/NAME=name

Displays all locks on the specified resource. Name can be the actual name of the resource, if it only contains uppercase letters, numerals, the underscore (_), dollar sign, colon (:), and some other printable characters, as for example, /NAME=MY_LOCK. If it contains other printable characters (including lowercase letters), you may need to enclose the name in quotation marks (""), as for example, /NAME="My_Lock/47". If it contains nonprintable characters, you can specify the name as a comma-separated list comprised of strings and hexadecimal numbers. For example, /NAME=("My_Lock",0C00,"/47") would specify the name "My_Lock<NUL><FF>/47". The hexadecimal number can be no more than 8 digits (4 bytes) in length. Nonprintable sequences of more than 4 bytes must be split into multiple hexadecimal numbers. The maximum length of a resource name is 32 characters.

/POOL

Displays the lock manager's poolzone information, which contains the lock blocks (LKB) and resource blocks (RSB).

/STATUS=(keyword[,...])

Displays only the locks that have the specified status bits set in the LKB$L_STATUS field. If you specify only one keyword, you can omit the parentheses. Status keywords are as follows:

KeywordMeaning
2PC_IPIndicates a two-phase operation in progress
2PC_PENDIndicates a two-phase operation pending
ASYNCCompletes request asynchronously
BLKASTFLGSpecifies a blocking AST
BLKASTQEDIndicates a blocking AST is queued
BRLIndicates a byte range lock
CACHEDIndicates a lock block in cache
CVTSUBRNGIndicates a sub-range convert request
CVTTOSYSConverts back to system-owned lock
DBLKASTDelivers a blocking AST
DCPLASTDelivers a completion AST
DPCIndicates a delete pending cache lock
FLOCKIndicates a fork lock
GRSUBRNGGrants sub-range lock
IPIndicates operation in process
MSTCPYIndicates a lock block is a master copy
NEWSUBRNGIndicates a new sub-range request
NOQUOTADoes not charge quota
PCACHEDIndicates lock block needs to be cached
PROTECTIndicates a protected lock
RESENDResends during failover
RM_RBRQDRequires remaster rebuild
RNGBLKSpecifies a range block
RNGCHGIndicates a changing range
TIMOUTQIndicates lock block is on timeout queue
VALBLKRDIndicates read access to lock value block
VALBLKWRTIndicates write access to lock value block
WASSYSOWNIndicates was system-owned lock
/SUMMARY

Displays summary data and performance counters.

/WAITING

Displays only the waiting locks.

Description

The SHOW LOCKS command displays the information described in the table below for each lock management lock in the system, or for the lock indicated by lock-id, an address or name. (Use the SHOW SPINLOCKS command to display information about spinlocks.) You can obtain a similar display for the locks owned by a specific process by issuing the appropriate SHOW PROCESS/LOCKS command. See the VSI OpenVMS Programming Concepts Manual for additional information.

You can display information about the resource to which a lock is queued by issuing the SHOW RESOURCES command specifying the resource's lock-id.

Table 4.3. Contents of the SHOW LOCKS and SHOW PROCESS/LOCKS Displays
Display ElementDescription
Process IndexIndex in the PCB array to a pointer to the process control block (PCB) of the process that owns the lock. This display element is produced only by the SHOW PROCESS/LOCKS command.
NameName of the process that owns the lock. This display element is produced only by the SHOW PROCESS/LOCKS command.
Extended PIDClusterwide identification of the process that owns the lock. This display element is produced only by the SHOW PROCESS/LOCKS command.
Lock IDIdentification of the lock.
PIDSystemwide identification of the lock.
FlagsInformation specified in the request for the lock.
Par. IDIdentification of the lock's parent lock.
SublocksCount of the locks that the lock owns.
LKBAddress of the lock block (LKB). If a blocking AST has been enabled for this lock, the notation "BLKAST" appears next to the LKB address.
PriorityThe lock priority.
Granted atLock mode at which the lock was granted.
RSBAddress of the resource block.
ResourceDump of the resource name. The two leftmost columns of the dump show its contents as hexadecimal values, the least significant byte being represented by the rightmost two digits. The rightmost column represents its contents as ASCII text, the least significant byte being represented by the leftmost character.
StatusStatus of the lock, information used internally by the lock manager.
LengthLength of the resource name.
ModeProcessor access mode of the namespace in which the resource block (RSB) associated with the lock resides.
OwnerOwner of the resource. Certain resources owned by the operating system list "System" as the owner. Resources owned by a group have the number (in octal) of the owning group in this field.
CopyIndication of whether the lock is mastered on the local system or is a process copy.

Examples

  1. SDA>  SHOW LOCKS
    Lock Database
    -------------
    
    Lock id:  3E000002            PID:    00000000   Flags: CONVERT NOQUEUE SYNCSTS
    Par. id:  00000000            SUBLCKs:       0          NOQUOTA CVTSYS
    LKB:      FFFFFFFF.7DF48150   BLKAST: 81107278
    Priority:     0000
    
    Granted at    CR   00000000-FFFFFFFF
    
    RSB:               FFFFFFFF.7DF68D50
    Resource:          494D6224 42313146  F11B$bMI  Status: NOQUOTA VALBLKR VALBLKW
     Length   18       4D55445F 5944414C  LADY_DUM
     Kernel mode       00000000 00005350  PS......
     System            00000000 00000000  ........
    
    Local copy
    
    Lock Database
    -------------
    
    Lock id:  3F000003            PID:    00000000   Flags: VALBLK  CONVERT SYNCSTS
    Par. id:  0100007A            SUBLCKs:       0          CVTSYS
    LKB:      FFFFFFFF.7DF48250   BLKAST: 00000000
    Priority:     0000
    
    Granted at    NL   00000000-FFFFFFFF
    
    RSB:               FFFFFFFF.7DF51D50
    Resource:          01F77324 42313146  F11B$s÷.  Status: NOQUOTA VALBLKR VALBLKW
     Length   10       00000000 00000000  ........
     Kernel mode       00000000 00000000  ........
     System            00000000 00000000  ........
    
    Local copy
    
    Lock Database
    -------------
    
    Lock id:  0A000004            PID:    0001000F   Flags: VALBLK  CONVERT SYNCSTS
    Par. id:  00000000            SUBLCKs:       0          SYSTEM  NODLCKW NODLCKB
    LKB:      FFFFFFFF.7DF48350   BLKAST: 81190420          QUECVT
    Priority:     0000
    
    Granted at    EX   00000000-FFFFFFFF
    
    RSB:               FFFFFFFF.7DF50850
    Resource:          004F0FDF 24534D52  RMS$ß.O.  Status: VALBLKR VALBLKW
     Length   26       5F313039 58020000  ...X901_
     Exec. mode        00202020 204C354B  K5L    .
     System            00000000 00000000  ........
    
    Local copy
    
       .
       .
       .
    
  2. SDA>  SHOW RESOURCES/LOCKID=0A000004
    Resource Database
    -----------------
    RSB:         FFFFFFFF.7DF50850  GGMODE:     EX  Status: DIRENTR VALID
    Parent RSB:  00000000.00000000  CGMODE:     EX
    Sub-RSB count:      0           FGMODE:     EX
    Lock Count:         1           RQSEQNM:  0000
    BLKAST count:       1           CSID: 00000000  (MILADY)
    
    Resource:          004F0FDF 24534D52  RMS$ß.O.  Valblk: 00000000 00000000
     Length   26       5F313039 58020000  ...X901_          00000000 00000000
     Exec. mode        00202020 204C354B  K5L    .
     System            00000000 00000000  ........  Seqnum: 00000000
    
    Granted queue (Lock ID / Gr mode / Range):
     0A000004  EX 00000000-FFFFFFFF
    
    Conversion queue (Lock ID / Gr mode / Range -> Rq mode / Range):
         *** EMPTY QUEUE ***
    
    Waiting queue (Lock ID / Rq mode / Range):
         *** EMPTY QUEUE ***
    

    This SDA session shows the output of the SHOW LOCKS command for several locks. The SHOW RESOURCES command, executed for the last displayed lock, verifies that the lock is in the resource's granted queue. (See Table 4-26 for a full explanation of the contents of the display of the SHOW RESOURCES command.)

  3. This example shows the brief display for all locks with a blocking AST.

4.56. SHOW MACHINE_CHECK

Displays the contents of the stored machine check frame. This command is valid for the DEC 4000 Alpha, DEC 7000 Alpha, and DEC 10000 Alpha computers only.

Format

SHOW MACHINE_CHECK [/FULL] [cpu-id]

Parameters

cpu-id

Numeric value indicating the identity of the CPU for which context information is to be displayed. This parameter changes the SDA current CPU (the default) to the CPU specified with cpu-id. If you specify the 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

If you use the cpu-id parameter, the SHOW MACHINE_CHECK command performs an implicit SET CPU command, making the CPU indicated by cpu-id the current CPU for subsequent SDA commands. (See the description of the SET CPU command and Section 2.5, “SDA Context” for information on how this can affect the CPU context---and process context---in which SDA commands execute.)

Qualifiers

/FULL

Specifies that a detailed version of the machine check information be displayed. This is currently identical to the default summary display.

Description

The SHOW MACHINE_CHECK command displays the contents of the stored machine check frame. A separate frame is allocated at boot time for every CPU in a multiple-CPU system. This command is valid for the DEC 4000 Alpha, DEC 7000 Alpha, and DEC 10000 Alpha computers only.

If you do not specify a qualifier, a summary version of the machine check frame is displayed.

The default cpu-id is the SDA current CPU.

Examples

  1. SDA> SHOW MACHINE_CHECK
    CPU 00 Stored Machine Check Crash Data
    --------------------------------------
    Processor specific information:
    -------------------------------
    Exception address:    FFFFFFFF.800B0250    Exception Summary:  00000000.00000000
    Pal base address:     00000000.00008000    Exception Mask:     00000000.00000000
    HW Interrupt Request: 00000000.00000342    HW Interrupt Ena:   00000001.FFC01CE0
    MM_CSR                00000000.00003640    ICCSR:              00000002.381F0000
    D-cache address:      00000007.FFFFFFFF    D-cache status:     00000000.000002E0
    BIU status:           00000000.00000050    BIU address [7..0]: 00000000.000060E0
    BIU control:          00000008.50006447    Fill Address:       00000000.00006120
    Single-bit syndrome:  00000000.00000000    Processor mchck VA: 00000000.00006190
    A-box control:        00000000.0000040E    B-cache TAG:        00106100.83008828
    System specific information:
    ----------------------------
    Garbage bus info:     00200009 00000038    Device type:                 000B8001
    LCNR:                          00000001    Memory error:                00000000
    LBER:                          00000009    Bus error synd 0,1: 00000000 00000000
    Bus error cmd:        00048858 00AB1C88    Bus error synd 2,3: 00000000 0000002C
    LEP mode:                      00010010    LEP lock address:            00041108

    The SHOW MACHINE_CHECK command in this SDA display shows the contents of the stored machine check frame.

  2. SDA> SHOW MACHINE_CHECK 1
    CPU 01 Stored Machine Check Crash Data
    --------------------------------------
    Processor specific information:
    -------------------------------
    Exception address:    FFFFFFFF.800868A0    Exception Summary:  00000000.00000000
    Pal base address:     00000000.00008000    Exception Mask:     00000000.00000000
    HW Interrupt Request: 00000000.00000342    HW Interrupt Ena:   00000000.1FFE1CE0
    MM_CSR                00000000.00005BF1    ICCSR:              00000000.081F0000
    D-cache address:      00000007.FFFFFFFF    D-cache status:     00000000.000002E0
    BIU status:           00000000.00000050    BIU address [7..0]: 00000000.000063E0
    BIU control:          00000008.50006447    Fill Address:       00000000.00006420
    Single-bit syndrome:  00000000.00000000    Processor mchck VA: 00000000.00006490
    A-box control:        00000000.0000040E    B-cache TAG:        35028EA0.50833828
    System specific information:
    ----------------------------
    Garbage bus info:     00210001 00000038    Device type:                 000B8001
    LCNR:                          00000001    Memory error:                00000080
    LBER:                          00040209    Bus error synd 0,1: 00000000 00000000
    Bus error cmd:        00048858 00AB1C88    Bus error synd 2,3: 00000000 0000002C
    LEP mode:                      00010010    LEP lock address:            00041108

    The SHOW MACHINE_CHECK command in this SDA display shows the contents of the stored machine check frame for cpu-id 01.

4.57. SHOW MEMORY

Displays the availability and usage of memory resources.

Format

SHOW MEMORY [/ALL][/BUFFER_OBJECTS][/CACHE][/FILES]

[/FULL][/GH_REGIONS][/PHYSICAL_PAGES][/POOL]

[/RESERVED][/SLOTS]

Parameters

None.

Qualifiers

/ALL

Displays all available information, that is, information displayed by the following qualifiers:

  • /BUFFER_OBJECTS

  • /CACHE

  • /FILES

  • /GH_REGIONS

  • /PHYSICAL_PAGES

  • /POOL

  • /RESERVED

  • /SLOTS

This is the default display.

/BUFFER_OBJECTS

Displays information about system resources used by buffer objects.

/CACHE

Displays information about either the Virtual I/O Cache facility or the Extended File Cache facility. The system parameter VCC_FLAGS determines which is used. The cache facility information is displayed as part of the SHOW MEMORY and SHOW MEMORY/CACHE/FULL commands.

/FILES

Displays information about the use of each paging and swapping file currently installed.

/FULL

When used with the /POOL and /CACHE qualifiers, displays additional information. This qualifier is ignored otherwise. For /CACHE, the additional information is only displayed when the Virtual I/O Cache facility is in use (Alpha only); /FULL is ignored if the Extended File Cache facility is in use. Additional information on how memory is being used by the Extended File Cache facility can be obtained using the XFC extension described in Chapter 9.

/GH_REGIONS

Displays information about the granularity hint regions (GHR) that have been established. For each of these regions, information is displayed about the size of the region, the amount of free memory, the amount of memory in use, and the amount of memory released to OpenVMS from the region. The granularity hint regions information is also displayed as part of SHOW MEMORY and SHOW MEMORY/ALL commands.

/PHYSICAL_PAGES

Displays information about the amount of physical memory and the number of free and modified pages.

/POOL

Displays information about the usage of each dynamic memory (pool) area, including the amount of free space and the size of the largest contiguous block in each area.

/RESERVED

Displays information about memory reservations.

/SLOTS

Displays information about the availability of process control block (PCB) vector slots and balance slots.

Description

For more information about the SHOW MEMORY command, see the description in the VSI OpenVMS DCL Dictionary or online help.

4.58. SHOW PAGE_TABLE

Displays a range of system page table entries, the entire system page table, or the entire global page table.

Format

SHOW PAGE_TABLE [range | /FREE [/HEADER=address ]

| /GLOBAL | /GPT | /PT

| /INVALID_PFN [=option]

| /NONMEMORY_PFN [=option]

| /PTE_ADDRESS | /SECTION_INDEX=n

| /S0S1 (d) | /S2 | /SPTW | /ALL]

[/L1 | /L2 | /L3 (d)]

Parameters

range

Range of virtual addresses or PTE addresses for which SDA displays page table entries. If the qualifier /PTE_ADDRESS is given, then the range is of PTE addresses; otherwise, the range is of virtual addresses. The range given can be of process-space addresses.

If /PTE_ADDRESS is given, the range is expressed using the following syntax:

mDisplays the single page table entry at address m
m:nDisplays the page table entries from address m to address n
m;nDisplays n bytes of page table entries starting at address m

If /PTE_ADDRESS is not given, then range is expressed using the following syntax:

mDisplays the single page table entry that corresponds to virtual address m
m:nDisplays the page table entries that correspond to the range of virtual addresses from m to n
m;nDisplays the page table entries that correspond to a range of n bytes starting at virtual address m

Note that OpenVMS Alpha and Integrity servers page protections are slightly different. For additional information, see Section 2.8, “Page Protections and Access Rights”.

Qualifiers

/FREE

Causes the starting addresses and sizes of blocks of pages in the free PTE list to be displayed. The qualifiers /S0S1 (default), /S2, /GLOBAL, and /HEADER determine which free PTE list is to be displayed. A range cannot be specified, and no other qualifiers can be combined with /FREE.

/GLOBAL

Lists the global page table. When used with the /FREE qualifier, /GLOBAL indicates the free PTE list to be displayed.

/HEADER=address

When used with the /FREE qualifier, the /HEADER=address qualifier displays the free PTE list for the specified private page table.

/GPT

Specifies the portion of page table space that maps the global page table as the address range.

/INVALID_PFN [=option]

The /INVALID_PFN qualifier, which is valid only on platforms that supply an I/O memory map, causes SDA to display only page table entries that map to PFNs that are not in the system's private memory or in Galaxy-shared memory, and which are not I/O access pages.

/INVALID_PFN has two optional keywords, READONLY and WRITABLE. If neither keyword is specified, all relevant pages are displayed.

If READONLY is specified, only pages marked for no write access are displayed. If WRITABLE is specified, only pages that allow write access are displayed. For example, SHOW PAGE_TABLE/ALL/INVALID_PFN=WRITABLE would display all system pages whose protection allows write, but which map to PFNs that do not belong to this system.

/L1

/L2

/L3 (D)

Specifies the level for which page table entries are to be displayed for the specified portion of memory. You can specify only one level. /L3 is the default.

/NONMEMORY_PFN [=option]

The /NONMEMORY_PFN qualifier causes SDA to display only page table entries that are not in the system's private memory or in Galaxy-shared memory.

/NONMEMORY_PFN has two optional keywords, READONLY and WRITABLE. If neither keyword is specified, all relevant pages are displayed.

If READONLY is specified, only pages marked for no write access are displayed. If WRITABLE is specified, only pages that allow write access are displayed. For example, SHOW PAGE_TABLE/ALL/NONMEMORY_PFN=WRITABLE would display all system pages whose protection allows write, but which map to PFNs that do not belong to this system.

/PT

Specifies that the page table entries for the page table region of system space are to be displayed.

/PTE_ADDRESS

Specifies that the range given is of PTE addresses instead of the virtual addresses mapped by the PTEs.

/SECTION_INDEX=n

Displays the page table for the range of pages in the global section or pageable part of a loaded image. For pageable portions of loaded images, one of the qualifiers /L1, /L2, or /L3 can also be specified.

/S0S1 (D)

/S2

Specifies the region whose page table entries are to be displayed. When used with the /FREE qualifier, indicates the free PTE list to be displayed. By default, the page table entries or the free list for S0 & S1 space is displayed.

/SPTW

Displays the contents of the system page table window.

/ALL

Displays the page table entries for all shared (system) addresses. It is equivalent to specifying all of /S0S1, /S2, and /PT.

Description

If the /FREE qualifier is not specified, this command displays page table entries for the specified range of addresses or section of memory. For each virtual address displayed by the SHOW PAGE_TABLE command, the first eight columns of the listing provide the associated page table entry and describe its location, characteristics, and contents. SDA obtains this information from the system page table or from the process page table if a process_space address is given. The table below desand IMGACT process pools. cribes the information displayed by the SHOW PAGE_TABLE command.

If the /FREE qualifier is specified, this command displays the free PTE list for the specified section of memory.

The /L1, /L2, and /L3 qualifiers are ignored when used with the /FREE, /GLOBAL, and /SPTW qualifiers.

Table 4.4. Virtual Page Information in the SHOW PAGE_TABLE Display
ValueMeaning
MAPPED ADDRESSVirtual address that marks the base of the virtual page(s) mapped by the PTE.
PTE ADDRESSVirtual address of the page table entry that maps the virtual page(s).
PTEContents of the page table entry, a quadword that describes a system virtual page.
TYPEType of virtual page. Table 4.5, “Types of Virtual Pages” shows the eight types and their meanings.
READ(Alpha only.) A code, derived from bits in the PTE, that designates the processor access modes (kernel, executive, supervisor, or user) for which read access is granted.
WRIT(Alpha only.) A code, derived from bits in the PTE, that designates the processor access modes (kernel, executive, supervisor, or user) for which write access is granted.
MLOA(Alpha only.) Letters that represent the setting of a bit or a combination of bits in the PTE. These bits indicate attributes of a page. Table 4.6, “Bits In the PTE” shows the codes and their meanings.
AR/PL(Integrity servers only) The access rights and privilege level of the page. Consists of a number (0-7) and a letter (K, E, S, or U) that determines access to a page in each mode.
KESU(Integrity servers only) The access allowed to the page in each mode. This is an interpretation of the AR/PL values in the previous column. For an explanation of the access codes, see Section 2.8, “Page Protections and Access Rights”.
MLO(Integrity servers only) Letters that represent the setting of a bit or a combination of bits in the PTE. These bits indicate attributes of a page. Table 4.6, “Bits In the PTE” shows the codes and their meanings.
GHContents of granularity hint bits.
Table 4.5. Types of Virtual Pages
TypeMeaning
VALIDValid page (in main memory).
TRANSTransitional page (on free or modified page list).
DZERODemand-allocated, zero-filled page.
PGFILPage within a paging file.
STXSection table's index page.
GPTXIndex page for a global page table.
IOPAGPage in I/O address space.
NXMEMPage not represented in physical memory. The page frame number (PFN) of this page is not mapped by any of the system's memory controllers. This indicates an error condition.
Table 4.6. Bits In the PTE
Column NameCodeMeaning
MMPage has been modified.
LLPage is locked into a working set.
LPPage is locked in physical memory.
OKOwner is kernel mode.
OEOwner is executive mode.
OSOwner is supervisor mode.
OUOwner is user mode.
AAAddress space match is set (Alpha only).

If the virtual page has been mapped to a physical page, the last five columns of the listing include information from the page frame number (PFN) database; otherwise, the section is left blank. Table 4.7, “Physical Page Information in the SHOW PAGE_TABLE Display” describes the physical page information displayed by the SHOW PAGE_TABLE command.

Table 4.7. Physical Page Information in the SHOW PAGE_TABLE Display
CategoryMeaning
PGTYPType of physical page. Table 4.8, “Types of Physical Pages” shows the types of physical pages.
LOCLocation of the page within the system. Table 4.9, “Locations of Physical Pages” shows the possible locations with their meaning.
BAKPlace to find information on this page when all links to this PTE are broken: either an index into a process section table or the number of a virtual block in the paging file.
REFCNTNumber of references being made to this page.
WSLXWorking Set List Index. This shows as zero for resident and global pages, and is left blank for transition pages.
Table 4.8. Types of Physical Pages
Page TypeMeaning
PROCESSPage is part of process space.
SYSTEMPage is part of system space.
GLOBALPage is part of a global section.
GBLWRTPage is part of a global, writable section.
PPGTBLPage is part of a process page table.
GPGTBLPage is part of a global page table.
PHDPage is part of a process PHD. These page types are variants of the PPGTBL page type.
PPT(Ln)Page is a process page table page at level n. These page types are variants of the PPGTBL page type.
WSLPage is part of a process's working list. These page types are variants of the PPGTBL page type.
SPT(Ln)Page is a system page table page at level n. These page types are variants of the SYSTEM page type.
SHPTPage is part of a shared page table. These page types are variants of the GBLWRT page type.
PFNLSTPage is in a Shared Memory Common Property Partition PFN database. These page types are variants of the SYSTEM page type.
SHM_REGPage is in a Shared Memory Region. These page types are variants of the GBLWRT page type.
UNKNOWNUnknown.
Table 4.9. Locations of Physical Pages
LocationMeaning
ACTIVEPage is in a working set.
MFYLSTPage is in the modified page list.
FRELSTPage is in the free page list.
BADLSTPage is in the bad page list.
RELPNDRelease of the page is pending.
RDERRPage has had an error during an attempted read operation.
PAGOUTPage is being written into a paging file.
PAGINPage is being brought into memory from a paging file.
ZROLSTPage is in the zeroed-page list.
UNKNWNLocation of page is unknown.

SDA indicates pages are inaccessible by displaying one of the following messages:

-------   1 null page:       VA   FFFFFFFE.00064000     PTE   FFFFFFFD.FF800190

------- 974 null pages:      VA   FFFFFFFE.00064000     PTE   FFFFFFFD.FF800190
                             -to- FFFFFFFE.007FDFFF     -to-  FFFFFFFD.FF801FF8

In this case, the page table entries are not in use (page referenced is inaccessible).

-------      1 entry not in memory:    VA   FFFFFFFE.00800000   PTE   FFFFFFFD.FF802000

------- 784384 entries not in memory:  VA   FFFFFFFE.00800000   PTE   FFFFFFFD.FF802000
                                       -to- FFFFFFFF.7F7FDFFF   -to-  FFFFFFFD.FFDFDFF8

In this case, the page table entries do not exist (PTE itself is inaccessible).

-------    1 free PTE:    VA   FFFFFFFF.7F800000   PTE   FFFFFFFD.FFDFEOOO

------- 1000 free PTEs:   VA   FFFFFFFF.7F800000   PTE   FFFFFFFD.FFDFE000
                          -to- FFFFFFFF.7FFCDFFF   -to-  FFFFFFFD.FFDFFF38

In this case, the page table entries are in the list of free system pages.

In each case, VA is the MAPPED ADDRESS of the skipped entry, and PTE is the PTE ADDRESS of the skipped entry.

Examples

  1. For an example of SHOW PAGE_TABLE output when the qualifier /FREE has not been given, see the SHOW PROCESS/PAGE_TABLES command.

  2. SDA> SHOW PAGE_TABLE/FREE
    S0/S1 Space Free PTEs
    ---------------------
     MAPPED ADDRESS        PTE ADDRESS             PTE           COUNT
    
    FFFFFFFF.82A08000   FFFFFFFD.FFE0A820   0001FFE0.A8580000   00000003
    FFFFFFFF.82A16000   FFFFFFFD.FFE0A858   0001FFE0.A8900000   00000003
    FFFFFFFF.82A24000   FFFFFFFD.FFE0A890   0001FFE0.B3C00000   00000003
    FFFFFFFF.82CF0000   FFFFFFFD.FFE0B3C0   0001FFE0.B4010000   00000001
    FFFFFFFF.82D00000   FFFFFFFD.FFE0B400   0001FFE0.B4680000   00000002
       .
       .
       .
    FFFFFFFF.82E48000   FFFFFFFD.FFE0B920   0001FFE0.B9390000   00000001
    FFFFFFFF.82E4E000   FFFFFFFD.FFE0B938   0001FFE0.BA200000   00000002
    FFFFFFFF.82E88000   FFFFFFFD.FFE0BA20   0001FFE0.C9780000   00000003
    FFFFFFFF.8325E000   FFFFFFFD.FFE0C978   0001FFE0.CC980000   00000003
    FFFFFFFF.83326000   FFFFFFFD.FFE0CC98   00000000.00000000   0000066D

    This example shows the output when you invoke the SHOW PAGE_TABLE/FREE command.

4.59. SHOW PARAMETER

Displays the name, location, and value of one or more SYSGEN parameters currently in use or at the time that the system dump was taken.

Format

SHOW PARAMETER [sysgen_parameter]

[/ACP] [/ALL] [/CLUSTER] [/DYNAMIC] [/GALAXY] [/GEN] [/JOB] [/LGI] [/MAJOR] [/MULTIPROCESSING] [/OBSOLETE] [/PQL] [/RMS] [/SCS] [/SPECIAL] [/SYS] [/STARTUP] [/TTY]

Parameter

sysgen_parameter

The name of a specific parameter to be displayed. The name can include wildcards. However, a truncated name is not recognized, unlike with the equivalent SYSGEN and SYSMAN commands.

Qualifiers

/ACP

Displays all Files-11 ACP parameters.

/ALL

Displays the values of all parameters except the special control parameters.

/CLUSTER

Displays all parameters specific to clusters.

/DYNAMIC

Displays all parameters that can be changed on a running system.

/GALAXY

Displays all parameters specific to Galaxy systems.

/GEN

Displays all general parameters.

/JOB

Displays all Job Controller parameters.

/LGI

Displays all LOGIN security control parameters.

/MAJOR

Displays the most important parameters.

/MULTIPROCESSING

Displays parameters specific to multiprocessing.

/OBSOLETE

Displays all obsolete system parameters. SDA displays obsolete parameters only if they are named explicitly (no wildcards) or if /OBSOLETE is given.

/PQL

Displays the parameters for all default and minimum process quotas.

/RMS

Displays all parameters specific to OpenVMS Record Management Services (RMS).

/SCS

Displays all parameters specific to OpenVMS Cluster System Communications Services.

/SPECIAL

Displays all special control parameters.

/STARTUP

Displays the name of the site-independent startup procedure.

/SYS

Displays all active system parameters.

/TTY

Displays all parameters for terminal drivers.

Description

The SHOW PARAMETER command displays the name, location, and value of one or more SYSGEN parameters at the time that the system dump is taken. You can specify either a parameter name, or one or more qualifiers, but not both a parameter and qualifiers. If you do not specify a parameter or qualifiers, then the last parameter displayed is displayed again.

The qualifiers are the equivalent to those available for the SHOW [parameter] command in the SYSGEN utility and the PARAMETERS SHOW command in the SYSMAN utility. See the VSI OpenVMS System Management Utilities Reference Manual for more information about these two commands. You can combine qualifiers, and all appropriate SYSGEN parameters are displayed.

Note

To see the entire set of parameters, use the SDA command SHOW PARAMETER /ALL /SPECIAL /STARTUP /OBSOLETE.

Examples

This example shows all parameters that have the string "SCS" in their name. For parameters defined as a single bit, the name and value of the bit offset within the location used for the parameter are also given.

This example shows all parameters whose names begin with the string "WS". For parameters that have both an external value (pagelets) and an internal value (pages), both are displayed.

This example shows all the parameters specific to multiprocessing, plus the name of the site-independent startup command procedure.

4.60. SHOW PFN_DATA

Displays information that is contained in the page lists and PFN database.

Format

SHOW PFN_DATA { [/qualifier] | pfn [{:end-pfn|;length}] }

or

SHOW PFN_DATA/MAP

Parameters

pfn

Page frame number (PFN) of the physical page for which information is to be displayed.

end-pfn

Last PFN to be displayed. When you specify the end-pfn parameter, a range of PFNs is displayed. This range starts at the PFN specified by the pfn parameter and ends with the PFN specified by the end-pfn parameter.

length

Length of the PFN list to be displayed. When you specify the length parameter, a range of PFNs is displayed. This range starts at the PFN specified by the pfn parameter and contains the number of entries specified by the length parameter.

Qualifiers

/ADDRESS=PFN-entry-address

Displays the PFN database entry at the address specified. The address specified is rounded to the nearest entry address, so if you have an address that points to one of the fields of the entry, the correct database entry will still be found.

/ALL

Displays the following lists:

Free page list

Zeroed free page list

Modified page list

Bad page list

Untested page list

Private page lists, if any

Per-color or per-RAD free and zeroed free page lists

Entire database in order by page frame number

This is the default behavior of the SHOW PFN_DATA command. SDA precedes each list with a count of the pages it contains and its low and high limits.

/BAD

Displays the bad page list. SDA precedes the list with a count of the pages it contains, its low limit, and its high limit.

/COLOR [= {n|ALL} ]

Displays data on page coloring. The table below shows the command options available with the COLOR and RAD qualifiers, which are functionally equivalent.

Table 4.10. Command Options with the /COLOR and /RAD Qualifiers
OptionsMeaning
/COLOR 1 with no valueDisplays a summary of the lengths of the color 1 page lists for both free pages and zeroed pages.
/COLOR= n where n is a color numberDisplays the data in the PFN lists (for the specified color) for both free and zeroed pages.
/COLOR=ALLDisplays the data in the PFN lists (for all colors), for both free and zeroed free pages.
/COLOR= n or /COLOR=ALL with /FREE or /ZERODisplays only the data in the PFN list (for the specified color or all colors), for either free or zeroed free pages as appropriate. The qualifiers /BAD and /MODIFIED are ignored with /COLOR= n and /COLOR=ALL.
/COLOR without an option specified together with one or more of /FREE, /ZERO, /BAD, or /MODIFIEDDisplays the color summary in addition to the display of the requested list.

Wherever COLOR is used in this table, RAD is equally applicable, both in the qualifier name and the meaning.

For more information on page coloring, see VSI OpenVMS System Management Utilities Reference Manual: M--Z.

/FREE

Displays the free page list. SDA precedes the list with a count of the pages it contains, its low limit, and its high limit.

/MAP

Displays the contents of the PFN memory map. On platforms that support it, the I/O space map is also displayed. You cannot combine the /MAP qualifier with any parameters or other qualifiers.

/MODIFIED

Displays the modified page list. SDA precedes the list with a count of the pages it contains, its low limit, and its high limit.

/PRIVATE [=address]

Displays private PFN lists. If no address is given, all private PFN lists are displayed; if an address is given, only the PFN list whose head is at the given address is displayed.

/RAD [= {n|ALL} ]

Displays data on the disposition of pages among the Resource Affinity Domains (RADs) on applicable systems. /RAD is functionally equivalent to /COLOR. See Table 4.10, “Command Options with the /COLOR and /RAD Qualifiers” for the command options available with /RAD.

/SUMMARY[=(option,...)]

By default, displays a summary of all pages in the system, totaling pages by page location (Free List, Modified List, Active, and so on) and by page type (Process, System, Global, and so on). Also, provides a breakdown of active system pages by their virtual address (S0/S1, S2, and so on).

Additional information is displayed if one or more options are given. If multiple options are given, they must be separated by commas and enclosed in parentheses. Available options are:

  • /SUMMARY=PROCESS

    Displays a breakdown of active process pages for each process by virtual address (P0, P1, and so on), and of non-active process pages by page location.

  • /SUMMARY=GLOBAL

    Displays a breakdown for each global section of its in-memory pages by page location.

  • /SUMMARY=RAD

    If RADs are enabled on the system, displays a breakdown for each RAD of its in-memory pages by location and type.

  • /SUMMARY=ALL

    Equivalent to /SUMMARY=(PROCESS,GLOBAL,RAD)

You cannot combine the /SUMMARY qualifier with any other qualifiers, but you can specify a range.

/SYSTEM

Displays the entire PFN database in order by page frame number, starting at PFN 0000.

/UNTESTED

Displays the state of the untested PFN list that was set up for deferred memory testing.

/ZERO

Displays the contents of the zeroed free page list.

Description

For each page frame number it displays, the SHOW PFN_DATA command lists information used in translating physical page addresses to virtual page addresses.

The display contains two or three lines: Table 4.11, “PFN Data---Fields in Line One” shows the fields in line one, Table 4.12, “PFN Data---Fields in Line Two” shows the fields in line two, and Table 4.13, “PFN Data---Fields in Line Three” shows the fields in line three, displayed only if relevant (page table page or non-zero flags).

Table 4.11. PFN Data---Fields in Line One
ItemContents
PFNPage frame number.
DB ADDRESSAddress of PFN structure for this page.
PT PFNPFN of the page table page that maps this page.
BAKPlace to find information on this page when all links to this PTE are broken: either an index into a process section table or the number of a virtual block in the paging file.
FLINKForward link within PFN database that points to the next physical page (if the page is on one of the lists: FREE, MODIFIED, BAD, or ZEROED); this longword also acts as the count of the number of processes that are sharing this global section.
BLINKBackward link within PFN database (if the page is on one of the lists: FREE, MODIFIED, BAD, or ZEROED); also acts as an index into the working set list.
SWP/BOEither a swap file page number or a buffer object reference count, depending on a flag set in the page state field.
LOCLocation of the page within the system. Table 4.9, “Locations of Physical Pages” shows the possible locations with their meaning.
Table 4.12. PFN Data---Fields in Line Two
ItemContents
(Blank)First field of line two is left blank.
PTE ADDRESSVirtual address of the page table entry that describes the virtual page mapped into this physical page. If no virtual page is mapped into this physical page then "<no backpointer>" is displayed, and the next three fields are left blank.
PTE TypeIf a virtual page is mapped into this physical page, a description of the type of PTE is provided across the next three fields: one of "System-space PTE", "Global PTE (section index nnnn)", "Process PTE (process index nnnn)". If no virtual page is mapped into this physical page, these fields are left blank.
REFCNTNumber of references being made to this page.
PAGETYPType of physical page. See Table 4.8, “Types of Physical Pages” for the types of physical pages and their meanings.
Table 4.13. PFN Data---Fields in Line Three
ItemContents
COUNTSIf the page is a page table page, then the contents of the PRN$W_PT_VAL_CNT, PFN$W_PT_LCK_CNT, and PFN$W_PT_WIN_CNT fields are displayed. The format is as follows: VALCNT = nnnn LCKCNT = nnnn WINCNT = nnnn
FLAGSThe flags in text form that are set in page state. Table 4.14, “Flags Set in Page State” shows the possible flags and their meaning.
Table 4.14. Flags Set in Page State
FlagMeaning
BUFOBJSet if any buffer objects reference this page
COLLISIONIndicates an empty collision queue when page read is complete
BADPAGIndicates a bad page
RPTEVTIndicates a report event on I/O completion
DELCONIndicates a delete PFN when REFCNT=0
MODIFYIndicates a dirty page (modified)
UNAVAILABLEIndicates PFN is unavailable; most likely a console page
SWPPAG_VALIDIndicated swap file page number is valid
TOP_LEVEL_PTLevel one (1) page table
SLOTPage is part of process's balance set
SHAREDShared memory page
ZEROEDShared memory page that has been zeroed

Examples

  1. SDA> SHOW PFN_DATA/MAP
    System Memory Map
    -----------------
    
    Start PFN   PFN count   Flags
    ---------   ---------   -----
    00000000    000000FA    0009  Console Base
    000000FA    00003306    000A  OpenVMS Base
    00003C00    000003FF    000A  OpenVMS Base
    00003FFF    00000001    0009  Console Base
    00003400    00000800    0010  Galaxy_Shared

    This example shows the output when you invoke the SHOW PFN/MAP command.

  2. SDA> SHOW PFN 598:59f
    
    PFN data base for PFN range
    ---------------------------
    
           PFN           DB  ADDRESS         PT PFN              BAK              FLINK             BLINK       SWP/BO   LOC
                         PTE ADDRESS                                                                            REFCNT PAGETYP
    ----------------- ----------------- ----------------- ----------------- ----------------- ----------------- ------ -------
    00000000.00000598 FFFFF802.06C16600 00000000.000001D7 FFFFFFFF.84D6F700 00000000.00000000 00000000.00000000  ----  ACTIVE
                      FFFFF801.FFD072A0 System-space PTE                                                         0001  SYSTEM
    
    00000000.00000599 FFFFF802.06C16640 00000000.00000000 00000000.0001DBD9 00000000.0001DBD9 00000000.000081B6  ----  FRELST
                      <no  backpointer>                                                                          0000  SYSTEM
    
    
    00000000.0000059A FFFFF802.06C16680 00000000.00000565 FF000000.00000000 00000000.00000000 00000000.000000D4  ----  ACTIVE
                      000007FF.FF700000 Process PTE (process index 001A)                                         0001  PROCESS
                      FLAGS  = Modify
    
    00000000.0000059B FFFFF802.06C166C0 00000000.0000493A 000000FD.00010000 00000000.00000003 00000000.00000000  ----  ACTIVE
                      FFFFF802.0F641680 Global PTE (section index 00FD)                                          0001  GLOBAL
    
    00000000.0000059C FFFFF802.06C16700 00000000.000005E3 FF000000.00000000 00000000.00000000 00000000.00000136  ----  ACTIVE
                      000007FE.00001C30 Process PTE (process index 000F)                                         0001  PROCESS
    
    00000000.0000059D FFFFF802.06C16740 00000000.0000059D 00000000.8705A000 00000000.00000002 00000000.00000001  ----  ACTIVE
                      000007FF.FFFFFFF8 Process PTE (process index 0005)                                         0001  PPT(L1)
                      VALCNT = 0002     LCKCNT = FFFF     WINCNT = FFFF     FLAGS  = Modify,Top_Level_PT
    
    00000000.0000059E FFFFF802.06C16780 00000000.000001D7 FFFFFFFF.84D6F700 00000000.00000000 00000000.00000000  ----  ACTIVE
                      FFFFF801.FFD07420 System-space PTE                                                         0001  SYSTEM
    
    00000000.0000059F FFFFF802.06C167C0 00000000.000001D7 FFFFFFFF.84D6F700 00000000.00000000 00000000.00000000  ----  ACTIVE
                      FFFFF801.FFD07428 System-space PTE                                                         0001  SYSTEM

    This example shows the output from SHOW PFN for a range of pages.

4.61. SHOW POOL

Displays the contents of the nonpaged dynamic storage pool, the bus-addressable pool, and the paged dynamic storage pool. You can display part or all of each pool. If you do not specify a range or qualifiers, the default is SHOW POOL/ALL. Optionally, you can display the pool history ring buffer and pool statistics.

Format

SHOW POOL [range | /ALL (d)| /BAP | /NONPAGED | /PAGED]

[ /BRIEF | /CHECK | /FREE | /HEADER | /MAXIMUM_BYTES [=n] | /SUMMARY | /TYPE=packet-type | /SUBTYPE=packet-type | /UNUSED ]

[/RING_BUFFER[=address]]

[/STATISTICS [=ALL] [/NONPAGED | /BAP | /PAGED]

Parameter

range

Range of virtual addresses in pool that SDA is to examine. You can express a range using the following syntax:

m:nRange of virtual addresses in pool from m to n
m;nRange of virtual addresses in pool starting at m and continuing for n bytes

Qualifiers

/ALL

Displays the entire contents of the dynamic storage pool, except for those portions that are free (available). This is the default behavior of the SHOW POOL command.

/BAP

Displays the contents of the bus-addressable dynamic storage pool currently in use.

/BRIEF

Displays only general information about the dynamic storage pool and its addresses.

/CHECK

Checks all free packets for POOLCHECK-style corruption, in exactly the same way that the system does when generating a POOLCHECK crash dump.

/FREE

Displays the entire contents, both allocated and free, of the specified region or regions of pool. Use the /FREE qualifier with a range to show all of the used and free pool in the given range.

/HEADER

Displays only the first 16 bytes of each data packet found within the specified region or regions of pool.

/MAXIMUM_BYTES [=n]

Displays only the first n bytes of a pool packet; if you specify /MAXIMUM_BYTES without a value, the default is 64 bytes.

/NONPAGED

Displays the contents of the nonpaged dynamic storage pool currently in use.

/PAGED

Displays the contents of the paged dynamic storage pool currently in use.

/RING_BUFFER [=address]

Displays the contents of the pool history ring buffer if pool checking has been enabled. Entries are displayed in reverse chronological order, that is, most to least recent. If address is specified, the only entries in the ring buffer displayed are for pool blocks that address lies within.

/STATISTICS [= ALL]

Displays usage statistics about each lookaside list and the variable free list. For each lookaside list, its queue header address, packet size, the number of packets, attempts, fails, and deallocations are displayed. (If pool checking is disabled, the attempts, fails, and deallocations are not displayed.) For the variable free list, its queue header address, the number of packets and the size of the smallest and largest packets are displayed. You can further qualify /STATISTICS by using either /NONPAGED, /BAP, or /PAGED to display statistics for a specified pool area. Paged pool only has lookaside lists if the system parameter PAGED_LAL_SIZE has been set to a nonzero value; therefore paged pool lookaside list statistics are only displayed if there has been activity on a list.

If you specify /STATISTICS without the ALL keyword, only active lookaside lists are displayed. Use /STATISTICS = ALL to display all lookaside lists.

/SUBTYPE=packet-type

Displays the packets within the specified region or regions of pool that are of the indicated packet-type. For information on packet-type, see packet-type in the Description section.

/SUMMARY

Displays only an allocation summary for each specified region of pool.

/TYPE=packet-type

Displays the packets within the specified region or regions of pool that are of the indicated packet-type. For information on packet-type, see packet-type in the Description section.

/UNUSED

Displays only variable free packets and lookaside list packets, not used packets.

Description

The SHOW POOL command displays information about the contents of any specified region of dynamic storage pool. There are several distinct display formats, as follows:

  • Pool layout display. This display includes the addresses of the pool structures and lookaside lists, and the ranges of memory used for pool.

  • Full pool packet display. This display has a section for each packet, consisting of a summary line (the packet type, its start address and size, and, on systems that have multiple Resource Affinity Domains (RADs), the RAD number), followed by a dump of the contents of the packet in hexadecimal and ASCII.

  • Header pool packet display. This display has a single line for each packet. This line contains the packet type, its start address and size, and, on systems that have multiple RADs, the RAD number, followed by the first 16 bytes of the packet, in hexadecimal and ASCII.

  • Pool summary display. This display consists of a single line for each packet type, and includes the type, the number of occurrences and the total size, and the percentage of used pool consumed by this packet type.

  • Pool statistics display. This display consists of statistics for variable free pool and for each lookaside list. For variable free pool, it includes the number of packets, the total bytes available, and the sizes of the smallest and largest packets. In addition, if pool checking is enabled, the total bytes allocated from the variable list and the number of times pool has been expanded are also displayed.

    For lookaside lists, the display includes the listhead address and size, the number of packets (both the maintained count and the actual count), the operation sequence number for the list, the allocation attempts and failures, and the number of deallocations.

    On systems with multiple RADs, statistics for on-RAD deallocations are included in the display for the first RAD.

  • Ring buffer display. This display is only available when pool checking is enabled. It consists of one line for each packet in the ring buffer and includes the address and size of the pool packet being allocated or deallocated, its type, the PC of the caller and the pool routine called, the CPU and IPL of the call, and the system time.

    Optionally, the ring buffer display can be limited to only the entries that contain a given address.

The qualifiers used on the SHOW POOL command determine which displays are generated. The default is the pool layout display, followed by the full pool packet display, followed by the pool summary display, these being generated in turn for Nonpaged Pool, Bus-Addressable Pool (if it exists in the system or dump being analyzed), and then Paged Pool.

If you specify a range, type, or subtype, then the pool layout display is not generated, and the pool summary display is a summary only for the range, type, or subtype, and not for the entire pool.

Not all displays are relevant for all pool types. For example, Paged Pool may have no lookaside lists, in which case the Paged Pool statistics display will consist only of variable free pool information. And because there is a single ring buffer for all pools, only one ring buffer display is generated even if all pools are being displayed.

Packet-type

Each packet of pool has a type field (a byte containing a value in the range of 0-255). Many of these type values have names associated that are defined in $DYNDEF in SYS$LIBRARY:LIB.MLB. The packet-type specified in the /TYPE qualifier of the SHOW POOL command can either be the value of the pool type or its associated name.

Some pool packet types have an additional subtype field (also a byte containing a value in the range of 0--255), many of which also have associated names. The packet-type specified in the /SUBTYPE qualifier of the SHOW POOL command can either be the value of the pool type or its associated name. However, if given as a value, a /TYPE qualifier (giving a value or name) must also be specified. Note also that /TYPE and /SUBTYPE are interchangeable if packet-type is given by name. The table below shows several examples.

Table 4.15. /TYPE and /SUBTYPE Qualifier Examples
/TYPE and /SUBTYPE QualifiersMeaning
/TYPE = CIAll CI packets regardless of subtype
/TYPE = CI_MSGAll CI packets with subtype CI_MSG
/TYPE = MISC/SUBTYPE = 120All MISC packets with subtype 120
/TYPE = 0 or /TYPE = UNKNOWNAll packets with an unknown TYPE/SUBTYPE combination

Examples

  1. This example shows the Nonpaged Pool portion of the default SHOW POOL display.

  2. SDA> SHOW POOL/TYPE=IPC/HEADER 8156E140:815912C0
    
    Non-Paged Dynamic Storage Pool
    ------------------------------
    
    Dump of packets allocated from Non-Paged Pool
    ---------------------------------------------
    
       Packet type/subtype     Start    Length   RAD                    Header contents
    -------------------------  -------- -------- ---   -----------------------------------------------------
    IPC_TDB                    8156E140 00000040  00   81591180 057B0040 00000040 81591180  ..Y.@...@.{...Y.
    IPC_LIST                   815838C0 00009840  00   004C0200 087B9840 0057A740 8158D100  .ÑX.@§W.@.{...L.
    IPC_LIST                   8158D100 00001840  00   00040400 087B1840 00570F00 8158E940  @éX...W.@.{.....
    IPC_LIST                   8158E940 00002840  00   00140200 087B2840 0056F6C0 81591180  ..Y.ÀöV.@({.....
    IPC_TPCB                   81591180 00000080  00   00000000 067B0080 0056CE80 81591200  ..Y..ÎV...{.....
    IPC                        81591200 000000C0  00   00000000 007B00C0 0056CE00 815912C0  À.Y..ÎV.À.{.....
    
    Summary of Non-Paged Pool contents
    ----------------------------------
    
        Packet type/subtype        Packet count      Packet bytes    Percent
    ---------------------------  ----------------  ----------------  --------
    IPC                          00000006          0000DA40          (100.0%)
      IPC                                00000001          000000C0    (0.3%)
      IPC_TDB                            00000001          00000040    (0.1%)
      IPC_TPCB                           00000001          00000080    (0.2%)
      IPC_LIST                           00000003          0000D8C0   (99.3%)
    
    Total space used: 0000DA40 (55872.) bytes out of 00023180 (143744.) bytes
      in 00000006 (6.) packets
    
    Total space utilization: 38.9%

    This example shows how you can specify a pool packet type and a range of addresses.

  3. SDA> SHOW POOL/STATISTICS
    
    Non-Paged Pool statistics for RAD 00
    ------------------------------------
    
            On-RAD deallocations (all RADs):                    1221036
            Total deallocations (all RADs):                     1347991
            Percentage of on-RAD deallocations:                   90.6%
    
    Variable list statistics
    ------------------------
    
            Number of packets on variable list:                       7
            Total bytes on variable list:                       3613376
            Smallest packet on variable list:                       256
            Largest packet on variable list:                    3598016
            Bytes allocated from variable list:                 2140480
            Times pool expanded:                                      0
    
    Lookaside list statistics
    -------------------------
    
                          List   Packets     Packets    Operation   Allocation  Allocation
      Listhead address    size   (approx)    (actual)   sequence #   attempts    failures    Deallocs
      -----------------   ----  ----------  ----------  ----------  ----------  ----------  ----------
      FFFFFFFF.81008870     64           5           5       10057       10549         492       10062
      FFFFFFFF.81008878    128          21          21         366        4881        4515         387
      FFFFFFFF.81008880    192          33          33       27376       27542         166       27409
      FFFFFFFF.81008888    256           4           4        8367        8476         118        8362
    
       .
       .
       .
    

    This example shows the Nonpaged Pool portion of the SHOW POOL/STATISTICS display.

  4. This example shows the output of the SHOW POOL/RING_BUFFER display.

  5. SDA> SHOW POOL/PAGED/STATISTICS
    
    Paged Pool statistics
    ---------------------
    
    Variable list statistics
    ------------------------
            Number of packets on variable list:                     30
            Total bytes on variable list:                      4778288
            Smallest packet on variable list:                       16
            Largest packet on variable list:                   4777440
    
    Lookaside list statistics
    -------------------------
                            List                  Operation
      Listhead address      size     Packets      sequence #
      -----------------     ----    ----------    ----------
             ...
      FFFFFFFF.882119D0       80             0             1
             ...

    This example shows the output of paged pool statistics when the system parameter PAGED_LAL_SIZE has been set to a nonzero value.

4.62. SHOW PORTS

Displays those portions of the port descriptor table (PDT) that are port independent.

Format

SHOW PORTS [/qualifier[,...]]

Parameters

None.

Qualifiers

/ADDRESS=pdt-address

Displays the specified port descriptor table (PDT). You can find the pdt-address for any active connection on the system in the PDT summary page display of the SHOW PORTS command. This command also defines the symbol PE_PDT. The connection descriptor table (CDT) addresses are also stored in many individual data structures related to System Communications Services (SCS) connections, for instance, in the path block displays of the SHOW CLUSTER/SCS command.

/BUS=bus-address

Displays bus (LAN device) structure data.

/CHANNEL=channel-address

Displays channel (CH) data.

/DEVICE

Displays the network path description for a channel.

/MESSAGE

Displays the message data associated with a virtual circuit (VC).

/NODE=node

Shows only the virtual circuit block associated with the specific node. When you use the /NODE qualifier, you must also specify the address of the PDT using the /ADDRESS qualifier.

/VC=vc-address

Displays the virtual circuit data.

Description

The SHOW PORTS command provides port-independent information from the port descriptor table (PDT) for those CI ports with full System Communications Services (SCS) connections. This information is used by all SCS port drivers.

The SHOW PORTS command also defines symbols for PEDRIVER based on the cluster configuration. These symbols include the following information:

  • Virtual circuit (VC) control blocks for each of the remote systems

  • Bus data structure for each of the local LAN adapters

  • Some of the data structures used by both PEDRIVER and the LAN drivers

The following symbols are defined automatically:

  • VC_nodename---Example: VC_NODE1, address of the local node's virtual circuit to node NODE1.

  • CH_nodename---The preferred channel for the virtual circuit. For example, CH_NODE1, address of the local node's preferred channel to node NODE1.

  • BUS_busname---Example: BUS_ETA, address of the local node's bus structure associated with LAN adapter ETA0.

  • PE_PDT---Address of PEDRIVER's port descriptor table.

  • MGMT_VCRP_busname---Example: MGMT_VCRP_ETA, address of the management VCRP for bus ETA.

  • HELLO_VCRP_busname---Example: HELLO_VCRP_ETA, address of the HELLO message VCRP for bus ETA.

  • VCIB_busname---Example: VCIB_ETA, address of the VCIB for bus ETA.

  • UCB_LAVC_busname---Example: UCB_LAVC_ETA, address of the LAN device's UCB used for the local-area OpenVMS Cluster protocol.

  • UCB0_LAVC_busname---Example: UCB0_LAVC_ETA, address of the LAN device's template UCB.

  • LDC_LAVC_busname---Example: LDC_LAVC_ETA, address of the LDC structure associated with LAN device ETA.

  • LSB_LAVC_busname---Example: LSB_LAVC_ETA, address of the LSB structure associated with LAN device ETA.

These symbols equate to system addresses for the corresponding data structures. You can use these symbols, or an address, in SHOW PORTS qualifiers that require an address, as in the following:

SDA> SHOW PORTS/BUS=BUS_ETA

The SHOW PORTS command produces several displays. The initial display, the PDT summary page, lists the PDT address, port type, device name, and driver name for each PDT. Subsequent displays provide information taken from each PDT listed on the summary page.

You can use the /ADDRESS qualifier to the SHOW PORTS command to produce more detailed information about a specific port. The first display of the SHOW PORTS/ADDRESS command duplicates the last display of the SHOW PORTS command, listing information stored in the port's PDT. Subsequent displays list information about the port blocks and virtual circuits associated with the port.

Examples

  1. SDA> SHOW PORTS
    OpenVMS Cluster data structures
    --------------------------
    
                      --- PDT Summary Page ---
    
     PDT Address          Type         Device          Driver Name
     -----------          ----         -------         -----------
    
      80E2A180             pn          PNA0            SYS$PNDRIVER
      80EC3C70             pe          PEA0            SYS$PEDRIVER
    
                      --- Port Descriptor Table (PDT) 80E2A180 ---
    
    Type: 09 pn
    Characteristics: 0000
    
    Msg Header Size          104  Flags               0000  Message Sends    3648575
    Max Xfer Bcnt       00100000  Counter CDRP    00000000  Message Recvs    4026887
    Poller Sweep              21  Load Vector     80E2DFCC  Mess Sends NoFP  3020422
    Fork Block W.Q.     80E2A270  Load Class            60  Mess Recvs NoFP  3398732
    UCB Address         80E23380  Connection W.Q. 80E4BF94  Datagram Sends         0
    ADP Address         80E1BF00  Yellow Q.       80E2A2E0  Datagram Recvs         0
    Max VC timeout            16  Red Q.          80E2A2E8  Portlock        80E1ED80
    SCS Version                2  Disabled Q.     80FABB74  Res Bundle Size      208
                                  Port Map        00000001
    
                      --- Port Descriptor Table (PDT) 80EC3C70 ---
    
    Type: 03 pe
    Characteristics: 0000
    
    Msg Header Size           32  Flags               0000  Message Sends     863497
    Max Xfer Bcnt       FFFFFFFF  Counter CDRP    00000000  Message Recvs     886284
    Poller Sweep              30  Load Vector     80EDBF8C  Mess Sends NoFP   863497
    Fork Block W.Q.     80EC3D60  Load Class            10  Mess Recvs NoFP   886284
    UCB Address         80EC33C0  Connection W.Q. 80EFF5D4  Datagram Sends         0
    ADP Address         00000000  Yellow Q.       80EC3DD0  Datagram Recvs         0
    Max VC timeout            16  Red Q.          80EC3DD8  Portlock        00000000
    SCS Version                2  Disabled Q.     812E72B4  Res Bundle Size        0
                                  Port Map        00000000

    This example illustrates the default output of the SHOW PORTS command.

  2. SDA> SHOW PORTS/ADDRESS=80EC3C70
    OpenVMS Cluster data structures
    --------------------------
    
                      --- Port Descriptor Table (PDT) 80EC3C70 ---
    
    Type: 03 pe
    Characteristics: 0000
    
    Msg Header Size           32  Flags               0000  Message Sends     864796
    Max Xfer Bcnt       FFFFFFFF  Counter CDRP    00000000  Message Recvs     887086
    Poller Sweep              30  Load Vector     80EDBF8C  Mess Sends NoFP   864796
    Fork Block W.Q.     80EC3D60  Load Class            10  Mess Recvs NoFP   887086
    UCB Address         80EC33C0  Connection W.Q. 80EFF5D4  Datagram Sends         0
    ADP Address         00000000  Yellow Q.       80EC3DD0  Datagram Recvs         0
    Max VC timeout            16  Red Q.          80EC3DD8  Portlock        00000000
    SCS Version                2  Disabled Q.     812E72B4  Res Bundle Size        0
                                  Port Map        00000000
                                  Port Map        00000000
    
                     --- Port Block 80EC4540 ---
    
    Status: 0001 authorize
    VC Count: 20
    Secs Since Last Zeroed: 77020
    
    SBUF Size             824     LBUF Size         5042     Fork Count     1943885
    SBUF Count             28     LBUF Count           1     Refork Count         0
    SBUF Max              768     LBUF Max           384     Last Refork   00000000
    SBUF Quo               28     LBUF Quo             1     SCS Messages   1154378
    SBUF Miss            1871     LBUF Miss         3408     VC Queue Cnt    361349
    SBUF Allocs       1676801     LBUF Allocs      28596     TQE Received    770201
    SBUFs In Use            2     LBUFs In Use         0     Timer Done      770201
    Peak SBUF In Use      101     Peak LBUF In Use    10     RWAITQ Count     30288
    SBUF Queue Empty        0     LBUF Queue Empty     0     LDL Buf/Msg      32868
    TR SBUF Queue Empty     0     Ticks/Second        10     ACK Delay      1000000
    No SBUF for ACK         0     Listen Timeout       8     Hello Interval      30
    
    Bus Addr  Bus     LAN Address    Error Count Last Error   Time of Last Error
    --------  ---  ----------------- ----------- ---------- -----------------------
    80EC4C00  LCL  00-00-00-00-00-00           0
    80EC5400  EXA  08-00-2B-17-CF-92           0
    80EC5F40  FXA  08-00-2B-29-E1-40           0
    
                     --- Virtual Circuit (VC) Summary ---
    
    VC Addr     Node    SCS ID  Lcl ID    Status Summary        Last Event Time
    --------  --------  ------  ------  -----------------   -----------------------
    80E566C0  ARUSHA     19617  223/DF  open,path            8-FEB-2001 16:01:57.58
    80E98840  ETOSHA     19699  222/DE  open,path            8-FEB-2001 16:01:58.41
    80E98A80  VMS        19578  221/DD  open,path            8-FEB-2001 16:01:58.11
       .
       .
       .

    This example illustrates the output produced by the SHOW PORTS command for the PDT at address 80EC3C70.

4.63. SHOW PROCESS

Displays the software and hardware context of any process in the system. If the process is suspended (ANALYZE/SYSTEM), then some displays may be incomplete or unavailable. If the process was outswapped at the time of the system crash, or not included in a selective dump (ANALYZE/CRASH_DUMP), then some displays may be incomplete or unavailable. Please see descriptions of the individual qualifiers for details not included in the syntax definition.

Format

SHOW PROCESS

Parameters

ALL

Information is to be displayed about all processes that exist in the system.

process-name

Name of the process for which information is to be displayed. Use of the process-name parameter or one of the /ADDRESS, /ID, /INDEX, /NEXT, or /SYSTEM qualifiers causes the SHOW PROCESS command to perform an implicit SET PROCESS command, making the indicated process the current process for subsequent SDA commands.

When you analyze a crash dump from a multiprocessing system, changing process context may require a switch of CPU context as well. When you issue a SET PROCESS command, SDA automatically changes its CPU context to that of the CPU on which that process is, or was most recently, current. You can determine the names of the processes in the system by issuing a SHOW SUMMARY command.

The process-name can contain up to 15 uppercase letters, numerals, the underscore (_), dollar sign, colon (:), and some other printable characters. If it contains any other characters (including lowercase letters), you may need to enclose the process-name in quotation marks (" ").

Qualifiers

/ADDRESS=pcb-address

Specifies the process control block (PCB) address of a process in order to display information about the process.

/ALL

Displays all information shown by the following qualifiers:

/BUFFER_OBJECTS

/CHANNELS

/FANDLES

/IMAGES=ALL

/LOCKS

/PAGE_TABLES=ALL

/PCB

/PERSONA/RIGHTS

/PHD

/POOL/HEADER/RING_BUFFER/STATISTICS

/PROCESS_SECTION_TABLE

/REGIONS

/REGISTERS

/RMS

/SEMAPHORE

/THREADS

/TQE

/UNWIND_TABLE (Integrity servers only.)

/WORKING_SET_LIST

/AUTHORIZED

Used with the /PERSONA/RIGHTS qualifiers. See the /PERSONA/RIGHTS/AUTHORIZED description for the use of the /AUTHORIZED qualifier.

/BRIEF

When used with the /LOCKS qualifier, causes SDA to display each lock owned by the current process in brief format, that is, one line for each lock. When used with the /POOL qualifier, causes SDA to display only general information about process pool and its addresses.

/BUFFER_OBJECTS

Displays all the buffer objects that a process has created.

/CHANNELS

Displays information about the I/O channels assigned to the process.

/CHECK

Checks all free process pool packets for POOLCHECK-style corruption in exactly the same way that the system does when generating a POOLCHECK crash dump.

/FANDLES

Displays the data on the process' fast I/O handles.

/FID_ONLY

When used with /CHANNEL or /PROCESS_SECTION_TABLE (/PST), causes SDA to not attempt to translate the FID (File ID) to a file name when invoked with ANALYZE/SYSTEM.

/FREE

When used with /POOL, displays the entire contents, both allocated and free, of the specified region or regions of pool. Use the /FREE qualifier with a range to show all of the used and free pool in the given range.

/GSTX=index

When used with the /PAGE_TABLES qualifier, displays only page table entries for the specific global section.

/HEADER

When used with /POOL, displays only the first 16 bytes of each data packet found within the specified region or regions of pool.

/IMAGES [= {name|ALL} ]

For all images in use by this process, displays the address of the image control block, the start and end addresses of the image, the activation code, the protected and shareable flags, the image name, and the major and minor IDs of the image. The /IMAGES=ALL qualifier also displays the base, end, image offset, section type, and global pointer for all images (Integrity servers) or for all installed resident images (Alpha) in use by this process. The /IMAGE=name qualifier displays this information for just the specified images; name may contain wildcards.

See the VSI OpenVMS Linker Utility Manual and the Install utility chapter in the VSI OpenVMS System Management Utilities Reference Manual for more information on images installed using the /RESIDENT qualifier.

/ID=nn

/INDEX=nn

Specifies the process for which information is to be displayed by its index into the system's list of software process control blocks (PCBs), or by its process identification (ID). /ID and /INDEX can be used interchangeably. You can supply the following values for nn:

  • The process index itself.

  • The process identification (PID) or extended PID longword, from which SDA extracts the correct index. You can specify the PID or extended PID of any thread of a process with multiple kernel threads. Any thread-specific data displayed by SHOW PROCESS will be for the given thread.

To obtain these values for any given process, issue the SDA command SHOW SUMMARY/THREADS.

/INVALID_PFN [=option]

The /INVALID_PFN qualifier, which is valid only on platforms that supply an I/O memory map, causes SDA to display only page table entries that map to PFNs that are not in the system's private memory or in Galaxy-shared memory, and which are not I/O access pages. Use of /INVALID_PFN implies /PAGE_TABLES.

The /INVALID_PFN qualifier allows two optional keywords, READONLY and WRITABLE. If neither keyword is given, all relevant pages are displayed. If you specify READONLY, only pages marked for no write access are displayed. If you specify WRITABLE, only pages that allow write access are displayed. For example, SHOW PROCESS ALL/PAGE_TABLE=ALL/INVALID_PFN=WRITABLE would display all process pages (for all processes) whose protection allows write, but which map to PFNs that do not belong to this system.

/L1

/L2

/L3 (D)

Used with the /PAGE_TABLES qualifier to specify the level for which page table entries are to be displayed. You can specify only one level. /L3 is the default.

/LOCKS [/BRIEF]

Displays the lock management locks owned by the current process.

When specified with /BRIEF, produces a display similar in format to that produced by the SHOW LOCKS command; that is, it causes SDA to display each lock owned by the current process in brief format with one line for each lock. Table 4.3, “Contents of the SHOW LOCKS and SHOW PROCESS/LOCKS Displays” contains additional information.

/MAXIMUM_BYTES [=n]

When used with /POOL, displays only the first n bytes of a pool packet; if you specify /MAXIMUM_BYTES without a value, the default is 64 bytes.

/NEXT

Locates the next valid process in the system's process list and selects that process. If there are no further valid processes in the system's process list, SDA returns an error.

/NONMEMORY_PFN [=option]

The /NONMEMORY_PFN qualifier causes SDA to display only page table entries that are in neither the system's private memory nor in Galaxy-shared memory. Use of /NONMEMORY_PFN implies /PAGE_TABLES.

The /NONMEMORY_PFN qualifier allows two optional keywords, READONLY and WRITABLE. If neither keyword is given, all relevant pages are displayed. If you specify READONLY, only pages marked for no write access are displayed. If you specify WRITABLE, only pages that allow write access are displayed. For example, SHOW PROCESS ALL/PAGE_TABLE=ALL/NONMEMORY_PFN=WRITABLE would display all process pages (for all processes) whose protection allows write, but which map to PFNs that are in neither the system's private memory nor Galaxy-shared memory.

/P0 (D)

/P1

/P2

/PT

When used with the /PAGE_TABLES qualifier, /P0, /P1, /P2, and /PT specify one or more regions for which page table entries should be displayed. You can specify any or none of these values. The default is /P0.

/PAGE_TABLES

Displays the page tables of the process P0 (process), P1 (control), P2, or PT (page table) region, or, optionally, page table entries for a range of addresses. You can use /PAGE_TABLES=ALL to display page tables of all four regions. With /Ln, the page table entries at the level specified by /L1, /L2, or /L3 (the default) are displayed.

With /RDE=id or /REGIONS=id, SDA displays the page tables for the address range of the specified address region. When you do not specify an ID, the page tables are displayed for all the process-permanent and user-defined regions.

If /PTE_ADDRESS is given, the range is expressed using the following syntax:

mDisplays the single page table entry at address m
m:nDisplays the page table entries from address m to address n
m;nDisplays n bytes of page table entries starting at address m

If /PTE_ADDRESS is not given, then range is expressed using the following syntax:

mDisplays the single page table entry that corresponds to virtual address m
m:nDisplays the page table entries that correspond to the range of virtual addresses from m to n
m;nDisplays the page table entries that correspond to a range of n bytes starting at virtual address m

See Section 2.8, “Page Protections and Access Rights” for information on page protections and access.

The /GSTX=index qualifier causes SDA to display only the page table entries for the pages in the specified global section.

The /SECTION_INDEX=n qualifier causes SDA to display only the page table entries for the pages in the specified process section.

/PCB

Displays the information contained in the process control block (PCB). This is the default behavior of the SHOW PROCESS command.

/PERSONA [=address]

Displays all persona security blocks (PSBs) held in the PERSONA ARRAY of the process, and then lists selected information contained in each initially listed PSB. The selected information includes the contents of the following cells inside the PSB:

Flags

Reference count

Execution mode

Audit status

Account name

UIC

Privileges

Rights enabled mask

If you specify a PSB address, this information is provided for that specific PSB only.

If you also specify /RIGHTS, SDA expands the display to provide additional selected information, including all the rights and their attributes currently held and active for each persona security block (PSB) specified with the /PERSONA qualifier.

If you specify /RIGHTS/AUTHORIZED, SDA also displays additional selected information, including all the rights and their attributes authorized for each persona security block (PSB) specified with the /PERSONA qualifier.

/PHD

Lists the information included in the process header (PHD).

/POOL [= {P0 | P1 | IMGACT | ALL (D)} | range]

Displays the dynamic storage pool in the process' P0 (process) region, the P1 (control) region, or the image activator's reserved pages, or optionally, a range of addresses. The default action is to display all dynamic storage pools.

You can express a range using the following syntax:

m:nDisplays the process pool in the range of virtual addresses from m to n.
m;nDisplays process pool in a range of n bytes, starting at virtual address m.
/PPT

See the description of /PAGE_TABLES, which is functionally equivalent to /PPT.

/PROCESS_SECTION_TABLE [/SECTION_INDEX=id][/FID_ONLY]

Lists the information contained in the process section table (PST). The /SECTION_INDEX=id qualifier used with /PROCESS_SECTION_TABLE displays the process section table entry for the specified section.

/PST

Is a synonym for /PROCESS_SECTION_TABLE.

/PT

When used with the /PAGE_TABLES qualifier, displays the page table entries for the page table space of the process. By default, P0 space is displayed.

/PTE_ADDRESS

When used with the /PAGE_TABLES qualifier, specifies that the range is of PTE addresses instead of the virtual addresses mapped by the PTE.

/RDE [=id]

/REGIONS [=id]

Lists the information contained in the process region table for the specified region. If you do not specify a region, the entire table is displayed, including the process-permanent regions. /RDE and /REGIONS are functionally equivalent. When used with /PAGE_TABLES, this qualifier causes SDA to display the page tables for only the specified region or, by default, for all regions.

/REGISTERS

Lists the hardware context of the process, as reflected in the process registers stored in the hardware privileged context block (HWPCB), in its kernel stack, and possibly, in its PHD.

/RIGHTS

Used with the /PERSONA qualifier. See the /PERSONA/RIGHTS description for use of the /RIGHTS qualifier.

/RING_BUFFER [={ALL | address}]

Displays the contents of the process-pool history ring buffer. Entries are displayed in reverse chronological order (most recent to least recent). If you specify /RING_BUFFER without the ALL keyword or an address, SDA displays all unmatched current allocations and deallocations. Use /RING_BUFFER=ALL to display matched allocations and deallocations and any non-current entries not yet overwritten. Use /RING_BUFFER=address to limit the display to only allocations and deallocations of blocks that contain the given address (including matched allocations and deallocations).

/RMS [= (option[,...]) ]

Displays certain specified RMS data structures for each image I/O or process-permanent I/O file the process has open. To display RMS data structures for process-permanent files, specify the PIO option to this qualifier. Other guidelines for specifying this qualifier include the following:

  • If you specify only one option, you can omit the parentheses.

  • You can add additional structures to those already set by the SET RMS command by beginning the list of options with an asterisk (*).

  • You can exclude a structure from those set by the SET RMS command by specifying its keyword option preceded by NO (for example, NOPIO).

SDA determines the structures to be displayed according to either of the following methods:

  • If you provide the name of a structure or structures in the option parameter, SHOW PROCESS/RMS displays information from only the specified structures. (See Table 4.2, “SET RMS Command Keywords for Displaying Process RMS Information” in the SET RMS command description for a list of keywords that you can supply as options.)

  • If you do not specify an option, SHOW PROCESS/RMS displays the current list of options as shown by the SHOW RMS command and set by the SET RMS command.

/SECTION_INDEX=n

When used with the /PAGE_TABLES qualifier, displays the page table for the range of pages in the specified process section. You can also specify one of the qualifiers /L1, /L2, or /L3.

When used with the /PROCESS_SECTION_TABLE qualifier, displays the PST for the specified process section.

The /SECTION_INDEX=n qualifier is ignored if you do not specify either the /PAGE_TABLES or the /PROCESS_SECTION_TABLE qualifier.

/SEMAPHORE

Displays the Inner Mode Semaphore for a multithreaded process.

/STATISTICS

When used with /POOL, displays statistics on the free list(s) in process pool.

/SUBTYPE=packet-type

When used with /POOL, displays only packets of the specified subtype. Pool packet types found in the process pool can include logical names (LNM) and image control blocks (IMCB). /SUBTYPE is functionally equivalent to /TYPE.

/SUMMARY

When used with /POOL, displays only an allocation summary for each packet type.

/SYSTEM

Displays the system's process control block. The system PCB and process header (PHD) parallel the data structures that describe processes. They contain the system working set, global section table, global page table, and other systemwide data.

/THREADS

Displays the software and hardware context of all the threads associated with the current process.

/TQE [=ALL]

Displays all timer queue entries associated with the current process. If specified as /TQE, a one-line summary is output for each TQE. If specified as /TQE=ALL, a detailed display of each TQE is output. See Table 4-32 for an explanation of TQE types in the one-line summary.

/TYPE=packet-type

When used with /POOL, displays only packets of the specified type. Pool packet types found in the process pool can include logical names (LNM) and image control blocks (IMCB). /TYPE is functionally equivalent to /SUBTYPE.

/UNUSED

When used with /POOL, displays only free packets.

/UNWIND_TABLE [= {ALL | name} ]

Valid for Intergrity server systems only.

If specified without a keyword, displays the master unwind table for the process. SHOW PROCESS/UNWIND=ALL displays the details of every process unwind descriptor. SHOW PROCESS/UNWIND=name displays the details of every unwind descriptor for the named image or images implied by a wildcard. To look at unwind data for a specific PC in process space, use SHOW UNWIND address.

If some or all unwind data for an image is not included in the system dump (for example, if it was not in the working set of the process at the time of the system crash), a SHOW PROCESS/UNWIND command can fail with a %SDA-W-NOREAD error because the unwind data is inaccessible. Collecting unwind data using the SDA commands COLLECT and COPY/COLLECT will not correct this because the collected unwind data is used only by SHOW UNWIND address and SHOW CALL.

/WORKING_SET_LIST [={PPT|PROCESS|LOCKED|GLOBAL|MODIFIED|n}]

Displays the contents of the requested entries of the working set list for the process. If you do not specify an option, all working set list entries are displayed. This qualifier is functionally equivalent to /WSL.

The table shows the options available with SHOW PROCESS/WORKING_SET_LIST.

Table 4.16. Options for the /WORKING_SET_LIST Qualifier
OptionsResults
PPTDisplays process page table pages
PROCESSDisplays process-private pages
LOCKEDDisplays pages locked into the process' working set
GLOBALDisplays global pages currently in the working set of the process
MODIFIEDDisplays working set list entries marked modified
nDisplays a specific working set list entry, where n is the working set list index (WSLX) of the entry of interest
/WSL

See /WORKING_SET_LIST, which is functionally equivalent to /WSL.

Description

The SHOW PROCESS command displays information about the process specified by process-name, the process specified in the /ID or /INDEX qualifier, the next process in the system's process list, the system process, or all processes. The SHOW PROCESS command performs an implicit SET PROCESS command under certain uses of its qualifiers and parameters, as noted previously. By default, the SHOW PROCESS command produces information about the SDA current process, as defined in Section 2.5, “SDA Context”.

The default of the SHOW PROCESS command provides information taken from the software process control block (PCB) and the kernel threads block (KTB) of the SDA current thread. This is the first display provided by the /ALL qualifier and the only display provided by the /PCB qualifier. This information describes the following characteristics of the process:

  • Software context

  • Condition-handling information

  • Information on interprocess communication

  • Information on counts, quotas, and resource usage

Among the displayed information are the process PID, EPID, priority, job information block (JIB) address, and process header (PHD) address. SHOW PROCESS also describes the resources owned by the process, such as event flags and mutexes. The "State" field records the current scheduling state for the thread, and indicates the CPU ID of any thread whose state is CUR. See Table 4.26, “Current State Information” for a list of all possible states.

The /THREADS qualifier (also part of SHOW PROCESS/ALL), displays information from the KTBs of all threads in the process, instead of only the SDA current thread.

The SHOW PROCESS/ALL command displays additional process-specific information, also provided by several of the individual qualifiers to the command.

The process registers display, also produced by the /REGISTERS qualifier, describes the process hardware context, as reflected in its registers. The registers displayed are those of the SDA current thread, or of all threads if either the /THREADS or the /ALL qualifier have been specified.

A process hardware context is stored in the following locations:

  • If the process is currently executing on a processor in the system (that is, in the CUR scheduling state), its hardware context is contained in that processor's registers. (That is, the process registers and the processor's registers contain identical values, as illustrated by a SHOW CPU command for that processor or a SHOW CRASH command, if the process was current at the time of the system failure.)

  • If the process is not executing, its privileged hardware context is stored in the part of the PHD known as the HWPCB. Its integer register context is stored on its kernel stack. Its floating-point registers are stored in its PHD.

The process registers display first lists those registers stored in the HWPCB, kernel stack, and PHD ("Saved process registers"). If the process to be displayed is currently executing on a processor in the system, the display then lists the processor's registers ("Active registers for the current process"). In each section, the display lists the registers in groups.

For Alpha:

  • Integer registers (R0 through R29)

  • Special-purpose registers (PC and PS)

  • Stack pointers (KSP, ESP, SSP, and USP)

  • Page table base register (PTBR)

  • AST enable and summary registers (ASTEN and ASTSR)

  • Address space number register (ASN)

For Integrity servers:

  • Integer registers (R1 through R11, R13 through R31). Note that R1 is displayed as GP (Global Pointer) and R12 is omitted.

  • Special-purpose registers (PC, PSR, ISR). Note: The PC is the combination of the IP and the slot number from the PSR.

  • Stack pointers (KSP, ESP, SSP, and USP)

  • Register stack pointers (KBSP, EBSP, SBSP, and UBSP)

  • Page table base register (PTBR0)

  • AST enable and summary registers (ASTEN and ASTSR)

  • Address space number registers (ASN0)

  • Floating point registers (F2 through F31, possibly F32 through F127)

The semaphore display, also produced by the /SEMAPHORE qualifier, provides information on the inner-mode semaphore used to synchronize kernel threads. The PC history log, recorded if the system parameter SYSTEM_CHECK is enabled, is also displayed.

The process header display, also produced by the /PHD qualifier, provides information taken from the PHD, which is swapped into memory when the process becomes part of the balance set. Each item listed in the display reflects a quantity, count, or limit for the process use of the following resources:

  • Process memory

  • The pager

  • The scheduler

  • Asynchronous system traps

  • I/O activity

  • CPU activity

The working set information and working set list displays, also produced by the /WORKING_SET_LIST qualifier, describe those virtual pages that the process can access without a page fault. After a brief description of the size, scope, and characteristics of the working set list itself, SDA displays information for each entry in the working set list as shown in the table below.

Table 4.17. Working Set List Entry Information in the SHOW PROCESS Display
ColumnContents
INDEXIndex into the working set list at which information for this entry can be found
ADDRESSVirtual address of the page that this entry describes
STATUS

Four columns that list the following status information:

When SDA locates either one or more unused working set entries, or entries that do not match the specified option, it issues the following message:

---- n entries not displayed

The process section table information and process section table displays, also produced by the /PROCESS_SECTION_TABLE or /PST qualifier, list each entry in the process section table (PST) and display the offsets to, and the indexes of, the first free entry and last used entry.

SDA displays the information listed in the table below for each PST entry.

Table 4.18. Process Section Table Entry Information in the SHOW PROCESS Display
PartDefinition
INDEXIndex number of the entry. Entries in the process section table begin at the highest location in the table, and the table expands toward lower addresses.
ADDRESSAddress of the process section table entry.
SECTION ADDRESSVirtual address that marks the beginning of the first page of the section described by this entry.
CCBAddress of the channel control block on which the section file is open.
PAGELETSLength of the process section. This is in units of pagelets, except for a PFN-mapped section in which the units are pages.
VBNVirtual block number. The number of the file's virtual block that is mapped into the section's first page.
WINDOWAddress of the window control block on which the section file is open.
REFCNTNumber of pages of this section that are currently mapped.
FLINKForward link. The pointer to the next entry in the PST list.
BLINKBackward link. The pointer to the previous entry in the PST list.
FLAGSFlags that describe the access that processes have to the process section.

In addition, for each process section that has an associated file, the device and/or file name is displayed. For details of this display, see Table 4.20, “Process I/O Channel Information in the SHOW PROCESS Display”.

The regions display, also produced by the either of the /RDE or /REGIONS qualifiers, shows the contents of the region descriptors. This includes the three default regions (P0, P1, P2), plus any others created by the process. A single region will be displayed if you specify its identifier. The information displayed for each region includes the RDE address, the address range of the region, its identifiers and protection, and links to other RDEs.

If you use the /PAGE_TABLE or /PPT qualifier with /RDE or /REGION, the page table for the region is also displayed, as described below.

The P0 page table, P1 page table, P2 page table, and PT page table displays, also produced by the /PAGE_TABLES qualifier, display listings of the process page table entries in the same format as that produced by the SHOW PAGE_TABLE command (see Tables Table 4.4, “Virtual Page Information in the SHOW PAGE_TABLE Display” through Table 4.9, “Locations of Physical Pages”).

The RMS display, also produced by the /RMS qualifier, provides information on the RMS internal data structures for all RMS-accessed open files. The data structures displayed depend on the current setting of RMS options, as described under the SET RMS command and Table 4.2, “SET RMS Command Keywords for Displaying Process RMS Information”.

The locks display, also produced by the /LOCKS qualifier, provides information on the locks held by the process. For a full description of the information displayed for process locks, see the SHOW LOCKS command and Table 4.3, “Contents of the SHOW LOCKS and SHOW PROCESS/LOCKS Displays”. You can also specify the /BRIEF qualifier, which provides single-line summary of each process lock; however, no other qualifiers from SHOW LOCKS apply to SHOW PROCESS/LOCKS.

The process active channels display, also produced by the /CHANNEL qualifier, displays the information in Table 4.19, “Process Active Channels in the SHOW PROCESS Display” for each I/O channel assigned to the process.

Table 4.19. Process Active Channels in the SHOW PROCESS Display
ColumnContents
ChannelNumber of the channel.
CCBThe address of the channel control block (CCB).
WindowAddress of the window control block (WCB) for the file if the device is a file-oriented device; zero otherwise.
StatusStatus of the device: "Busy" if the device has an I/O operation outstanding; "Dpnd" if the device is deaccess pending; blank otherwise.
Device/file accessedName of the device and, if applicable, name of the file being accessed on that device.

The information listed under the heading "Device/file accessed" varies from channel to channel and from process to process. SDA displays certain information according to the conditions listed in the table below.

Table 4.20. Process I/O Channel Information in the SHOW PROCESS Display
Information Displayed1Type of Channel
dcuu:SDA displays this information for devices that are not file structured, such as terminals, and for processes that do not open files in the normal way.
dcuu: filespecSDA displays this information only if you are examining a running system, and only if your process has enough privilege to translate the file-id into the filespec, or if you are examining a dump for which file identification data 2 has been collected.
dcuu:( file-id)The file-id no longer points to a valid filespec, as when you look at a dump that does not have file identification data 2; or the process in which you are running SDA does not have enough privilege to translate the file-id into the corresponding filespec.
(section file)The file in question is mapped into the process' memory.

The images display, also produced by the /IMAGES qualifier, describes the activated images in the process. SDA displays the information listed in the table below for each image, plus a summary line giving the total image and total page counts.

Table 4.21. Image Information in the SHOW PROCESS Display
ItemDescription
Image NameThe name of the image.
Link TimeThe date and time the image was linked. These items are only displayed with SHOW PROCESS/IMAGE=ALL or SHOW PROCESS/ALL.
Section TypeFor shareable images, the data for each image section is displayed on a separate line. For privileged shareable images, data for the change mode vector is also displayed on a separate line. These items are only displayed with SHOW PROCESS/IMAGE=ALL or SHOW PROCESS/ALL.
StartStart address of the image in process memory. For resident shareable images, this is the start address of the process-space portion of the image. Alpha only.
EndEnd address of the image in process memory. For resident shareable images, this is the end address of the process-space portion of the image. Alpha only.
TypeThe image type and/or activation method, plus "PROT" for protected images and "SHR" for shareable images.
File IDThe File ID for the image file. No attempt is made to translate this to a filename. These items are only displayed with SHOW PROCESS/IMAGE=ALL or SHOW PROCESS/ALL.
IMCBThe address of the Image Management Control Block.
GPThe Global Pointer for the image. Integrity servers only.
Sym VectThe address of the image's symbol vector, if any. These items are only displayed with SHOW PROCESS/IMAGE=ALL or SHOW PROCESS/ALL.
Maj, Minor IDThe major and minor revision IDs for the image. These items are only displayed with SHOW PROCESS/IMAGE=ALL or SHOW PROCESS/ALL. Alpha only.
Maj, Min ID, MatchThe major and minor revision IDs for the image, plus the match control bits. These items are only displayed with SHOW PROCESS/IMAGE=ALL or SHOW PROCESS/ALL. Integrity servers only.
BaseFor Alpha shareable images and all Integrity server images, the base address of each image section and/or the change mode vector. These items are only displayed with SHOW PROCESS/IMAGE=ALL or SHOW PROCESS/ALL.
EndFor Alpha shareable images and all Integrity server images, the end address of each image section and/or the change mode vector. These items are only displayed with SHOW PROCESS/IMAGE=ALL or SHOW PROCESS/ALL.
ImageOffFor Alpha shareable images and all Integrity server images, the virtual offset within the image file for each image section. These items are only displayed with SHOW PROCESS/IMAGE=ALL or SHOW PROCESS/ALL.

The buffer objects display, also produced by the /BUFFER_OBJECTS qualifier, describes the buffer objects in use by the process. Information displayed by SDA for each buffer object includes its address, access mode, size, flags, plus the base virtual address of the object in process space and system space.

The fast I/O handles display, also produced by the /FANDLES qualifier, describes the fast I/O handles used by the process. Information displayed by SDA includes the address and size of the fast I/O handle vector header, then the address, corresponding IRP, state, and buffer object handles for each fast I/O handle, plus information on free vector entries.

The persona display, also produced by the /PERSONA qualifier, describes the Persona status block data structures. The default output of /PERSONA consists of summary information for all personae in use by the process (the PSB address, flags, user name) and information for each persona (privilege masks, UIC, and so on). When you specify /PERSONA/RIGHTS (as in SHOW PROCESS/ALL), all the rights currently held and active for each persona are also displayed. When you specify /PERSONA/RIGHTS/AUTHORIZED, all the rights authorized for each persona are displayed instead.

The pool display, also produced by the /POOL qualifier, describes the P0, P1 and IMGACT process pools. The default output of /POOL is the entire contents of each used block of pool. When you specify /POOL/HEADER (as in SHOW PROCESS/ALL), only the first 16 bytes of each used pool block is displayed. By default, all process pools are displayed. You can limit this using /POOL=P0, /POOL=P1 or /POOL=IMGACT. See the description of the SHOW POOL command for explanations of other qualifiers.

The Timer Queue Entry (TQE) display, also produced by the /TQE qualifier, describes all timer queue entries that affect the process. The default display (as in SHOW PROCESS/ALL) is a one-line summary of each TQE. If you specify /TQE=ALL, a detailed display of each TQE is given. No other qualifiers from the SHOW TQE command apply to SHOW PROCESS/TQE.

Examples

SDA>  SHOW PROCESS
Process index: 0028   Name: SYSTEM   Extended PID: 000000E8
-----------------------------------------------------------
Process status:          02040001  RES,PHDRES,INTER
        status2:         00000000

PCB address              81444A40    JIB address              81443600
PHD address              821AA000    Swapfile disk address    00000000
KTB vector address       81444D2C    HWPCB address            821AA080
Callback vector address  00000000    Termination mailbox          0000
Master internal PID      00030028    Subprocess count                0
Creator extended PID     00000000    Creator internal PID     00000000
Previous CPU Id          00000000    Current CPU Id           00000000
Previous ASNSEQ  0000000000000003    Previous ASN     0000000000000017
Initial process priority        4    # open files remaining        100/100
Delete pending count            0    Direct I/O count/limit        150/150
UIC                [00001,000004]    Buffered I/O count/limit      149/150
Abs time of last event   01F1A51D    BUFIO byte count/limit      99424/99808
# of threads                    1    ASTs remaining                248/250
Swapped copy of LEFC0    00000000    Timer entries remaining        20/20
Swapped copy of LEFC1    00000000    Active page table count         0
Global cluster 2 pointer 00000000    Process WS page count          43
Global cluster 3 pointer 00000000    Global WS page count           28

Thread index: 0000
------------------
Current capabilities:    System: 0000000C  QUORUM,RUN
                         User:   00000000
Permanent capabilities:  System: 0000000C  QUORUM,RUN
                         User:   00000000
Current affinities:      00000000
Permanent affinities:    00000000
Thread status:           02040001
       status2:          00000000

KTB address              81444A40    HWPCB address            821AA080
PKTA address             7FFEFF98    Callback vector address  00000000
Internal PID             00030028    Callback error           00000000
Extended PID             000000E8    Current CPU id           00000000
State                       LEF      Flags                    00000000
Base priority                   4    Current priority                5
Waiting EF cluster              0    Event flag wait mask     DFFFFFFF
CPU since last quantum       FFF8    Mutex count                     0
ASTs active                  NONE

The SHOW PROCESS command displays information taken from the software PCB of SYSTEM, the SDA current process. According to the State field in the display, process SYSTEM is in Local Event Flag Wait.

SDA> SHOW PROCESS/BUFFER_OBJECTS/FANDLES

Process index: 0022   Name: NODEA_RTA1:   Extended PID: 00000062
-----------------------------------------------------------------


                           Process Buffer Objects
                           ----------------------

ADDRESS  ACMODE SEQUENCE  REFCNT    PID     PAGCNT      BASE PVA          BASE SVA
-------- ------ -------- -------- -------- -------- ----------------- -----------------
8151AE00 User   00000011 00000031 00010022 00000001 00000000.00084000 FFFFFFFF.7DE68000 S2_WINDOW
814A6CC0 User   00000012 00000009 00010022 00000001 00000000.80000000 FFFFFFFF.7DE66000 S2_WINDOW
814FBA00 User   00000013 00000009 00010022 00000001 00000000.80000000 FFFFFFFF.FFFFFFFF NOSVA
81512200 User   00000014 00000009 00010022 00000001 00000000.80028000 FFFFFFFF.7DE64000 S2_WINDOW
8151A8C0 User   00000015 00000009 00010022 00000001 00000000.80028000 FFFFFFFF.FFFFFFFF NOSVA
81438580 User   00000016 00000009 00010022 00000001 FFFFFEFB.FF800000 FFFFFFFF.7DE62000 S2_WINDOW
81464480 User   00000017 00000009 00010022 00000001 FFFFFEFB.FF800000 FFFFFFFF.FFFFFFFF NOSVA
81416F00 Kernel 00000018 00000001 00010022 00000001 00000000.7FF76000 FFFFFFFF.8120C000 NOQUOTA




                  Fandle Vector Header
                  --------------------

Address   Maxfix  Real_Size CCB buffer handle
-------- -------- --------- -----------------
7FF68290 00000043  00000880 00000018.81416F00


                         Fandles
                         -------

Address     IRP   fastio_done  Orgfun   Data bo handle     IOSA bo handle        DBYLEN
-------- -------- ----------- -------- ----------------- ----------------- -----------------
7FF682B0 815CEF40     set     00020031 00000016.81438580 00000011.8151AE00 00000000.00002000
7FF682D0 815CE4C0     set     00020030 00000016.81438580 00000011.8151AE00 00000000.00002000
7FF682F0 815CE200     set     00000031 00000016.81438580 00000011.8151AE00 00000000.00002000
7FF68310 815D4B80     set     00000030 00000016.81438580 00000011.8151AE00 00000000.00002000
7FF68330 815D65C0     set     00020031 00000015.8151A8C0 00000011.8151AE00 00000000.00002000
7FF68350 815D6880     set     00020030 00000015.8151A8C0 00000011.8151AE00 00000000.00002000

   .
   .
   .

7FF68810 815D6B40     set     00020031 00000013.814FBA00 00000011.8151AE00 00000000.00002000
7FF68830 815D5880     set     00020030 00000013.814FBA00 00000011.8151AE00 00000000.00002000

                     -----    00000013 free FVEs (IRP = 00000000)              VA   7FF68850
                                                                               -to- 7FF68A90

7FF68AB0 815D9840     set     00020031 00000017.81464480 00000011.8151AE00 00000000.00002000
7FF68AD0 815CD040     set     00020030 00000017.81464480 00000011.8151AE00 00000000.00002000
7FF68AF0 815CB480     set     00000031 00000017.81464480 00000011.8151AE00 00000000.00002000)

The SHOW PROCESS/BUFFER_OBJECTS/FANDLES command displays all the buffered objects and fast I/O handles that a process has created.

SDA> SHOW PROCESS JOB_CONTROL/TQE
Process index: 000C   Name: JOB_CONTROL   Extended PID: 0000004C
----------------------------------------------------------------

                            Timer queue entries
                            -------------------

  TQE
address                 Expiration Time                 Type
--------   -----------------------------------------   ------
81504080   00A05ABD.895F93C5 27-NOV-2001 11:17:17.37   TSD---
815026C0   00A05AC3.80D0E000 27-NOV-2001 12:00:00.00   TSA---
81502180   00A0C160.635594EF  7-APR-2002 02:00:00.12   TSA---

This example shows the timer queue entries for the process JOB_CONTROL. See Table 4.27, “TQE Types in Summary TQE Display” for an explanation of the Type codes.

SDA> SHOW PROCESS /IMAGE




Process index: 0005   Name: SA_STARTUP_DCL   Extended PID: 00000025
-------------------------------------------------------------------)

                     Process activated images
                     ------------------------

         Image Name             Type       IMCB          GP
--------------------------- ------------ -------- -----------------
SDA                         MAIN         7FE86EB0 00000000.00230000
SDA$SHARE                   GLBL         7FE86190 00000000.00636000
SMGSHR                      GLBL         7FE87830 00000000.00706000
...

Total images = 17                       Pages allocated = 2165

This example includes the GP (global pointer) for all images in the process.

SDA> SHOW PROCESS/IMAGE=SDA

Process index: 0005   Name: SA_STARTUP_DCL    Extended PID: 00000025
--------------------------------------------------------------------

                            Process activated images
                            ------------------------

   Image Name/Link Time/Section Type    Type/File Id   IMCB   Sym Vect Maj,Min ID,Match
--------------------------------------- ------------ -------- -------- ---------------- *** see below ***
SDA                                     MAIN         7FE86EB0          231F,85F10A8C,01
 17-MAY-2004 10:55:33.89                (1346,1,0)
                                   Code
                       Data (read only)
                             Short data
                                  Fixup

*** Rightmost columns from above output moved here ***

      Base               End        ImageOff
----------------- ----------------- --------
             GP = 00000000.00230000

00000000.00010000 00000000.0001022F 00010000
00000000.00020000 00000000.000200EF 00020000
00000000.00030000 00000000.00030077 00030000
00000000.80000000 00000000.800003FF 80000000

This example includes the GP (global pointer) for the SDA image.

4.64. SHOW RAD

Displays the settings and explanations of the RAD_SUPPORT system parameter fields, and the assignment of CPUs and memory to the Resource Affinity Domains (RADs). This command is only useful on platforms that support RADs. By default, the SHOW RAD command displays the settings of the RAD_SUPPORT system parameter fields.

Format

SHOW RAD [number | /ALL | /PXML]

Parameter

number

Displays information on CPUs and memory for the specified RAD.

Qualifiers

/ALL

Displays settings of the RAD_SUPPORT parameter fields and the CPU and memory assignments for all RADs.

/PXML (Integrity servers only)

SDA displays the proximity database derived from the Advanced Configuration and Power Interface (ACPI) tables. The proximity database is used to set up the RAD data structures.

Examples

  1. SDA> SHOW RAD
    Resource Affinity Domains
    -------------------------
    
        RAD information header address: FFFFFFFF.81032340
        Maximum RAD count:                       00000008
        RAD containing SYS$BASE_IMAGE:           00000000
        RAD support flags:                       0000004F
    
         3         2 2         1 1
         1         4 3         6 5         8 7         0
        +-----------+-----------+-----------+-----------+
        |..|..| skip|ss|gg|ww|pp|..|..|..|..|.p|fs|cr|ae|
        +-----------+-----------+-----------+-----------+
        |..|..|    0| 0| 0| 0| 0|..|..|..|..|.1|00|11|11|
        +-----------+-----------+-----------+-----------+
    
        Bit 0 = 1:          RAD support is enabled
    
        Bit 1 = 1:          Soft RAD affinity support is enabled
                            (Default scheduler skip count of 16 attempts)
    
        Bit 2 = 1:          System-space replication support is enabled
    
        Bit 3 = 1:          Copy on soft fault is enabled
    
        Bit 4 = 0:          Default RAD-based page allocation in use
    
                            Allocation Type               RAD choice
                            ---------------               ----------
                            Process-private pagefault     Home
                            Process creation or inswap    Random
                            Global pagefault              Random
                            System-space page allocation  Current
    
        Bit 5 = 0:          RAD debug feature is disabled
    
        Bit 6 = 1:          Per-RAD non-paged pool is enabled

    This example shows the settings of the RAD_SUPPORT system parameter fields.

  2. SDA> SHOW RAD 2
    Resource Affinity Domain 0002
    -----------------------------
    
    CPU sets:
    
      Active      08 10 11
      Active      08 10 11
      Configure   08 09 10 11
      Potential   08 10 11
    
    PFN ranges:
    
      Start PFN   End PFN     PFN count   Flags
      ---------   --------    ---------   -----
      01000000    0107FFE7    0007FFE8    000A  OpenVMS Base
      0107FFE8    0107FFFF    00000018    0009  Console Base
    
    SYSPTBR:      01002A01
    
    RAD data:     B817C000

    This example shows information on the CPUs and memory for RAD 2.

4.65. SHOW RESOURCES

Displays information about all resources in the system or about a resource associated with a specific lock.

Format

SHOW RESOURCES [ /ADDRESS=n

| /ALL (d)

| /BRIEF

| /CACHED

| /CONTENTION [=ALL][/FULL]

| /LOCKID=lock-id

| /LIST

| /NAME=name

| /OWNED

| /STATUS=(keyword[,...]) ]

Parameters

None.

Qualifiers

/ADDRESS=n

Displays information from the resource block at the specified address.

/ALL

Displays information from all resource blocks (RSBs) in the system. This is the default behavior of the SHOW RESOURCES command.

/BRIEF

Displays a single line of information for each resource.

/CACHED

Displays resource blocks that are no longer valid. The memory for these resources is saved so that later requests for resources can use them.

/CONTENTION [=ALL]

Displays only resources that have at least one lock on either the waiting or conversion queue. Unless you specify the ALL keyword, resources with locks on the waiting or conversion queues that are not participating in deadlock searches are ignored. (Locks not participating in deadlock searches are requested with either the LCK$M_NODLCKWT or LCK$M_NODLCKBLK flags.) By default, a single line summary is displayed for each resource, followed by a single line summary for each lock on the resource. Use /FULL to obtain a detailed display for each resource that is in contention.

/FULL

When used with /CONTENTION [=ALL], causes SDA to display details of each resource that is in contention instead of a single line summary.

/LIST

Displays summary information for each resource, followed by a list of all locks associated with the resource.

/LOCKID=lock-id

Displays information on the resource associated with the lock with the specified lock-id.

/NAME=name

Displays information about the specific resource. Name may be the actual name of the resource, if it only contains uppercase letters, numerals, the underscore (_), dollar sign, colon (:), and some other printable characters, as for example, /NAME=MY_LOCK. If it contains other printable characters (including lowercase letters), you may need to enclose the name in quotation marks (""), as for example, /NAME="My_Lock/47". If it contains nonprintable characters, the name may be specified as a comma-separated list comprised of strings and hexadecimal numbers, as for example, /NAME=("My_Lock",0C00,"/47") would specify the name "My_Lock<NUL><FF>/47". The hexadecimal number can be no more than 8 digits (4 bytes) in length. Nonprintable sequences or more than 4 bytes must be split into multiple hexadecimal numbers. The maximum length of a resource name is 32 characters.

/OWNED

Displays only owned resources.

/STATUS=(keyword[,...])

Displays only resources that have the specified status bits set in the RSB$L_STATUS field. If you specify only one keyword, you can omit the parentheses. Status keywords are as follows:

KeywordMeaning
2PC_IPIndicates a two-phase convert operation in progress
BRLIndicates byte range resource
CHK_BTRChecks for better master
CVTFULRNGIndicates full-range requests in convert queue
CVTSUBRNGIndicates sub-range requests in convert queue
DIRENTRYIndicates directory entry during failover
DIR_IPCreates directory entry
DIR_RQDIndicates directory entry required
INVPENDChecks for value block invalidation
RBLD_ACTIndicates lock rebuild active for this tree
RBLD_IPIndicates rebuild operation in progress
RBLD_RQDIndicates rebuild required for this resource tree
RM_ACCEPTAccepts new master
RM_DEFLECTDeflects remote interest
RM_FORCEForces tree move
RM_FREEZEFreeze resource tree on this node
RM_INTERESTRemaster due to master having no interest
RM_IPIndicates resource remaster in progress
RM_PENDIndicates a pending resource remaster operation
RM_RBLDIndicates to always rebuild resource tree
RM_WAITBlocks local activity
VALCURIndicates value block is current
VALINVLDIndicates value block invalid
WTFULRNGIndicates full-range requests in wait queue
WTSUBRNGIndicates a sub-range requests in wait queue
XVAL_VALIDIndicates last value block was long block

Description

The SHOW RESOURCES command displays the information listed in Table 4.22, “Resource Information in the SHOW RESOURCES Display” either for each resource in the system or for the specific resource associated with the specified lock-id, address, or name.

Table 4.22. Resource Information in the SHOW RESOURCES Display
Field (in order of display)Contents
RSBAddress of the resource block (RSB) that describes this resource.
GGMODE

Indication of the most restrictive mode in which a lock on this resource has been granted. Table 4.23, “Lock Modes on Resources” shows the values and their meanings. For information on conflicting and incompatible lock modes, see the VSI OpenVMS System Services Reference Manual.

StatusThe contents of the resource block status field.
Parent RSBAddress of the RSB that is the parent of this RSB. This field is 00000000 if the RSB itself is a parent block.
CGMODE

Indication of the most restrictive lock mode to which a lock on this resource is waiting to be converted. This does not include the mode for which the lock at the head of the conversion queue is waiting. See Table 4.23, “Lock Modes on Resources”.

Sub-RSB countNumber of RSBs of which this RSB is the parent. This field is 0 if the RSB has no sub-RSBs.
FGMODE

Indication of the full-range grant mode. See Table 4.23, “Lock Modes on Resources”.

Lock CountThe total count of all locks on the resource.
RQSEQNMSequence number of the request.
BLKAST countNumber of locks on this resource that have requested a blocking AST.
CSIDCluster system identification number (CSID) and name of the node that owns the resource.
ResourceDump of the name of this resource, as stored at the end of the RSB. The first two columns are the hexadecimal representation of the name, with the least significant byte represented by the rightmost two digits in the rightmost column. The third column contains the ASCII representation of the name, the least significant byte being represented by the leftmost character in the column. Periods in this column represent values that correspond to nonprinting ASCII characters.
ValblkHexadecimal and ASCII dump of the first 16 bytes of the value block associated with this resource. See Extended Value Block later in this table for the display of the rest of the value block.
LengthLength in bytes of the resource name.
x modeProcessor mode of the namespace in which this RSB resides (Group, Kernel, User).
ownerOwner of the resource. Certain resources, owned by the operating system, list "System" as the owner. Locks owned by a group have the number (in octal) of the owning group in this field.
SeqnumSequence number associated with the resource's value block. If the number indicates that the value block is not valid, the words "Not valid" appear to the right of the number.
Extended ValblkIf any of the last 48 bytes of the value block (see Valblk earlier in this table) are non-zero, then the entire 64-byte value block is displayed as hexadecimal and ASCII dumps. Otherwise this display is omitted. The display appears only when value block contents are non-zero, without regard to the state of the RSB$M_XVAL_VALID flag.
Granted queueList of locks on this resource that have been granted. For each lock in the list, SDA displays the number of the lock and the lock mode in which the lock was granted.
Conversion queueList of locks waiting to be converted from one mode to another. For each lock in the list, SDA displays the number of the lock, the mode in which the lock was granted, and the mode to which the lock is to be converted.
Waiting queueList of locks waiting to be granted. For each lock in the list, SDA displays the number of the lock and the mode requested for that lock.
Table 4.23. Lock Modes on Resources
Value1Meaning
NLNull mode
CRConcurrent-read mode
CWConcurrent-write mode
PRProtected-read mode
PWProtected-write mode
EXExclusive mode

Values are shown in order from the least restrictive mode to the most restrictive.

Examples

  1. SDA>  SHOW RESOURCES
    Resource Database
    -----------------
    RSB:         FFFFFFFF.7FEECE40  GGMODE:     PW  Status: VALID   XVALID
    Parent RSB:  00000000.00000000  CGMODE:     PW
    Sub-RSB count:      0           FGMODE:     PW
    Lock Count:         1           RQSEQNM:  0000
    BLKAST count:       0           CSID: 00000000  (SAND41)
    
    Resource:          00000000 0043524A  JRC.....  Valblk: 5F73695F 73696854
     Length    3       00000000 00000000  ........          6F5F7473 65745F61
     User mode         00000000 00000000  ........          This_is_a_test_o
     Group   001       00000000 00000000  ........  Seqnum: 00000001
    
    Extended Valblk:   6F5F7473 65745F61 5F73695F 73696854  This_is_a_test_o
                       565F6465 646E6574 78455F65 68745F66  f_the_Extended_V
                       00000000 00006B63 6F6C425F 65756C61  alue_Block......
                       00000000 00000000 00000000 00000000  ................
    
    Granted queue (Lock ID / Gr mode / Range):
     1500082F  PW 00000000-FFFFFFFF
    
    Conversion queue (Lock ID / Gr mode / Range -> Rq mode / Range):
         *** EMPTY QUEUE ***
    
    Waiting queue (Lock ID / Rq mode / Range):
         *** EMPTY QUEUE ***
    
    SDA> SHOW RESOURCES
    Resource Database
    -----------------
    
    RSB:         FFFFFFFF.7FEECE40  GGMODE:     PW  Status: VALID
    Parent RSB:  00000000.00000000  CGMODE:     PW
    Sub-RSB count:      0           FGMODE:     PW
    Lock Count:         1           RQSEQNM:  0002
    BLKAST count:       0           CSID: 00000000  (SAND41)
    
    Resource:          00000000 0043524A  JRC.....  Valblk: 5F74726F 68735F41
     Length    3       00000000 00000000  ........          00000000 00656E6F
     User mode         00000000 00000000  ........          A_short_one.....
     Group   001       00000000 00000000  ........  Seqnum: 00000003
    
    Extended Valblk:   00000000 00656E6F 5F74726F 68735F41  A_short_one.....
                       565F6465 646E6574 78455F65 68745F66  f_the_Extended_V
                       00000000 00006B63 6F6C425F 65756C61  alue_Block......
                       00000000 00000000 00000000 00000000  ................
    
    Granted queue (Lock ID / Gr mode / Range):
     3900080C  PW 00000000-FFFFFFFF
    
    Conversion queue (Lock ID / Gr mode / Range -> Rq mode / Range):
         *** EMPTY QUEUE ***
    
    Waiting queue (Lock ID / Rq mode / Range):
         *** EMPTY QUEUE ***

    These examples for Alpha and Integrity server systems show two cases:

    • output from a program writing a longer block

    • output where the last writer wrote a short value block (XVALID not set), but because a previous writer wrote non-zero data to the high portion of the block and these data are still present, the data in the Extended Value Block are shown.

  2. This example of the SHOW RESOURCES/CONTENTION command shows all the resources for which there is contention, and which are to be included in deadlock searches.

  3. This example shows the output from the SHOW RESOURCES/LIST command.

4.66. SHOW RMD

Displays information contained in the reserved memory descriptors. Reserved memory is used within the system by memory-resident global sections.

Format

SHOW RMD [/qualifiers]

Parameters

None.

Qualifiers

/ADDRESS=n

Displays a specific reserved memory descriptor entry, given its address.

/ALL

Displays information in all the reserved memory descriptors. This qualifier is the default.

Description

The SHOW RMD command displays information that resides in the reserved memory descriptors. The table below shows the fields and their meanings.

Table 4.24. RMD Fields
FieldMeaning
AddressGives the address of the reserved memory descriptor.
NameGives the name of the reserved memory descriptor.
GroupGives the UIC group that owns the reserved memory. This is given as -S- for system global reserved memory.
RADGives the required RAD for the reserved memory. Displays "Any" if no RAD specified.
PFNGives starting page number of the reserved memory.
CountGives the number of pages reserved.
In_Use (Error)Gives the number of pages in use. If an error occurred when the reserved memory was being allocated, the error condition code is displayed in parentheses. A second line, giving the text of the error, is also displayed in this case.
Zero_PFNGives the next page number to be zeroed.
FlagsGives the settings of flags for specified reserved memory descriptor as a hexadecimal number, then displays key flag bits by name. The names may use multiple lines in the display.

Examples

  1. SDA> SHOW RMD
    
    Reserved Memory Descriptor List
    -------------------------------
                                                                In_Use
    Address  Name                Group RAD    PFN     Count     (Error)  Zero_PFN  Flags
    -------- ------------------- ----- ---- -------- --------  --------  -------- ------------------------------
    814199C0 LARGE               00022 Any  00000000 000004E2  00000000  00000000 000000E0 Group Page_Tables
                                                                                           GBLSec
    81419940 LARGE               00022 Any  00000000 00138800 (0000244C) 00000000 000001A0 Error Group GBLSec
             Error = %SYSTEM-F-INSFLPGS, insufficient Fluid Pages available
    81419AC0 SMALL               00011 0001 00000180 00000001  00000000  00000180 000000E1 Alloc Group
                                                                                           Page_Tables GBLSec
    81419A40 SMALL               00011 0001 00000E00 00000080  00000000  00000E00 000000A1 Alloc Group GBLSec

    This example shows the default output of a SHOW RMD command.

4.67. SHOW RMS

Displays the RMS data structures selected by the SET RMS command to be included in the default display of the SHOW PROCESS/RMS command.

Format

SHOW RMS

Parameters

None.

Qualifiers

None.

Description

The SHOW RMS command lists the names of the data structures selected for the default display of the SHOW PROCESS/RMS command.

For a description of the significance of the options listed in the SHOW RMS display, see the description of the SET RMS command and Table 4.2, “SET RMS Command Keywords for Displaying Process RMS Information”.

For an illustration of the information displayed by the SHOW PROCESS/RMS command, see the examples included in the description of the SHOW PROCESS command.

Examples

  1. SDA>  SHOW RMS
    
    RMS Display Options:  IFB,IRB,IDX,BDB,BDBSUM,ASB,CCB,WCB,FCB,FAB,RAB,NAM,
    XAB,RLB,BLB,BLBSUM,GBD,GBH,FWA,GBDSUM,JFB,NWA,RU,DRC,SFSB,GBSB
    Display RMS structures for all IFI values.

    The SHOW RMS command displays the full set of options available for display by the SHOW PROCESS/RMS command. SDA, by default, selects the full set of RMS options at the beginning of an analysis.

  2. SDA>  SET RMS=(IFAB=1,CCB,WCB)
    SDA>  SHOW RMS
    
    RMS Display Options:  IFB,CCB,WCB
    Display RMS structures only for IFI = 0001
    

    The SET RMS command establishes the IFB, CCB, and WCB as the structures to be displayed, and only for the file whose internal File Identifer has the value 1, when the SHOW PROCESS/RMS command is issued. The SHOW RMS command verifies this selection of RMS options.

4.68. SHOW RSPID

Displays information about response IDs (RSPIDs) of all System Communications Services (SCS) connections or, optionally, about a specific SCS connection.

Format

SHOW RSPID [/CONNECTION=cdt-address ]

Parameters

None.

Qualifier

/CONNECTION=cdt-address

Displays RSPID information for the specific SCS connection whose connection descriptor table (CDT) address is provided in cdt-address. You can find the cdt-address for any active connection on the system in the CDT summary page display of the SHOW CONNECTIONS command. CDT addresses are also stored in many individual data structures related to SCS connections. These data structures include class driver request packets (CDRPs) and unit control blocks (UCBs) for class drivers that use SCS and cluster system blocks (CSBs) for the connection manager.

Description

Whenever a local system application (SYSAP) requires a response from a remote SYSAP, a unique number, called an RSPID, is assigned to the response by the local system. The RSPID is transmitted in the original request (as a means of identification), and the remote SYSAP returns the same RSPID in its response to the original request.

The SHOW RSPID command displays information taken from the response descriptor table (RDT), which lists the currently open local requests that require responses from SYSAPs at a remote node. For each RSPID, SDA displays the following information:

  • RSPID value

  • Address of the class driver request packet (CDRP), which generally represents the original request

  • Address of the CDT that is using the RSPID

  • Name of the local process using the RSPID

  • Remote node from which a response is required (and has not yet been received)

Examples

  1. SDA> SHOW RSPID
        --- Summary of Response Descriptor Table (RDT) 805E6F18 ---
    RSPID      CDRP Address     CDT Address     Local Process Name      Remote Node
    -----      ------------     -----------     ------------------      -----------
    39D00000     8062CC80        805E8710       VMS$VMScluster          VANDQ1
    EE210001     80637260        805E8C90       VMS$DISK_CL_DRVR        ROMRDR
    EE240002     806382E0        805E8DF0       VMS$DISK_CL_DRVR        VANDQ1
    EE440003     806393E0        805E8F50       VMS$TAPE_CL_DRVR        VANDQ1
    5DB90004     80636BC0        805E8870       VMS$VMScluster          ROMRDR
    5C260005     80664040        805E8870       VMS$VMScluster          ROMRDR
    38F80006     80664A80        805E8710       VMS$VMScluster          VANDQ1
    

    This example shows the default output for the SHOW RSPID command.

  2. SDA>  SHOW RSPID/CONNECTION=805E8F50
        --- Summary of Response Descriptor Table (RDT) 805E6F18 ---
    RSPID      CDRP Address     CDT Address     Local Process Name      Remote Node
    -----      ------------     -----------     ------------------      -----------
    EE440003     806393E0        805E8F50       VMS$TAPE_CL_DRVR        VANDQ1

    This example shows the output for a SHOW RSPID/CONNECTION command.

4.69. SHOW SHM_CPP

Displays information about the shared memory common property partitions (CPPs). The default display shows a single-page summary that includes a single line for each CPP.

Format

SHOW SHM_CPP [/qualifiers]

Parameters

None.

Qualifiers

/ADDRESS=n

Displays a detailed page of information about an individual shared memory CPP given the address of the SHM_CPP structure.

/ALL

Displays a detailed page of information about each shared memory CPP.

/IDENT=n

Displays a detailed page of information about an individual shared memory CPP.

/PFN [=(option[,option,...])]

Displays PFN data in addition to the basic SHM_CPP. The default is to display all lists (free, bad, untested), plus the PFN database pages and the complete range of PFNs in the CPP.

You can limit which lists are displayed by specifying one or more keywords from the following table. If you specify multiple keywords, enclose them in parentheses and separate keywords with a comma.

ALL_FRAGMENTSDisplays the complete range of PFNs in the CPP.
BADDisplays only the bad page list.
FREEDisplays only the free page list.
PFNDBDisplays the PFNs containing the PFN database.
UNTESTEDDisplays only the untested page list.

If you specify /PFN without /ALL, /IDENT, or /ADDRESS, the system displays the PFN lists from the last shared memory CPP accessed.

Examples

  1. SDA> SHOW SHM_CPP
    Summary of Shared Memory Common Property Partitions
    ---------------------------------------------------
    
    Base address of SHM_CPP array:               FFFFFFFF.7F2BA140
    Maximum number of SHM_CPP entries:                    00000007
    Size of each SHM_CPP:                                 00000240
    Maximum fragment count per SHM_CPP:                   00000010
    
    Valid CPP count:                                      00000001
    
     ID   SHM_CPP address     MinPFN   MaxPFN    Page count  Free pages    Flags
    ---- -----------------   -------- --------    --------    --------    --------
      -- SHM_CPP IDs 0000 to 0002: VALID flag clear --
    
    0003 FFFFFFFF.7F2BA800   00060000 0007FFFF    00020000    0001FCF7    00000001  VALID
    
      -- SHM_CPP IDs 0004 to 0006: VALID flag clear --

    This example shows the default output for the SHOW SHM_CPP command.

  2. SDA> SHOW SHM_CPP/IDENT=3
    Shared Memory CPP 0003
    ----------------------
    
    SHM_CPP address:         FFFFFFFF.7F2BA800
    
      Version:                        00000001   Flags:                   00000001  VALID
      Size:                  00000000.000000C0   Page count:              00020000
      Actual fragment count:          00000001   Minimum PFN:             00060000
      Maximum fragment count:         00000010   Maximum PFN:             0007FFFF
    
      Length of free page list:       0001FCF7
      Length of bad page list:        00000000
      Length of untested page list:   00000000
    
    PMAP array for PFN database pages
    
        PMAP    Start PFN   PFN count
        -----    --------    --------
           0.    00060053    00000280
    
    PMAP array for all fragments
    
        PMAP    Start PFN   PFN count
        -----    --------    --------
           0.    00060000    00020000
    
    GLock address:           FFFFFFFF.7F2BA8C0   Handle:         80000000.00010D19
    
      GLock name:            SHM_CPP00000003     Flags:                         00
      Owner count:                          00   Owner node:                    00
      Node sequence:                      0000   Owner:                     000000
      IPL:                                  08   Previous IPL:                  00
      Wait bitmask:          00000000.00000000   Timeout:                 00249F00
      Thread ID:             00000000.00000000
    
    Connected GNode bitmask: FFFFFFFF.7F2BA900
    
      Valid bits:                     00000004   State:          00000000.00000000
      Unit count:                         0001   Unit size:               QUADWORD
    
      Unit bitmask:
           ........ ........ ........ .......7   00000000
    Ranges of free pages
    
        Range   Start PFN   PFN count
        -----    --------    --------
           1.    000602F6    00000002
           2.    0006030B    0001FCF5
    

    This example shows the details for a single SHM_CPP.

4.70. SHOW SHM_REG

Displays information about shared memory regions. The default display shows a single page summary that includes a single line for each region.

Format

SHOW SHM_REG [/qualifiers] [name]

Parameter

name

Detailed page of information about the named region.

Qualifiers

/ADDRESS=n

Displays a detailed page of information about an individual region given the address of the SHM_REG structure.

/ALL

Displays a detailed page of information about each region.

/IDENT=n

Displays a detailed page of information about the specified region.

Examples

  1. SDA> SHOW SHM_REG
    
        Summary of Shared Memory Regions
        --------------------------------
    Base address of SHM_REG array:      FFFFFFFF.7F2BB140
    Maximum number of SHM_REG entries:           00000040
    Size of each SHM_REG:                        00000208
    Base address of SHM_DESC array:     FFFFFFFF.7F2DC000
    
    Valid region count:                          00000009
    
     ID   SHM_REG address                Region Tag         SysVA / GSTX     Flags
    ---- ----------------- ------------------------------ ----------------- --------
    0000 FFFFFFFF.7F2BB140 SYS$GALAXY_MANAGEMENT_DATABASE FFFFFFFF.7F234000 00000001  VALID
    0001 FFFFFFFF.7F2BB348 SYS$SHARED_MEMORY_PFN_DATABASE FFFFFFFE.00000000 00000001  VALID
    0002 FFFFFFFF.7F2BB550 SMCI$SECTION_PBA_04001             -<None>-      00000001  VALID
    0003 FFFFFFFF.7F2BB758 GLX$CPU$BALANCER$SYSGBL                 0000013F 00000005  VALID SHARED_CONTEXT_VALID
    0004 FFFFFFFF.7F2BB960 SMCI$CHANNEL_PBA_0_1           FFFFFFFF.8F3AE000 00000001  VALID
    0005 FFFFFFFF.7F2BBB68 SMCI$CHANNEL_PBA_0_2           FFFFFFFF.8FAEE000 00000001  VALID
    0006 FFFFFFFF.7F2BBD70 SMCI$CHANNEL_PBA_1_2           -<Not Attached>-  00000001  VALID
    0007 FFFFFFFF.7F2BBF78 LAN$SHM_REG                    FFFFFFFF.7F20C000 00000009  VALID ATTACH_DETACH
    0008 FFFFFFFF.7F2BC180 GLX$CPU_BAL_GLOCK  $000006              00000140 00000005  VALID SHARED_CONTEXT_VALID
    
      -- SHM_REG IDs 0009 to 003F: never used --

    This example shows the summary of all shared memory regions in the system.

  2. SDA> SHOW SHM_REG SMCI$CHANNEL_PBA_0_1
       --------------------------------------
    
    SHM_REG address:         FFFFFFFF.7F2BB960
    
      Version:                        00000001   Flags:                   00000001  VALID
      Index/Sequence:            0004/00000003   Size:           00000000.00000120
    
      Region tag:            SMCI$CHANNEL_PBA_0_1
      Creation time:         31-MAR-1999 14:11:11.37
    
    SHM_DESC address:        FFFFFFFF.7F2DC200
    
      Version:                        00000001   Flags:                   00000005  ATTACHED SYS_VA_VALID
      System VA:             FFFFFFFF.8F3AE000   Virtual size:   00000000.00274000
      I/O ref count:         00000000.00000000
      Index/Sequence:            0004/00000003   Context:        FFFFFFFF.80F42480
      Callback:              FFFFFFFF.8F38E5C0   SYS$PBDRIVER+185C0
    
    MMAP address:            FFFFFFFF.7F2BB9E0
    
      Level count:                        0001   Flags:                       0001  VALID
      Top page count:                 00000001   Virtual size:   00000000.00274000
      PFN list page count:            00000001   First PFN:               000602D4
      Data page count:                00000009
    
    GLock address:           FFFFFFFF.7F2BBA80   Handle:         80000000.00010F51
    
      GLock name:            SHM_REG00000004     Flags:                         00
      Owner count:                          00   Owner node:                    00
      Node sequence:                      0000   Owner:                     000000
      IPL:                                  08   Previous IPL:                  00
      Wait bitmask:          00000000.00000000   Timeout:                 002DC6C0
      Thread ID:             00000000.00000000
    
    Attached GNode bitmask:  FFFFFFFF.7F2BBAC0
    
      Valid bits:                     00000004   State:          00000000.00000012  AUTO_LOCK SET_COUNT
      Unit count:                         0001   Unit size:               QUADWORD
      Lock IPL:                             08   Saved IPL:               00000008
      Count of bits set:              00000002
    
      Unit bitmask:
           ........ ........ ........ .......3   00000000
    
    I/O in progress bitmask: FFFFFFFF.7F2BBAF8
    
      Valid bits:                     00000004   State:          00000000.00000012  AUTO_LOCK SET_COUNT
      Unit count:                         0001   Unit size:               QUADWORD
      Lock IPL:                             08   Saved IPL:               00000000
      Count of bits set:              00000000
    
      Unit bitmask:
           ........ ........ ........ .......0   00000000
    
    SHM_CPP bitmask:         FFFFFFFF.7F2BBB30
    
      Valid bits:                     00000007   State:          00000000.00000000
      Unit count:                         0001   Unit size:               QUADWORD
    
      Unit bitmask:
           ........ ........ ........ ......08   00000000 )

    This example shows the details for a single shared memory region.

4.71. SHOW SPINLOCKS

Displays the multiprocessing synchronization data structures.

Format

SHOW SPINLOCKS {[name]|/ADDRESS=expression|/INDEX=expression}

[{/BRIEF | /COUNTS | /FULL}]

[/CACHED_PCB | /DEVICE | /DYNAMIC | /MAILBOX

| /MISCELLANEOUS | /OWNED | /PCB | /PORT

| /PSHARED | /STATIC]

Parameters

name

Name of the spinlock to be displayed. Device spinlock names are of the form node$lock, where node indicates the OpenVMS Cluster node name and lock indicates the device and controller identification (for example, HAETAR$DUA). If there is no OpenVMS Cluster node name, the dollar sign ($) is also skipped (for example, DUA).

Qualifiers

/ADDRESS=expression

Displays the spinlock at the address specified in expression. You can use the /ADDRESS qualifier to display a specific device, mailbox, PCB, cached PCB, or process-shared spinlock; however, the name of the spinlock may be listed as "Unknown" in the display.

/BRIEF

Produces a condensed display of the spinlock information displayed by default by the SHOW SPINLOCKS command, including the following: address, spinlock name or device name, IPL or device IPL, rank, ownership depth, and CPU ID of the owner CPU. If the system under analysis was executing with full-checking multiprocessing enabled (according to the setting of the MULTIPROCESSING or SYSTEM_CHECK system parameter), then the number of waiting CPUs and interlock status are also displayed.

/CACHED_PCB

Displays all PCB-specific spinlocks associated with PCBs of deleted processes.

/COUNTS

Produces a display of Spin, Wait, and Acquire counts for each spinlock (only if full-checking multiprocessing is enabled).

/DYNAMIC

Displays information for all dynamic spinlocks in the system (device, port, mailbox, PCB, cached PCB, process-shared, and miscellaneous spinlocks).

/FULL

Displays full descriptive and diagnostic information for each displayed spinlock.

/INDEX=expression

Displays the static spinlock whose index is specified in expression. You can only use the /INDEX qualifier to display a named static spinlock.

/MAILBOX

Displays all mailbox-specific spinlocks.

/MISCELLANEOUS

Display all spinlocks that are not included in existing groups such as mailbox and PCB spinlocks. Miscellaneous spinlocks include the XFC, PEDRIVER, TCP/IP, and various other spinlocks. The list of miscellaneous spinlocks varies from system to system.

/OWNED

Displays information for all spinlocks owned by a CPU. If no processors own any spinlocks, SDA displays the following message:

%SDA-I-NOSPLOWNED, all requested spinlocks are unowned
/PCB

Displays all PCB-specific spinlocks.

/PORT

Displays all port spinlocks.

/PSHARED

Displays all process-shared (Pthreads) spinlocks.

/STATIC

Displays information for all static spinlocks in the system.

Description

The SHOW SPINLOCKS command displays status and diagnostic information about the multiprocessing synchronization structures known as spinlocks.

A static spinlock is a spinlock whose data structure is permanently assembled into the system. Static spinlocks are accessed as indexes into a vector of longword addresses called the spinlock vector, the address of which is contained in SMP$AR_SPNLKVEC. The table below lists the static spinlocks.

A dynamic spinlock is a spinlock that is created based on the configuration of a particular system. One such dynamic spinlock is the device lock SYSMAN creates when configuring a particular device. This device lock synchronizes access to the device's registers and certain UCB fields. The system creates a dynamic spinlock by allocating space from nonpaged pool, rather than assembling the lock into the system as it does in creating a static spinlock. Other types of dynamic spinlocks are: port spinlocks, mailbox spinlocks, PCB, cached PCB, process-shared, and miscellaneous spinlocks.

See the Writing OpenVMS Alpha Device Drivers in C for a full discussion of the role of spinlocks in maintaining synchronization of kernel-mode activities in a multiprocessing environment.

NameDescription
QUEUEASTSpinlock for queuing ASTs at IPL 6
FILSYSSpinlock on file system structures
LCKMGRSpinlock on all lock manager structures
IOLOCK8/SCSSpinlock for executing a driver fork process at IPL 8
TX_SYNCHTransaction processing spinlock
TIMERSpinlock for adding and deleting timer queue entries and searching the timer queue
PORTTemplate structure for dynamic spinlocks for ports with multiple devices
IO_MISCMiscellaneous short-term I/O spinlocks
MMGSpinlock on memory management, PFN database, swapper, modified page writer, and creation of per-CPU database structures
SCHEDSpinlock on some process data structures and the scheduler database.
IOLOCK9Spinlock for executing a driver fork process at IPL 9
IOLOCK10Spinlock for executing a driver fork process at IPL 10
IOLOCK11Spinlock for executing a driver fork process at IPL 11
MAILBOXSpinlock for sending messages to the permanent system (OPCOM, JOBCTL, and so on) mailboxes
POOLSpinlock on nonpaged pool database
PERFMONSpinlock for I/O performance monitoring
INVALIDATESpinlock for system space translation buffer (TB) invalidation
HWCLKSpinlock on hardware clock database, including the quadword containing the due time of the first timer queue entry (EXE$GQ_1ST_TIME) and the quadword containing the system time (EXE$GQ_SYSTIME)
MEGASpinlock for serializing access to fork-wait queue
EMB/MCHECKSpinlock for allocating and releasing error-logging buffers and synchronizing certain machine error handling

For each spinlock in the system, SHOW SPINLOCKS provides the following information:

  • Name of the spinlock (or device name for the device lock)

  • Address of the spinlock data structure (SPL)

  • The owning CPU's CPU ID

  • IPL at which allocation of the lock is synchronized on a local processor

  • Number of nested acquisitions of the spinlock by the processor owning the spinlock (Ownership Depth)

  • Rank of the spinlock

  • Timeout interval for spinlock acquisition (in terms of 10 milliseconds)

  • Shared array (shared spinlock context block pointer)

  • Number of processors waiting to obtain the spinlock

  • Interlock (synchronization mutex used when full-checking multiprocessing is enabled)

The last two items (CPUs waiting and Interlock) are only displayed if full-checking multiprocessing is enabled.

SHOW SPINLOCKS/BRIEF produces a condensed display of this same information, excluding the share array and timeout interval.

SHOW SPINLOCKS/COUNTS displays only the Spin, Wait, and Acquire counts for each spinlock.

If the system under analysis was executing with full-checking multiprocessing enabled, SHOW SPINLOCKS/FULL adds to the spinlock display the Spin, Wait, and Acquire counts and the last sixteen PCs at which the lock was acquired or released. If applicable, SDA also displays the PC of the last release of multiple, nested acquisitions of the lock.

If no spinlock name, address, or index is given, then information is displayed for all applicable spinlocks.

Examples

  1. SDA> SHOW SPINLOCKS
    System static spinlock structures
    ---------------------------------
    EMB                                    Address        810AE300
    Owner CPU ID         None              IPL            0000001F
    Ownership Depth    FFFFFFFF            Rank           00000000
    Timeout Interval   000186A0            Share Array    00000000
    CPUs Waiting       00000000            Interlock        Free
    
    MCHECK                                 Address        810AE300
    Owner CPU ID         None              IPL            0000001F
    Ownership Depth    FFFFFFFF            Rank           00000000
    Timeout Interval   000186A0            Share Array    00000000
    CPUs Waiting       00000000            Interlock        Free
    
    MEGA                                   Address        810AE400
    Owner CPU ID         None              IPL            0000001F
    Ownership Depth    FFFFFFFF            Rank           00000002
    Timeout Interval   000186A0            Share Array    00000000
    CPUs Waiting       00000000            Interlock        Free
    
    HWCLK                                  Address        810AE500
    Owner CPU ID         None              IPL            00000016
    Ownership Depth    FFFFFFFF            Rank           00000004
    Timeout Interval   000186A0            Share Array    00000000
    CPUs Waiting       00000000            Interlock        Free
    
       .
       .
       .
    
    System dynamic spinlock structures
    ----------------------------------
    QTV14$OPA                              Address        8103FB00
    Owner CPU ID         None              DIPL           00000015
    Ownership Depth    FFFFFFFF            Rank           FFFFFFFF
    Timeout Interval   000186A0            Share Array    00000000
    CPUs Waiting       00000000            Interlock        Free
    
    QTV14$MBA                              Address        810AE900
    Owner CPU ID         None              IPL            0000000B
    Ownership Depth    FFFFFFFF            Rank           0000000C
    Timeout Interval   000186A0            Share Array    00000000
    CPUs Waiting       00000000            Interlock        Free
    
    QTV14$NLA                              Address        810AE900
    Owner CPU ID         None              IPL            0000000B
    Ownership Depth    FFFFFFFF            Rank           0000000C
    Timeout Interval   000186A0            Share Array    00000000
    CPUs Waiting       00000000            Interlock        Free
    
    QTV14$PKA                              Address        814AA100
    Owner CPU ID         None              DIPL           00000015
    Ownership Depth    FFFFFFFF            Rank           FFFFFFFF
    Timeout Interval   000186A0            Share Array    00000000
    CPUs Waiting       00000000            Interlock        Free
       .
       .
       .
    

    This excerpt illustrates the default output of the SHOW SPINLOCKS command.

  2. SDA> SHOW SPINLOCKS/BRIEF
    System static spinlock structures
    ---------------------------------
    
              Spinlock                           Owner     CPUs
    Address     Name      IPL    Rank     Depth    CPU     Waiting Interlock
    -------- ------------ ---- -------- -------- -------- -------- ---------
    810AE300 EMB          001F 00000000 FFFFFFFF   None   00000000   Free
    810AE300 MCHECK       001F 00000000 FFFFFFFF   None   00000000   Free
    810AE400 MEGA         001F 00000002 FFFFFFFF   None   00000000   Free
    810AE500 HWCLK        0016 00000004 FFFFFFFF   None   00000000   Free
    810AE600 INVALIDATE   0015 00000006 FFFFFFFF   None   00000000   Free
    810AE700 PERFMON      000F 00000008 FFFFFFFF   None   00000000   Free
    810AE800 POOL         000B 0000000A FFFFFFFF   None   00000000   Free
    810AE900 MAILBOX      000B 0000000C FFFFFFFF   None   00000000   Free
    810AEA00 IOLOCK11     000B 0000000E FFFFFFFF   None   00000000   Free
    810AEB00 IOLOCK10     000A 0000000F FFFFFFFF   None   00000000   Free
    810AEC00 IOLOCK9      0009 00000010 FFFFFFFF   None   00000000   Free
    810AED00 SCHED        0008 00000012 00000000 00000000 00000001   Free
    810AEE00 MMG          0008 00000014 FFFFFFFF   None   00000000   Free
    810AEF00 IO_MISC      0008 00000016 FFFFFFFF   None   00000000   Free
    810AF000 PORT         0008 00000017 FFFFFFFF   None   00000000   Free
    810AF100 TIMER        0008 00000018 00000000 00000000 00000000   Free
    810AF200 TX_SYNCH     0008 00000019 FFFFFFFF   None   00000000   Free
    810AF300 SCS          0008 0000001A FFFFFFFF   None   00000000   Free
    810AF400 LCKMGR       0008 0000001B FFFFFFFF   None   00000000   Free
    810AF500 FILSYS       0008 0000001C FFFFFFFF   None   00000000   Free
    810AF600 QUEUEAST     0006 0000001E FFFFFFFF   None   00000000   Free
    
    
    
    System dynamic spinlock structures
    ----------------------------------
    
                Device                           Owner     CPUs
    Address      Name     DIPL   Rank     Depth    CPU     Waiting Interlock
    -------- ------------ ---- -------- -------- -------- -------- ---------
    8103FB00 QTV14$OPA    0015 FFFFFFFF FFFFFFFF   None   00000000   Free
    810AE900 QTV14$MBA    000B 0000000C FFFFFFFF   None   00000000   Free
    810AE900 QTV14$NLA    000B 0000000C FFFFFFFF   None   00000000   Free
    814AA100 QTV14$PKA    0015 FFFFFFFF FFFFFFFF   None   00000000   Free
    
       .
       .
       .
    

    This excerpt illustrates the condensed form of the display produced in the first example.

  3. SDA> SHOW SPINLOCKS/FULL SCHED
    System static spinlock structures
    ---------------------------------
    SCHED                                  Address        810AED00
    Owner CPU ID       00000000            IPL            00000008
    Ownership Depth    00000000            Rank           00000012
    Timeout Interval   002DC6C0            Share Array    00000000
    CPUs Waiting       00000001            Interlock        Free
    
    Spins              00000000.0458E8DC   Busy waits     00252E8D
    Acquires           00000000.01279BE0
    
    Spinlock SPL$C_SCHED was last acquired or released from:
    (Most recently)                 8004AD00 EXE$SWTIMER_FORK_C+00170
           .                        8004B1D4 EXE$SWTIMER_FORK_C+00644
           .                        8004AD00 EXE$SWTIMER_FORK_C+00170
           .                        8004B1D4 EXE$SWTIMER_FORK_C+00644
           .                        8004AD00 EXE$SWTIMER_FORK_C+00170
           .                        8004B1D4 EXE$SWTIMER_FORK_C+00644
           .                        8004AD00 EXE$SWTIMER_FORK_C+00170
           .                        8004B1D4 EXE$SWTIMER_FORK_C+00644
           .                        8004AD00 EXE$SWTIMER_FORK_C+00170
           .                        80136A2C SCH$INTERRUPT+0070C
           .                        80117580 SCH$IDLE_C+002A0
           .                        8004B230 EXE$SWTIMER_FORK_C+006A0
           .                        8004AFC4 EXE$SWTIMER_FORK_C+00434
           .                        80117360 SCH$IDLE_C+00080
           .                        8012E5F4 EXE$HIBER_INT_C+00074
    (Least recently)                80132150 EXE$SCHDWK_C+00110
    
    Last release of multiple acquisitions occurred at:
                                    80262A54 EXE$CHECK_VERSION_C+009F4
    

    This display shows the detailed information on the SCHED spinlock, including the PC history.

4.72. SHOW STACK

Displays the location and contents of the process stacks (of the SDA current process) and the system stack.

Format

SHOW STACK {range | /ALL | [/EXECUTIVE | /INTERRUPT | /KERNEL | /PHYSICAL | /SUMMARY | /SUPERVISOR | /SYSTEM | /USER]}

{/LONG | /QUAD (d)}

Parameters

range

Range of memory locations you want to display in stack format. You can express a range using the following syntax:

m:nRange of addresses from m to n
m;nRange of addresses starting at m and continuing for n bytes

Qualifiers

/ALL

Displays the locations and contents of the four process stacks for the SDA current process and the system stack.

/EXECUTIVE

Shows the executive stack for the SDA current process.

/INTERRUPT

Shows the system stack and is retained for compatibility with OpenVMS VAX. The interrupt stack does not exist on OpenVMS Alpha and OpenVMS Integrity servers.

/KERNEL

Shows the kernel stack for the SDA current process.

/LONG

Displays longword width stacks. If you do not specify this qualifier, SDA by default displays quadword width stacks.

/PHYSICAL

Treats the start and end addresses in the given range as physical addresses. This qualifier is only relevant when a range is specified. By default, SDA treats range addresses as virtual addresses.

/QUAD

Displays quadword width stacks. This is the default.

/SUMMARY

Displays a list of all known stack ranges and the current stack pointer for each range.

/SUPERVISOR

Shows the supervisor stack for the SDA current process.

/SYSTEM

Shows the system stack.

/USER

Shows the user stack for the SDA current process.

Description

The SHOW STACK command, by default, displays the stack that was in use when the system failed, or, in the analysis of a running system, the current operating stack. For a process that became the SDA current process as the result of a SET PROCESS command, the SHOW STACK command by default shows its current operating stack.

The various qualifiers to the command allow display of any of the four per-process stacks for the SDA current process, as well as the system stack for the SDA current CPU. In addition, any given range can be displayed in stack format.

You can define SDA process and CPU context by using the SET CPU, SHOW CPU, SHOW CRASH, SET PROCESS, and SHOW PROCESS commands as indicated in their command descriptions. A complete discussion of SDA context control appears in Section 2.5, “SDA Context”.

SDA provides the following information in each stack display:

SectionContents
Identity of stackSDA indicates whether the stack is a process stack (user, supervisor, executive, or kernel) or the system stack.
Stack pointerThe stack pointer identifies the top of the stack. The display indicates the stack pointer by the symbol SP =>.
Stack addressSDA lists all the addresses that the operating system has allocated to the stack. The stack addresses are listed in a column that increases in increments of 8 bytes (one quadword) unless you specify the /LONG qualifier, in which case addresses are listed in increments of 4 (one longword).
Stack contentsSDA lists the contents of the stack in a column to the right of the stack addresses.
SymbolsSDA attempts to display the contents of a location symbolically, using a symbol and an offset. If the stack is being displayed in quadword width and the location cannot be symbolized as a quadword, SDA attempts to symbolize the least significant longword and then the most significant longword. If the address cannot be symbolized, this column is left blank.
Canonical stackWhen displaying the kernel stack of a noncurrent process in a crash dump, SDA identifies the stack locations used by the scheduler to store the register contents of the process.
Mechanism array Signal array Exception frameWhen displaying the current stack in a FATALEXCPT, INVEXCEPTN, SSRVEXCEPT, or UNXSIGNAL bugcheck, SDA identifies the stack locations used to store registers and other key data for these structures.

If a stack is empty, the display shows the following:

SP =>  (STACK IS EMPTY)

Examples

  1. SDA>  SHOW STACK
    Current Operating Stack (SYSTEM):
                           FFFFFFFF.8244BD08  FFFFFFFF.800600FC  SCH$REPORT_EVENT_C+000FC
                           FFFFFFFF.8244BD10  00000000.00000002
                           FFFFFFFF.8244BD18  00000000.00000005
                           FFFFFFFF.8244BD20  FFFFFFFF.8060C7C0
                    SP =>  FFFFFFFF.8244BD28  FFFFFFFF.8244BEE8
                           FFFFFFFF.8244BD30  FFFFFFFF.80018960  EXE$HWCLKINT_C+00260
                           FFFFFFFF.8244BD38  00000000.000001B8
                           FFFFFFFF.8244BD40  00000000.00000050
                           FFFFFFFF.8244BD48  00000000.00000210  UCB$N_RSID+00002
                           FFFFFFFF.8244BD50  00000000.00000000
                           FFFFFFFF.8244BD58  00000000.00000000
                           FFFFFFFF.8244BD60  FFFFFFFF.804045D0  SCH$GQ_IDLE_CPUS
                           FFFFFFFF.8244BD68  FFFFFFFF.8041A340  EXE$GL_FKWAITFL+00020
                           FFFFFFFF.8244BD70  00000000.00000250  UCB$T_MSGDATA+00034
                           FFFFFFFF.8244BD78  00000000.00000001
    CHF$IS_MCH_ARGS        FFFFFFFF.8244BD80  00000000.0000002B
    CHF$PH_MCH_FRAME       FFFFFFFF.8244BD88  FFFFFFFF.8244BFB0
    CHF$IS_MCH_DEPTH       FFFFFFFF.8244BD90  80000000.FFFFFFFD  G
    CHF$PH_MCH_DADDR       FFFFFFFF.8244BD98  00000000.00001600  CTL$C_CLIDATASZ+00060
    CHF$PH_MCH_ESF_ADDR    FFFFFFFF.8244BDA0  FFFFFFFF.8244BF40
    CHF$PH_MCH_SIG_ADDR    FFFFFFFF.8244BDA8  FFFFFFFF.8244BEE8
    CHF$IH_MCH_SAVR0       FFFFFFFF.8244BDB0  FFFFFFFF.8041FB00  SMP$RELEASEL+00640
    CHF$IH_MCH_SAVR1       FFFFFFFF.8244BDB8  00000000.00000000
    CHF$IH_MCH_SAVR16      FFFFFFFF.8244BDC0  00000000.0000000D
    CHF$IH_MCH_SAVR17      FFFFFFFF.8244BDC8  0000FFF0.00007E04
    CHF$IH_MCH_SAVR18      FFFFFFFF.8244BDD0  00000000.00000000
    CHF$IH_MCH_SAVR19      FFFFFFFF.8244BDD8  00000000.00000001
    CHF$IH_MCH_SAVR20      FFFFFFFF.8244BDE0  00000000.00000000
    CHF$IH_MCH_SAVR21      FFFFFFFF.8244BDE8  FFFFFFFF.805AE4B6  SISR+0006E
    CHF$IH_MCH_SAVR22      FFFFFFFF.8244BDF0  00000000.00000001
    CHF$IH_MCH_SAVR23      FFFFFFFF.8244BDF8  00000000.00000010
    CHF$IH_MCH_SAVR24      FFFFFFFF.8244BE00  00000000.00000008
    CHF$IH_MCH_SAVR25      FFFFFFFF.8244BE08  00000000.00000010
    CHF$IH_MCH_SAVR26      FFFFFFFF.8244BE10  00000000.00000001
    CHF$IH_MCH_SAVR27      FFFFFFFF.8244BE18  00000000.00000000
    CHF$IH_MCH_SAVR28      FFFFFFFF.8244BE20  FFFFFFFF.804045D0  SCH$GQ_IDLE_CPUS
                           FFFFFFFF.8244BE28  30000000.00000300  UCB$L_PI_SVA
                           FFFFFFFF.8244BE30  FFFFFFFF.80040F6C  EXE$REFLECT_C+00950
                           FFFFFFFF.8244BE38  18000000.00000300  UCB$L_PI_SVA
                           FFFFFFFF.8244BE40  FFFFFFFF.804267A0  EXE$CONTSIGNAL+00228
                           FFFFFFFF.8244BE48  00000000.7FFD00A8  PIO$GW_IIOIMPA
                           FFFFFFFF.8244BE50  00000003.00000000
                           FFFFFFFF.8244BE58  FFFFFFFF.8003FC20  EXE$CONNECT_SERVICES_C+00920
                           FFFFFFFF.8244BE60  FFFFFFFF.8041FB00  SMP$RELEASEL+00640
                           FFFFFFFF.8244BE68  00000000.00000000
                           FFFFFFFF.8244BE70  FFFFFFFF.8042CD50  SCH$WAIT_PROC+00060
                           FFFFFFFF.8244BE78  00000000.0000000D
                           FFFFFFFF.8244BE80  0000FFF0.00007E04
                           FFFFFFFF.8244BE88  00000000.00000000
                           FFFFFFFF.8244BE90  00000000.00000001
                           FFFFFFFF.8244BE98  00000000.00000000
                           FFFFFFFF.8244BEA0  FFFFFFFF.805AE4B6  SISR+0006E
                           FFFFFFFF.8244BEA8  00000000.00000001
                           FFFFFFFF.8244BEB0  00000000.00000010
                           FFFFFFFF.8244BEB8  00000000.00000008
                           FFFFFFFF.8244BEC0  00000000.00000010
                           FFFFFFFF.8244BEC8  00000000.00000001
                           FFFFFFFF.8244BED0  00000000.00000000
                           FFFFFFFF.8244BED8  FFFFFFFF.804045D0  SCH$GQ_IDLE_CPUS
                           FFFFFFFF.8244BEE0  00000000.00000001
    CHF$L_SIG_ARGS         FFFFFFFF.8244BEE8  0000000C.00000005
    CHF$L_SIG_ARG1         FFFFFFFF.8244BEF0  FFFFFFFC.00010000  SYS$K_VERSION_08
                           FFFFFFFF.8244BEF8  00000300.FFFFFFFC  UCB$L_PI_SVA
                           FFFFFFFF.8244BF00  00000002.00000001
                           FFFFFFFF.8244BF08  00000000.0000000C
                           FFFFFFFF.8244BF10  00000000.00000000
                           FFFFFFFF.8244BF18  00000000.FFFFFFFC
                           FFFFFFFF.8244BF20  00000008.00000000
                           FFFFFFFF.8244BF28  00000000.00000001
                           FFFFFFFF.8244BF30  00000008.00000000
                           FFFFFFFF.8244BF38  00000000.FFFFFFFC
    INTSTK$Q_R2            FFFFFFFF.8244BF40  FFFFFFFF.80404668  SCH$GL_ACTIVE_PRIORITY
    INTSTK$Q_R3            FFFFFFFF.8244BF48  FFFFFFFF.8042F280  SCH$WAIT_KERNEL_MODE
    INTSTK$Q_R4            FFFFFFFF.8244BF50  FFFFFFFF.80615F00
    INTSTK$Q_R5            FFFFFFFF.8244BF58  00000000.00000000
    INTSTK$Q_R6            FFFFFFFF.8244BF60  FFFFFFFF.805AE000
    INTSTK$Q_R7            FFFFFFFF.8244BF68  00000000.00000000
    INTSTK$Q_PC            FFFFFFFF.8244BF70  00000000.FFFFFFFC
    INTSTK$Q_PS            FFFFFFFF.8244BF78  30000000.00000300  UCB$L_PI_SVA
                           FFFFFFFF.8244BF80  FFFFFFFF.80404668  SCH$GL_ACTIVE_PRIORITY
                           FFFFFFFF.8244BF88  00000000.7FFD00A8  PIO$GW_IIOIMPA
                           FFFFFFFF.8244BF90  00000000.00000000
                           FFFFFFFF.8244BF98  FFFFFFFF.8042CD50  SCH$WAIT_PROC+00060
                           FFFFFFFF.8244BFA0  00000000.00000044
                           FFFFFFFF.8244BFA8  FFFFFFFF.80403C30  SMP$GL_FLAGS
    Prev SP (8244BFB0) =>  FFFFFFFF.8244BFB0  FFFFFFFF.8042CD50  SCH$WAIT_PROC+00060
                           FFFFFFFF.8244BFB8  00000000.00000000
                           FFFFFFFF.8244BFC0  FFFFFFFF.805EE040
                           FFFFFFFF.8244BFC8  FFFFFFFF.8006DB54  PROCESS_MANAGEMENT_NPRO+0DB54
                           FFFFFFFF.8244BFD0  FFFFFFFF.80404668  SCH$GL_ACTIVE_PRIORITY
                           FFFFFFFF.8244BFD8  FFFFFFFF.80615F00
                           FFFFFFFF.8244BFE0  FFFFFFFF.8041B220  SCH$RESOURCE_WAIT
                           FFFFFFFF.8244BFE8  00000000.00000044
                           FFFFFFFF.8244BFF0  FFFFFFFF.80403C30  SMP$GL_FLAGS
                           FFFFFFFF.8244BFF8  00000000.7FF95E00

    The SHOW STACK command displays a system stack on an OpenVMS Alpha system. The data shown before the stack pointer may not be valid. The mechanism array, signal array, and exception frame symbols displayed on the left appear only for INVEXCEPTN, FATALEXCPT, UNXSIGNAL, and SSRVEXCEPT bugchecks.

  2. SDA> SHOW STACK/SUMMARY
    Stack Ranges
    ------------
    
    Memory Stack:
    
         Stack         Stack Base          Stack Limit        Stack Pointer       Notes
      -----------   -----------------   -----------------   -----------------   ---------
      Kernel        00000000.7FF44000   00000000.7FF2C000   00000000.7FF43EB0   Current
      Executive     00000000.7FF68000   00000000.7FF58000   00000000.7FF68000
      Supervisor    00000000.7FFAC000   00000000.7FFA8000   00000000.7FFAC000
      User          00000000.3FFE2000   00000000.3FFCA000   00000000.3FFE1FB0   KPstack
      User          00000000.3FFFE000   00000000.3FFE6000   00000000.3FFFDDB0   KPstack
      User          00000000.7AC9E000   00000000.7AC9A000   00000000.7AC9D830
      System        FFFFFFFF.86970000   FFFFFFFF.86958000   FFFFFFFF.8696FFC0
    
    
    Register Stack:
    
         Stack         Stack Base          Stack Limit        Stack Pointer       Notes
      -----------   -----------------   -----------------   -----------------   ---------
      Kernel        00000000.7FF12000   00000000.7FF2A000   00000000.7FF12250   Current
      Executive     00000000.7FF46000   00000000.7FF56000   00000000.7FF46000
      Supervisor    00000000.7FF6A000   00000000.7FF8A000   00000000.7FF6A000
      User          000007FD.BFF3C000   000007FD.BFF54000   000007FD.BFF3C160   KPstack
      User          000007FD.BFF58000   000007FD.BFF70000   000007FD.BFF58108   KPstack
      User          000007FD.C0000000   000007FD.C0002000   000007FD.C0000268
      System        FFFFF802.0F236000   FFFFF802.0F24E000   FFFFF802.0F236278

    This example shows the stack ranges for a process on an OpenVMS Integrity server system.

4.73. SHOW SUMMARY

Displays a list of all active processes and the values of the parameters used in swapping and scheduling these processes.

Format

SHOW SUMMARY [/IMAGE | /PAGES | /PROCESS_NAME=process_name

| /TOTALS | /THREAD | /USER=username]

Parameters

None.

Qualifiers

/IMAGE

Causes SDA to display, if possible, the name of the image being executed within each process.

/PAGES

Outputs an additional line for each process, displaying the number of process-private pages and the number of global pages in the process's working set.

/PROCESS_NAME=process_name

Displays only processes with the specified process name. You can use wildcards in process_name, in which case SDA displays all matching processes. The default action is for SDA to display data for all processes, regardless of process name.

/TOTALS

At the end of the list of active processes, SDA will output two sets of totals:

  • The total number of process-private and global pages in the working sets of all processes. The totals for resident and non-resident processes are displayed separately.

  • The total number of processes (or, if /THREADS was also specified, the total number of kernel threads) in each scheduling state. The totals for resident and non-resident processes or kernel threads are displayed separately.

/THREAD

Displays information on all the kernel threads associated with the current process.

/USER=username

Displays only the processes of the specified user. You can use wildcards in username, in which case SDA displays processes of all matching users. The default action is for SDA to display data for all processes, regardless of user name.

Description

The SHOW SUMMARY command displays the information in the table below for each active process in the system.

Table 4.25. Process Information in the SHOW SUMMARY Display
ColumnContents
Extended PIDThe 32-bit number that uniquely identifies the process or thread.
IndxIndex of this process into the PCB array. When SHOW SUMMARY/THREAD is used, for all threads of a process other than the initial thread, displays the thread number.
Process nameName assigned to the process. When SHOW SUMMARY/THREAD is used, this column is blank for all threads other than the initial thread.
UsernameName of the user who created the process. When SHOW SUMMARY/THREAD is used, this column is blank for all threads other than the initial thread.
StateCurrent state of the process. Table 4.26, “Current State Information” shows the 14 states and their meanings.
PriCurrent scheduling priority of the process.
PCB/KTBAddress of the process control block or address of the kernel thread block.
PHDAddress of the process header. When SHOW SUMMARY/THREAD is used, this column is blank for all threads other than the initial thread.
WksetNumber (in decimal) of pages currently in the process working set. When SHOW SUMMARY/THREAD is used, this column is blank for all threads other than the initial thread.
Table 4.26. Current State Information
StateMeaning
COMComputable and resident in memory
COMOComputable, but outswapped
CUR nnnCurrently executing on CPU ID nnn
CEFWaiting for a common event flag
LEFWaiting for a local event flag
LEFOOutswapped and waiting for a local event flag
HIBHibernating
HIBOHibernating and outswapped
SUSPSuspended
SUSPOSuspended and outswapped
PFWWaiting for a page that is not in memory (page-fault wait)
FPGWaiting to add a page to its working set (free-page wait)
COLPGWaiting for a page collision to be resolved (collided-page wait); this usually occurs when several processes cause page faults on the same shared page
MWAITMiscellaneous wait
RWxxxWaiting for system resource xxx. These states represent additional interpretation by SDA of one of the 14 scheduler states.
TBSWaiting "To Be Scheduled" by class scheduler. These states represent additional interpretation by SDA of one of the 14 scheduler states.
TBSOWaiting "To Be Scheduled" and outswapped. These states represent additional interpretation by SDA of one of the 14 scheduler states.
TBSP"To Be Scheduled" state is pending. These states represent additional interpretation by SDA of one of the 14 scheduler states.
TBSPO"To Be Scheduled" state is pending and outswapped. These states represent additional interpretation by SDA of one of the 14 scheduler states.
WTBYTWaiting for BYTCNT quota. These states represent additional interpretation by SDA of one of the 14 scheduler states.
WTTQEWaiting for TQCNT quota. These states represent additional interpretation by SDA of one of the 14 scheduler states.

Examples

  1. SDA>  SHOW SUMMARY
    Current process summary
    -----------------------
     Extended Indx Process name    Username    State   Pri PCB/KTB    PHD    Wkset
    -- PID -- ---- --------------- ----------- ------- --- -------- -------- ------
     00000041 0001 SWAPPER                      HIB     16 80C641D0 80C63E00   0
     00000045 0005 IPCACP          SYSTEM       HIB     10 80DC0780 81266000  39
     00000046 0006 ERRFMT          SYSTEM       HIB      8 80DC2240 8126C000  57
     00000047 0007 OPCOM           SYSTEM       HIB      8 80DC3340 81272000  31
     00000048 0008 AUDIT_SERVER    AUDIT$SERVER HIB     10 80D61280 81278000 152
     00000049 0009 JOB_CONTROL     SYSTEM       HIB     10 80D620C0 8127E000  50
     0000004A 000A SECURITY_SERVER SYSTEM       HIB     10 80DC58C0 81284000 253
     0000004B 000B TP_SERVER       SYSTEM       HIB     10 80DC8900 8128A000  75
     0000004C 000C NETACP          DECNET       HIB     10 80DBFE00 8125A000  78
     0000004D 000D EVL             DECNET       HIB      6 80DCA080 81290000  76
     0000004E 000E REMACP          SYSTEM       HIB      8 80DE4E00 81296000  14
     00000050 0010 DECW$SERVER_0   SYSTEM       HIB      8 80DEF940 812A2000 739
     00000051 0011 DECW$LOGINOUT   <login>      LEF      4 80DF0F00 812A8000 273
     00000052 0012 SYSTEM          SYSTEM       LEF      9 80D772C0 81260000  75
    

    The SHOW SUMMARY command describes all active processes in the system at the time of the system failure. Note that there was no process in the CUR state at the time of the failure.

  2. SDA>  SHOW SUMMARY /IMAGE/PAGES/THREADS/TOTALS
    Current process summary
    -----------------------
    Extended  Indx Process name    Username    State   Pri PCB/KTB    PHD    Wkset
    -- PID -- ---- --------------- ----------- ------- --- -------- -------- ------
    00000201 0001  SWAPPER         SYSTEM        HIB    16 8230CD48 8230C000    4
              Process pages:      4      Global pages:      0
    .
    .
    .
    00000212 0012  ACME_SERVER     SYSTEM         HIB    8 83673540 87740000  553
             Process pages:     505      Global pages:     48
             $30$DKB400:[SYS0.SYSCOMMON.][SYSEXE]ACME_SERVER.EXE
    00000412    1                                HIB    10 83684DC0
    .
    .
    .
    00000224 0024  LATACP          SYSTEM        HIB    14 83760BC0 8775C000  170
             Process pages:     170      Global pages:      0
             $30$DKB400:[SYS0.SYSCOMMON.][SYSEXE]LATACP.EXE
                   Total Pages                   Process           Global
              ---------------------           -------------     -------------
              Resident Processes                       4490               842
              Nonresident Processes                       0                 0
    
                    Scheduling   Resident    Nonresident
                      State       Threads      Threads       Total
                     -------    -----------  -----------  -----------
                     LEF                  1            0            1
                     HIB                 20            0           20
                     CUR                  1            0            1
                     -------    -----------  -----------  -----------
                     Total               22            0           22

    This example shows the output from SHOW SUMMARY when all the qualifiers (/image /pages /threads /totals) that display additional data are used.

4.74. SHOW SWIS (Integrity servers Only)

Displays the SWIS (SoftWare Interrupt Services) data structure addresses or the SWIS ring buffer.

Format

SHOW SWIS [/RING_BUFFER [/CPU=(m,n,...)]]

Qualifiers

/CPU=(m,n,...)

When used with /RING_BUFFER, displays only the entries for the specified CPUs. If you specify only one CPU, you can omit the parentheses.

/RING_BUFFER

Displays the SWIS ring buffer (also known as the SWIS log), with the most recent entry first, and assigns meaning to certain values, such as trap type and system service invoked. For best results, execute READ/EXEC or READ/IMAGE SYS$PUBLIC_VECTORS first so that the system service codes are recognized.

Examples

SDA> read/exec
SDA> define ssentry 8692B8F0
SDA> define intstk 8692B9F0
SDA> show swis/ring_buffer

SWIS ring buffer for all CPUs
-----------------------------

                   8192. entries: Most recent first

 Clock    Data 1    Data 2        Data 3       CPU  Ident   *** See below. ***
-------- --------  --------  ----------------- --- --------
2CEDAD3C 82D66400a 83814080  FFFFFFFF.86B04000  00 SWPCXout
2CEDA929 82D66400a 83814080  FFFFF802.0EE370A8  00 SWPCTXin
2CED9F16 0000001F  0000001F  FFFFFFFF.8046C270a 00 RaisIPL
2CED928F 8692B8F0a 00000000  FFFFFFFF.8046B760b 00 SSSwRet
2CED8FED 8692B8E0  00000000  0000002C.DC0351F2  00 RetKSrvc
2CED8B2E 8692B8F0a 06900660b FFFFFFFF.8046B760c 00 EntKSrvc
                                                   EntKSrvc
2CED72C1 8692B9F0a 00000000  FFFFFFFF.8692BFC0b 00 ExcpDsp2
2CED70B4 8692B9F0a 00000041b FFFFFFFF.80322F50c 00 ExcpDisp
                                                   ExcpDisp
2CED6E84 00000001  00000000  00000000.0001001Fa 00 GetDpth
2CED6822 00000016  0000001F  FFFFFFFF.80322EB0a 00 RSetIPL
2CED62F0 8692BCF0a 00000003  FFFFFFFF.8066C000b 00 IPDisp




                                 Symbolized value 'a'     Symbolized value 'b' & 'c'
                             ---------------------------  -----------------------------------

                             BUG$GQ_HWPCB
                             BUG$GQ_HWPCB
                             EXE$BUGCHECK_SWAPPED_C+000E0
                             SSENTRY                      EXE$BUGCHECK_CONTINUE_C+003C0

                             SSENTRY                      SYS$RPCC_64_C
                                                          EXE$BUGCHECK_CONTINUE_C+003C0
                             INTSTK                       INTSTK+005D
                             INTSTK                       Bugcheck Breakpoint Trap
                                                          SYSTEM_SYNCHRONIZATION_MIN+42F50
                             LNM$C_DEL_OVERLAY+0001B
                             SYSTEM_SYNCHRONIZATION_MIN+42EB0
                             INTSTK+00300                 SCH$IDLE_C+00290
                                     .
                                     .
                                     .

The SHOW SWIS example displays the most recent entries in the SWIS log at the time of a system crash. Note the a, b, c alongside the data values. These indicate which column contains the symbolization for the value. 'a' is always in the first column; 'b' is in the second column, and 'c' is also in the second column on the next line. If some or all data values cannot be symbolized, the columns are left blank or there is no continuation line.

4.75. SHOW SYMBOL

Displays the hexadecimal value of a symbol and, if the value is equal to an address location, the contents of that location.

Format

SHOW SYMBOL [/ALL [/ALPHA|/VALUE]] [/BASE_ADDRESS=n] symbol-name

Parameter

symbol-name

Name of the symbol to be displayed. You must provide a symbol-name, unless you specify the /ALL qualifier. Symbols that include lowercase letters must be enclosed in quotation marks. symbol-name may include wildcards unless /ALL is also specified.

Qualifiers

/ALL

Displays information on all symbols whose names begin with the characters specified in symbol-name. If no symbol name is given, all symbols are displayed.

/ALPHA

When used with the /ALL qualifier, displays the symbols sorted only in alphabetical order. The default is to display the symbols twice, sorted alphabetically and then by value.

When used with a wildcard symbol name, displays the symbols in alphabetical order. This is the default action.

/BASE_ADDRESS=n

The given address is added to the value of each matching symbol to construct the address used when obtaining the contents of the symbol's location. By default, SDA uses the actual value of the symbol as the address to be used. See the description of SHOW SYMBOL for more information.

/VALUE

When used with the /ALL qualifier, displays the symbols sorted only in value order. The default is to display the symbols twice, sorted alphabetically and then by value.

When used with a wildcard symbol name, displays the symbols in value order.

Description

The SHOW SYMBOL command with the /ALL qualifier outputs all symbols whose names begin with the characters specified in symbol-name in both alphabetical order and in value order. If no symbol-name is given, all symbols are output.

The SHOW SYMBOL/ALL command is useful for determining the values of symbols that belong to a symbol set, as illustrated in the second example below.

The SHOW SYMBOL command without the /ALL qualifier allows for standard wildcards in the symbol-name parameter. By default, matching symbols are displayed only in alphabetical order. If you specify SHOW SYMBOL/VALUE, then matching symbols are output sorted by value. If you specify SHOW SYMBOL/ALPHA/VALUE, then matching symbols are displayed twice, sorted alphabetically and then by value.

The SHOW SYMBOL command without the /ALL qualifier and no wildcards in the symbol-name parameter outputs the value associated with the given symbol.

When displaying any symbol value, SDA also treats the value as an address (having added the value from /BASE_ADDRESS if specified) and attempts to obtain the contents of the location. If successful, the contents are also displayed.

Examples

  1. SDA>  SHOW SYMBOL G
    G = FFFFFFFF.80000000 :  6BFA8001.201F0104

    The SHOW SYMBOL command evaluates the symbol G as FFFFFFFF.8000000016 and displays the contents of address FFFFFFFF.8000000016 as 6BFA8001.201F010416.

  2. SDA>  SHOW SYMBOL/ALL BUG
    Symbols sorted by name
    ----------------------
    BUG$L_BUGCHK_FLAGS          = FFFFFFFF.804031E8 : 00000000.00000001
    BUG$L_FATAL_SPSAV           = FFFFFFFF.804031F0 : 00000000.00000001
    BUG$REBOOT                  = FFFFFFFF.8042E320 : 00000000.00001808
    BUG$REBOOT_C                = FFFFFFFF.8004F4D0 : 47FB041D.47FD0600
       .
       .
       .
    Symbols sorted by value
    ----------------------
    BUG$REBOOT_C                = FFFFFFFF.8004F4D0 :47FB041D.47FD0600
    BUG$L_BUGCHK_FLAGS          = FFFFFFFF.804031E8 :00000000.00000001
    BUG$L_FATAL_SPSAV           = FFFFFFFF.804031F0 :00000000.00000001
    BUG$REBOOT                  = FFFFFFFF.8042E320 :00000000.00001808
       .
       .
       .

    This example shows the display produced by the SHOW SYMBOL/ALL command. SDA searches its symbol table for all symbols that begin with the string "BUG" and displays the symbols and their values. Although certain values equate to memory addresses, it is doubtful that the contents of those addresses are actually relevant to the symbol definitions in this instance.

4.76. SHOW TQE

Displays the entries in the timer queue. The default output is a summary display of all timer queue entries (TQEs) in chronological order.

Format

SHOW TQE [/ADDRESS=n] [/ALL] [/BACKLINK] [/PID=n] [/ROUTINE=n]

Parameters

None.

Qualifiers

/ADDRESS=n

Outputs a detailed display of the TQE at the specified address.

/ALL

Outputs a detailed display of all TQEs.

/BACKLINK

Outputs the display of TQEs, either detailed (/ALL) or brief (default), in reverse order, starting at the entry furthest into the future.

/PID=n

Limits the display to the TQEs that affect the process with the specified internal PID. The PID format required is the entire internal PID, including both the process index and the sequence number, and not the extended PID or process index alone, as used elsewhere in SDA. You can also display TQEs specific to a process using SHOW PROCESS/TQE.

/ROUTINE=n

Limits the display to the TQEs for which the specified address is the fork PC.

Description

The SHOW TQE command allows the timer queue to be displayed. By default a summary display of all TQEs is output in chronological order, beginning with the next entry to become current.

The /ADDRESS, /PID, and /ROUTINE qualifiers are mutually exclusive. The /ADDRESS and /BACKLINK qualifiers are mutually exclusive.

In the summary display, the TQE type is given as a six-character code, as shown in the table below.

Table 4.27. TQE Types in Summary TQE Display
ColumnSymbolMeaning
1TTimer ($SETIMR) entry
 SSystem subroutine entry
 WScheduled wakeup ($SCHDWK) entry
2SSingle-shot entry
 RRepeated entry
3DDelta time
 AAbsolute time
4CCPU time
 --Elapsed time
5EExtended format (64-bit TQE)
 --32-bit TQE
6NTQE not to be deallocated at AST completion
 --TQE to be deallocated at AST completion

Examples

  1. SDA> SHOW TQE
    
            Timer queue entries
            -------------------
    
            System time:    15-NOV-2001 15:09:06.92
            First TQE time: 15-NOV-2001 15:09:06.92
    
      TQE                                                             PID/
    address                 Expiration Time                 Type    routine
    --------   -----------------------------------------   ------   --------
    815AB8C0   00A0516F.EF279B0F 15-NOV-2001 15:09:06.92   SSD---   835FCC48   TCPIP$INTERNET_SERVICES+9EC48
    812CB3C0   00A0516F.EF279B0F 15-NOV-2001 15:09:06.92   SRD---   812CCEC8   SYS$PPPDRIVER+0EEC8
    81514140   00A0516F.EF29FD5F 15-NOV-2001 15:09:06.94   TSD---   0001000F   SECUURITY_SERVER
    815C8040   00A0516F.EF2B2E87 15-NOV-2001 15:09:06.95   SRD---   81361BA0   SYS$LTDRIVER+31BA0
    8148CF98   00A0516F.EF2C52AD 15-NOV-2001 15:09:06.95   SRD---   812786B0   LAN$CREATE_LAN+000B0
    81318290   00A0516F.EF2FDC84 15-NOV-2001 15:09:06.98   SRD---   813187B8   PWIPDRIVER+047B8
    814FB080   00A0516F.EF3238D0 15-NOV-2001 15:09:06.99   TSD---   0001000F   SECURITY_SERVER
    8140FF40   00A0516F.EF32851A 15-NOV-2001 15:09:06.99   TSD---   0001000F   SECURITY_SERVER
    ...
    
    81503100   00A05177.0AED8000 15-NOV-2001 16:00:00.00   TSA---   0001000C   JOB_CONTROL
    815030C0   00A0C160.63CD14D9  7-APR-2002 02:00:00.91   TSA---   0001000C   JOB_CONTROL

    This example shows the summary display of all TQEs.

  2. SDA> SHOW TQE/ADDRESS=898DA1A8
    
    Timer queue entry 898DA1A8
    --------------------------
    TQE address:                      898DA1A8   Type:                    00000005  SYSTEM_SUBROUTINE REPEAT
        Requestor process ID:         00000000   Access mode:             00000000
    
        Expiration time:     00A97229.C9E5FF60    6-JAN-2010 07:24:47.06  +20000
        Delta repeat time:   00000000.00030D40             0 00:00:00.02
    
        Fork PC:                      88520460   SYS$GHDRIVER+50260
        Fork R3:             898D9540.00000000
        Fork R4:             00000000.00000000

    This example shows the detailed display for a single TQE.

4.77. SHOW TQEIDX

Displays the contents of the timer queue entry index (TQEIDX) structures. The default display is a summary of all TQEIDX structures.

Format

SHOW TQEIDX [/ADDRESS=address | /ALL]

Parameters

None.

Qualifiers

/ADDRESS=address

Causes SDA to output a detailed display of the contents of the TQEIDX at the specified address. Cannot be specified with /ALL.

/ALL

Causes SDA to output a detailed display of the contents of all TQEIDX structures. Cannot be specified with /ADDRESS.

Description

The SHOW TQEIDX command allows the timer queue entry index structures to be displayed. The default display is a summary of all TQEIDX structures. The /ADDRESS and /ALL qualifiers are mutually exclusive.

Examples

  1. SDA> show tqeidx
    
    Timer queue index buckets
    -------------------------
    
    Time index buckets
    ------------------
    
     TQEIDX                               Free
     address     Level       Parent       count        Maximum key
    --------    --------    --------    --------    -----------------
    872B6700    00000001    00000000    0000003C    FFFFFFFF.FFFFFFFF
    875ED640    00000000    872B6700    00000005    00A39404.827C01CF
    87312E80    00000000    872B6700    00000032    00A39A11.9DABF957
    8726A300    00000000    872B6700    0000003D    FFFFFFFF.FFFFFFFF
    
    Time index overflow list is empty
    
    ID index buckets
    ----------------
    
     TQEIDX                               Free
     address     Level       Parent       count        Maximum key
    --------    --------    --------    --------    -----------------
    872AF900    00000001    00000000    0000003D    FFFFFFFF.FFFFFFFF
    86C29C80    00000000    872AF900    00000016    0002C000.83374030
    872FD780    00000000    872AF900    0000001F    FFFFFFFF.FFFFFFFF
    
    ID index overflow list is empty

    This example shows the summary TQEIDX display.

4.78. SHOW UNWIND (Integrity servers Only)

Displays the master unwind table for system space (by default) or for a specified target.

Format

SHOW UNWIND [address | /ALL | /IMAGE=name ]

Parameters

address

Address of the program counter (PC) (IIP) whose unwind data is to be displayed. The address can be in system space or process space.

Qualifiers

/ALL

Displays the details of every system unwind descriptor.

/IMAGE

Displays the details of every unwind descriptor for the specified system images (wildcards allowed).

Description

Displays the master unwind table for system space. This is the default. If /ALL is given, the details of every system unwind descriptor are displayed. If an address is given, the unwind descriptor for the program counter (PC) (IIP) is located and displayed. The address can be in system space or process space.

Also see SHOW PROCESS/UNWIND.

Examples

  1. SDA> show unwind
    
       System Unwind Table
       -------------------
    
        Page Header VA          Entries           Region ID
       -----------------   -----------------  -----------------
       FFFFFFFF.7FFFC000   00000000.00000018  00000000.00000000
       FFFFFFFF.7FFFA000   00000000.00000018  00000000.00000000
       FFFFFFFF.7FFF8000   00000000.00000018  00000000.00000000
       FFFFFFFF.7FF44000   00000000.00000018  00000000.00000000
       FFFFFFFF.7F7A0000   00000000.00000018  00000000.00000000
       FFFFFFFF.7F56C000   00000000.00000006  00000000.00000000
    
       Image name                               Code Base VA        UT Base VA      Unwind Info Base   Flags
                     MUTE VA          Mode       Code End VA          UT Size              GP
       -------------------------------------  -----------------  -----------------  -----------------  ----------
    
       EXCEPTION_MON                          FFFFFFFF.80480000  FFFFFFFF.82D53800  FFFFFFFF.82D53800
                FFFFFFFF.7FFFC020   00000000  FFFFFFFF.8055CDCF  00000000.00002AD8  FFFFFFFF.82F6F400
    
       EXCEPTION_MON                          FFFFFFFF.86AB0000  FFFFFFFF.86AB4000  FFFFFFFF.86AB4000  Obsolete
                FFFFFFFF.7FFFC170   00000000  FFFFFFFF.86AB207F  00000000.00000060  FFFFFFFF.82F6F400
    
       IO_ROUTINES_MON                        FFFFFFFF.80560000  FFFFFFFF.82D78600  FFFFFFFF.82D78600
                FFFFFFFF.7FFFC2C0   00000000  FFFFFFFF.8064A7AF  00000000.00004B00  FFFFFFFF.82FA2800
    
       IO_ROUTINES_MON                        FFFFFFFF.86AB6000  FFFFFFFF.86AB8000  FFFFFFFF.86AB8000  Obsolete
                FFFFFFFF.7FFFC410   00000000  FFFFFFFF.86AB73AF  00000000.000000A8  FFFFFFFF.82FA2800
    
       SYSDEVICE                              FFFFFFFF.80650000  FFFFFFFF.82DA7A00  FFFFFFFF.82DA7A00
                FFFFFFFF.7FFFC560   00000000  FFFFFFFF.8065E90F  00000000.00000240  FFFFFFFF.82FA9400

    This example shows the master unwind table for the system, the pages that are being read and the images whose unwind data is present.

  2. SDA> show unwind 00000000.00020130
    
    Unwind Table Entry for 00000000.00020130
    
    ---------------------------------------
    
    Image name: X
    
    MUTE VA:            000007FD.BFFC62C0   Mode:                        00000001
    Code Base VA:       00000000.00020000   Code End VA:        00000000.000201FF
    UT Base VA:         00000000.00030000   UT Size:            00000000.00000030
    Unwind Info Base:   00000000.00030000   GP:                 00000000.00240000
    Flags:                           0000
    
    
    Unwind Descriptor:  00000000.00030090   PC range = 00000000.00020130:00000000.000201DF
    
     Unwind Descriptor flags:    No handler present, No OSSD present
    
     Unwind descriptor records:  R1 Region Header: Short Prologue, PC range = 00000000.00020130:00000000.00020131
                                    P7: MEM_STACK_V PC=00000000.00020131
                                    P3: PSP_GR      R41
                                    P3: PFS_GR      R40
    
                                 R1 Region Header: Short Body, PC range = 00000000.00020132:00000000.000201B0
                                    B1: Short Label_State LABEL=00000001
                                    B2: Short Epilogue ECOUNT=00000000 PC=00000000.000201A0
    
                                 R1 Region Header: Short Body, PC range = 00000000.000201B1:00000000.000201D1
                                    B1: Short Copy_State LABEL=00000001

    This example shows the unwind data for PC 20130, giving image name, location of unwind data and all unwind descriptors. For an explanation of the unwind descriptors, see the appendixes in the VSI OpenVMS Calling Standard.

4.79. SHOW VHPT (Integrity servers Only)

Displays data from the Virtual Hash Page Table.

Format

SHOW VHPT [ /CPU = {n|*} [/ALL] [range] ]

Parameters

range

The entry or range of entries to be displayed, expressed using the following syntax:

mDisplays the VHPT entry m
m:nDisplays the VHPT entries from m to n
m;nDisplays n VHPT entries starting at m

A range can be provided only if a single CPU is specified with the /CPU qualifier.

Qualifiers

/CPU = {n|*}

Indicates that the detailed contents of the VHPT for one or all CPUs is to be displayed. The default action is for a summary of VHPT information to be displayed.

/ALL

Displays all VHPTs for the specified CPUs. Without /ALL, only entries that have a valid tag are displayed.

Description

Displays contents of the Virtual Hash Page Table on an OpenVMS Integrity server system. By default, a summary of the VHPT entries is displayed. If CPUs are specified, details of individual VHPT entries are displayed for the CPUs. If a single CPU is specified, specific VHPT entries for that CPU are displayed.

In the detailed display, the columns are as follows:

Table 4.28. VHPT Fields
ColumnContents
EntryVHPT Entry Number
Bits

One or more of the following flags:

P---Present

A---Accessed

D---Dirty

E---Exception deferral

I---Tag invalid (only seen if /ALL is specified)

MA

One of the following memory attributes:

WB---Write Back

UC---Uncacheable

UCE---Uncacheable Exported

WC---Write Coalescing

NaT---NaTPage

AR/PLThe access rights and privilege level of the page. Consists of a number (0-7) and a letter (K, E, S, or U) that determines access to the page in each mode.
KESU

The access allowed to the page in each mode. This is an interpretation of the AR/PL values in the previous column. For an explanation of the access codes, refer to Section 2.8, “Page Protections and Access Rights”.

Physical addressThe starting physical address for this VHPT entry.
Page sizeThe size of the page represented by this VHPT entry. Page sizes for VHPT entries range from 4KB to 4GB. Not all possible pages sizes are used by OpenVMS for Integrity servers.
TagThe translation tag for the VHPT entry.
Quad4Information recorded by OpenVMS for Integrity servers for debugging purposes. The contents of this quadword are subject to change.

Examples

  1. SDA>  SHOW VHPT
    Virtual Hash Page Table Summary
    -------------------------------
    
    CPU 0000
    --------
    
    VHPT address:                    FFFFFFFF.7FFF0000
    Translation registers:                    00000002
    VHPT page size:                           0000000E
    
    CPU 0001
    --------
    
    VHPT address:                    FFFFFFFF.7FF88000
    Translation registers:                    00000002
    VHPT page size:                           0000000E

    This example shows the default behavior of the SHOW VHPT command.

  2. SDA>  SHOW VHPT /CPU=0
    Virtual Hash Page Table for CPU 0000
    ------------------------------------
    
    VHPT address:               FFFFFFFF.7FFF0000
    Translation registers:               00000002
    VHPT page size:                      0000000E
    
                                                  Page
     Entry   Bits MA AR/PL KESU Physical Address  Size        Tag              Quad4
    -------- ---- -- ----- ---- ----------------- ---- ----------------- -----------------
    00000000 PADE WB  4 E  wr-- 00000000.09806000 4MB  0000FE7F.FFFC2C03 FF000003.85806004
    00000001 PADE WB  4 E  wr-- 00000000.09804000 4MB  0000FE7F.FFFC2C02 FF000003.85805184
    00000002 PADE WB  4 E  wr-- 00000000.09802000 4MB  0000FE7F.FFFC2C01 FF000003.85803184
    00000003 PADE WB  4 E  wr-- 00000000.09800000 4MB  0000FE7F.FFFC2C00 FF000003.858008C4
    00000004 PADE WB  2 K  w--- 00000000.03726000 8KB  0000FE7F.FFFA0007 FF000003.4000FAB8
    00000005 PADE WB  2 K  w--- 00000000.03724000 8KB  0000FE7F.FFFA0006 FF000003.4000C478
    00000006 PADE WB  2 K  w--- 00000000.03722000 8KB  0000FE7F.FFFA0005 FF000003.4000A988
    00000007 PADE WB  2 K  w--- 00000000.071DA000 8KB  0000FE7F.FFFA1804 FF000003.43008000
    00000008 PADE WB  2 K  w--- 00000000.0372E000 8KB  0000FE7F.FFFA000B FF000003.40017C30
    00000009 PADE WB  4 E  wr-- 00000000.03356000 8KB  0000FE7F.FFFBFC0A FF000003.7F814CCC
    0000000E PADE WB  3 U  WWWW 00000000.10E78000 8KB  7FFD7C80.000002F7 00FFFAF9.005EE004
    00000012 PADE WB  4 E  wr-- 00000000.03348000 8KB  0000FE7F.FFFBFC11 FF000003.7F823B28
    ...
    000003FD PADE WB  5 U  WRRR 00000000.00004000 8KB  0000FE7F.FFFBFFFE FF000003.7FFFC020
    000003FE PADE WB  5 U  WRRR 00000000.00078000 8KB  0000FE7F.FFFBFFFD FF000003.7FFFA020
    000003FF PADE WB  2 K  w--- 00000000.0717C000 8KB  0000FE7F.FFFA17FC FF000003.42FF8000

    This example shows the detailed contents of all the VHPT entries for CPU 0 that have a valid tag.

4.80. SHOW WORKING_SET_LIST

Displays the system working set list without changing the current process context. You can specify SHOW WORKING_SET_LIST or SHOW WSL. The two commands are equivalent.

Format

SHOW WORKING_SET_LIST [/ALL (d) | /ENTRY=n | /GPT

| /LOCKED | /MODIFIED | /SYSTEM]

SHOW WSL [/ALL (d) | /ENTRY=n | /GPT

| /LOCKED | /MODIFIED | /SYSTEM]

Parameters

None.

Qualifiers

/ALL

Displays all working set list entries. This is the default.

/ENTRY=n

Displays a specific working set entry, where n is the working set list index (WSLX) of the entry of interest.

/GPT

Displays working set list entries only for global page table pages.

/LOCKED

Displays working set list entries only for pageable system pages that are locked in the system working set.

/MODIFIED

Displays working set list entries only for pageable system pages that are marked modified.

/SYSTEM

Displays working set list entries only for pageable system pages.

Description

The SHOW WORKING_SET_LIST command displays the contents of requested entries in the system working set list. The SHOW WORKING_SET_LIST command is equivalent to the SHOW PROCESS/SYSTEM/WORKING_SET_LIST command, but the SDA current process context returns to the prior process upon completion. See the SHOW PROCESS command and Table 4.17, “Working Set List Entry Information in the SHOW PROCESS Display” for more information.

4.81. SHOW WSL

See SHOW WORKING_SET_LIST.

4.82. SPAWN

Creates a subprocess of the process currently running SDA, copying the context of the current process to the subprocess and, optionally, executing a specified command within the subprocess.

Format

SPAWN [/qualifier[,...]] [command]

Parameter

command

Name of the command that you want the subprocess to execute.

Qualifiers

/INPUT=filespec

Specifies an input file containing one or more command strings to be executed by the spawned subprocess. If you specify a command string with an input file, the command string is processed before the commands in the input file. When processing is complete, the subprocess is terminated.

/NOLOGICAL_NAMES

Specifies that the logical names of the parent process are not to be copied to the subprocess. The default behavior is that the logical names of the parent process are copied to the subprocess.

/NOSYMBOLS

Specifies that the DCL global and local symbols of the parent process are not to be passed to the subprocess. The default behavior is that these symbols are passed to the subprocess.

/NOTIFY

Specifies that a message is to be broadcast to SYS$OUTPUT when the subprocess either completes processing or aborts. The default behavior is that such a message is not sent to SYS$OUTPUT.

/NOWAIT

Specifies that the system is not to wait until the subprocess is completed before allowing more commands to be entered. This qualifier allows you to input new SDA commands while the spawned subprocess is running. If you specify /NOWAIT, use /OUTPUT to direct the output of the subprocess to a file to prevent more than one process from simultaneously using your terminal.

The default behavior is that the system waits until the subprocess is completed before allowing more SDA commands to be entered.

/OUTPUT=filespec

Specifies an output file to which the results of the SPAWN operation are written. To prevent output from the spawned subprocess from being displayed while you are specifying new commands, specify an output other than SYS$OUTPUT whenever you specify /NOWAIT. If you omit the /OUTPUT qualifier, output is written to the current SYS$OUTPUT device.

/PROCESS=process-name

Specifies the name of the subprocess to be created. The default name of the subprocess is USERNAME_n, where USERNAME is the user name of the parent process. The variable n represents the subprocess number.

Examples

  1. SDA>  SPAWN
    $  MAIL
       .
       .
       .
    $  DIR
       .
       .
       .
    $  LO
       Process SYSTEM_1 logged out at 5-JAN-1993 15:42:23.59
    SDA>

    This example uses the SPAWN command to create a subprocess that issues DCL commands to invoke the Mail utility. The subprocess then lists the contents of a directory before logging out to return to the parent process executing SDA.

4.83. UNDEFINE

Removes the specified symbol from SDA's symbol table.

Format

UNDEFINE symbol

Parameter

symbol

The name of the symbol to be deleted from SDA's symbol table. A symbol name is required. Symbols that include lowercase letters must be enclosed in quotation marks.

Qualifiers

None.

4.84. VALIDATE PFN_LIST

Validates that the page counts on lists are correct.

Format

VALIDATE PFN_LIST {/ALL (d) | [/BAD | /FREE | /MODIFIED | /PRIVATE | /UNTESTED | /ZERO]}

Parameters

None.

Qualifiers

/ALL

Validates all the PFN lists: bad, free, modified, untested, zeroed free pages, and private pages.

/BAD

Validates the bad page list.

/FREE

Validates the free page list.

/MODIFIED

Validates the modified page list.

/PRIVATE

Validates all private page lists.

/UNTESTED

Validates the untested page list that was set up for deferred memory testing.

/ZERO

Validates the zeroed free page list.

Description

The VALIDATE PFN_LIST command validates the specified PFN list by counting the number of entries in the list and comparing that to the running count of entries for each list maintained by the system.

Examples

  1. SDA> VALIDATE PFN_LIST
    Free page list validated: 1433 pages
            (excluding zeroed free page list with expected size 103 pages)
    Zeroed free page list validated: 103 pages
    Modified page list validated: 55 pages
    Bad page list validated: 0 pages
    Untested page list validated: 0 pages
    Private page list at 81486340 validated: 2 pages

    This example shows the default behavior of VALIDATE PFN_LIST, checking all lists.

  2. SDA> VALIDATE PFN_LIST/FREE
    Free page list validated: 1433 pages
            (excluding zeroed free page list with expected size 103 pages)

    This example shows the validation of only the free list.

4.85. VALIDATE POOL

Checks all free pool packets for POOLCHECK-style corruption, using the same algorithm as the system pool allocation routines when generating a POOLCHECK bugcheck and system dump.

Format

VALIDATE POOL { /ALL (d) | /BAP | /NONPAGED | /PAGED } [ /HEADER | /MAXIMUM_BYTES [=n] /SUMMARY ]

Parameters

None.

Qualifiers

/ALL

Checks free packets for all pool types (nonpaged pool, paged pool, and bus addressable pool). This is the default.

/BAP

Checks free packets in bus addressable pool.

/HEADER

Displays only the first 16 bytes of any corrupted free packets found.

/MAXIMUM_BYTES[=n]

Displays only the first n bytes of any corrupted free packets found. If you specify /MAXIMUM_BYTES without a value, the default is 64 bytes.

/NONPAGED

Checks free packets in nonpaged pool.

/PAGED

Checks free packets in paged pool.

/SUMMARY

Displays only a summary of corrupted pool packets found.

Description

The VALIDATE POOL command displays information about corrupted free pool packets. It is useful only if pool checking has been enabled using either the POOLCHECK or the SYSTEM_CHECK system parameters. (For information on these system parameters, refer to the VSI OpenVMS System Management Utilities Reference Manual or to the Sys_Parameters online help topic.)

Examples

  1. SDA>  VALIDATE POOL
    Non-Paged Dynamic Storage Pool: no free packet corruption detected
    Paged Dynamic Storage Pool: no free packet corruption detected

    This example shows the default behavior of VALIDATE POOL, checking all dynamic storage pools.

  2. This example shows the validation of nonpaged pool only, and displays the header of the corrupted block found.

4.86. VALIDATE PROCESS

Performs validation of process data structures. Currently, the only validation available is to check free process pool packets for POOLCHECK-style corruption, using the same algorithm as the system pool allocation routines when generating a POOLCHECK bugcheck and system dump.

Format

VALIDATE PROCESS/POOL [= {P0 | P1 | IMGACT | ALL (d)} ] [/ADDRESS=pcb-address | process-name | ALL | /ID=nn | /INDEX=nn | /NEXT | /SYSTEM]

[/HEADER | /MAXIMUM_BYTES[=n] | /SUMMARY]

Parameters

ALL

Indicates that all processes in the system are to be validated.

process name

Name of the process to be validated. The process name can contain up to 15 uppercase letters, numerals, underscore (_), dollar sign ($), colon (:), and some other printable characters. If it contains any other characters (including lowercase letters), you might need to enclose the process name in quotation marks (" ").

Qualifiers

/ADDRESS = pcb address

Specifies the process control block (PCB) address of the process to be validated.

/HEADER

Displays only the first 16 bytes of any corrupted free packets found.

/ID = nn/INDEX = nn

Specifies the process to be validated by its index into the system's list of software process control blocks (PCBs), or by its process identification. You can supply the following values for nn:

  • The process index itself.

  • A process identification (PID) or extended PID longword, from which SDA extracts the correct index. The PID or extended PID of any thread of a process with multiple kernel threads can be specified. Any thread-specific data displayed by further commands is for the given thread.

To obtain these values for any given process, issue the SDA command SHOW SUMMARY/THREADS. The /ID=nn and /INDEX=nn qualifiers can be used interchangeably.

/MAXIMUM_BYTES[=n]

Displays only the first n bytes of any corrupted free packets found. If you specify /MAXIMUM_BYTES without a value, the default is 64 bytes.

/NEXT

Causes SDA to locate the next process in the process list and validate that process. If there are no further processes in the process list, SDA returns an error.

/POOL [= {P0 | P1 | IMGACT | ALL (d)} ]

(Required) Causes process pool validation to be performed. Use of a keyword on the /POOL qualifier allows the user to specify which process pool is to be validated (P0, P1, Image Activator Pool, or ALL). Default: ALL

/SUMMARY

Displays only a summary of the corrupted pool packets found.

/SYSTEM

This qualifier is provided for compatibility with SET PROCESS/SYSTEM and SHOW PROCESS/SYSTEM. There is no pool associated with the system process that can be validated. SDA sets its current process context to the system process and outputs the text:

Options ignored for System process: POOL

Description

The VALIDATE PROCESS command validates the process indicated by one of the following: process-name, the process specified in the /ID or /INDEX qualifier, the next process in the system's process list, the system process, or all processes. The VALIDATE PROCESS command performs an implicit SET PROCESS command under certain uses of its qualifiers and parameters, as noted in Section 2.5, “SDA Context”. By default, the VALIDATE PROCESS command validates the SDA current process, as defined in Section 2.5, “SDA Context”.

Currently, the only validation available is to check free pool packets for POOLCHECK-style corruption. The command is useful only if pool checking has been enabled using either the POOLCHECK or the SYSTEM_CHECK system parameters. (For information on these system parameters, refer to the VSI OpenVMS System Management Utilities Reference Manual or to the Sys_Parameters online help topic.)

If a process is specified using process-name, /ADDRESS, /ID, /INDEX, /NEXT, or /SYSTEM, that process becomes the SDA current process for future commands.

Examples

This example shows the default behavior of VALIDATE PROCESS/POOL, checking all process storage pools, and displaying only the header of the corrupted block found.

4.87. VALIDATE QUEUE

Validates the integrity of the specified queue by checking the pointers in the queue.

Format

VALIDATE QUEUE [address]

[/BACKLINK | /LIST | /PHYSICAL

| /QUADWORD | /SELF_RELATIVE | /SINGLY_LINKED]

Parameter

address

Address of an element in a queue.

If you specify the period (.) as the address, SDA uses the last evaluated expression as the queue element's address.

If you do not specify an address, the VALIDATE QUEUE command determines the address from the last issued VALIDATE QUEUE command in the current SDA session.

If you do not specify an address, and no queue has previously been specified, SDA displays the following error message:

%SDA-E-NOQUEUE, no queue has been specified for validation

Qualifiers

/BACKLINK

Allows doubly linked lists to be validated from the tail of the queue. If the queue is found to be broken when validated from the head of the queue, you can use /BACKLINK to narrow the list of corrupted entries.

/LIST

Displays the address of each element in the queue.

/PHYSICAL

Allows validation of queues whose header and links are physical addresses.

/QUADWORD

Allows the validate operation to occur on queues with linked lists of quadword addresses.

/SELF_RELATIVE

Specifies that the selected queue is a self-relative queue.

/SINGLY_LINKED

Allows validation of queues that have no backward pointers.

Description

The VALIDATE QUEUE command uses the forward and, optionally, backward pointers in each element of the queue to make sure that all such pointers are valid and that the integrity of the queue is intact. If the queue is intact, SDA displays the following message:

Queue is complete, total of n elements in the queue

In these messages, n represents the number of entries the VALIDATE QUEUE command has found in the queue.

If SDA discovers an error in the queue, it displays one of the following error messages:

Error in forward queue linkage at address nnnnnnnn after tracing x elements
Error comparing backward link to previous structure address (nnnnnnnn)
Error occurred in queue element at address oooooooo after tracing pppp elements

These messages can appear frequently when you use the VALIDATE QUEUE command within an SDA session that is analyzing a running system. In a running system, the composition of a queue can change while the command is tracing its links, thus producing an error message.

If there are no entries in the queue, SDA displays this message:

The queue is empty

Examples

  1. SDA>  VALIDATE QUEUE/SELF_RELATIVE IOC$GQ_POSTIQ
    Queue is complete, total of 159 elements in the queue

    This example validates the self-relative queue IOC$GQ_POSTIQ. The validation is successful and the system determines that there are 159 IRPs in the list.

  2. SDA> VALIDATE QUEUE/QUADWORD FFFFFFFF80D0E6CO/LIST
    Entry      Address               Flink                   Blink
    -----      -------               ------                  -----
    Header     FFFFFFFF80D0E6CO      FFFFFFFF80D03780        FFFFFFFF80D0E800
        1.     FFFFFFFF80D0E790      FFFFFFFF80D0E7CO        FFFFFFFF80D0E6C0
        2.     FFFFFFFF80D0E800      FFFFFFFF80D0E6C0        FFFFFFFF80D0E7C0
    Queue is complete, total of 3 elements in the queue
    

    This example shows the validation of quadword elements in a list.

  3. SDA> VALIDATE QUEUE/SINGLY_LINKED EXE$GL_NONPAGED+4
    Queue is zero-terminated, total of 95 elements in the queue
    

    This example shows the validation of singly linked elements in the queue. The forward link of the final element is zero instead of being a pointer back to the queue header.

4.88. VALIDATE SHM_CPP

Validates all the shared memory common property partitions (CPPs) and the counts and ranges of attached PFNs; optionally, it can validate the contents of the database for each PFN.

Format

VALIDATE SHM_CPP [/qualifiers]

Parameters

None.

Qualifiers

/ADDRESS=n

Validates the counts and ranges for a single shared memory CPP given the address of the SHM_CPP structure.

/ALL

Validates all the shared memory CPPs. This is the default.

/IDENT=n

Validates the counts and ranges for a single shared memory CPP.

/PFN

Validates the PFN database contents for each attached PFN. The default is all lists (free, bad, untested) plus the PFN database pages and the complete range of PFNs in the CPP.

You can limit which lists are validated by specifying one or more keywords from the following table. If you specify multiple keywords, enclose them in parentheses and separate keywords with a comma.
ALL_FRAGMENTSValidates the complete range of PFNs in the CPP.
BADValidates only the bad page list.
FREEValidates only the free page list.
PFNDBValidates the PFNs containing the PFN database.
UNTESTEDValidates only the untested page list.

If you specify the /PFN without /ALL, /IDENT, or /ADDRESS, the system validates the PFN lists from the last shared memory CPP.

Examples

SDA> VALIDATE SHM_CPP
Not validating SHM_CPP 0000 at FFFFFFFF.7F2BA140, VALID flag clear

Not validating SHM_CPP 0001 at FFFFFFFF.7F2BA380, VALID flag clear

Not validating SHM_CPP 0002 at FFFFFFFF.7F2BA5C0, VALID flag clear

Validating SHM_CPP 0003 at FFFFFFFF.7F2BA800 ...

    Validating counts and ranges in the free page list ...
    ... o.k.

    Not validating the bad page list, list is empty

    Not validating the untested page list, list is empty

Not validating SHM_CPP 0004 at FFFFFFFF.7F2BAA40, VALID flag clear

Not validating SHM_CPP 0005 at FFFFFFFF.7F2BAC80, VALID flag clear

Not validating SHM_CPP 0006 at FFFFFFFF.7F2BAEC0, VALID flag clear

This example shows the default output for the VALIDATE SHM_CPP command.

4.89. VALIDATE TQEIDX

Validates all the data structures associated with timer queue entry index (TQEIDX) structures.

Format

VALIDATE TQEIDX

Parameters

None.

Qualifiers

None.

Description

TQEs are linked together with index blocks that point to TQEs or to another level of index block. VALIDATE TQEIDX checks that all the index blocks are correctly linked together.

Examples

SDA> VALIDATE TQEIDX
Validating time index buckets...
    ... o.k.
Validating ID index buckets...
    ... o.k.
Validating 1st time...
    ... o.k.
Validating counts...
    ... o.k.

This example shows the output from a successful VALIDATE TQEIDX command.

4.90. WAIT

Causes SDA to wait for the specified length of time.

Format

WAIT [wait-time]

Parameter

wait-time

The wait time is given as a delta time: [[hh:]mm:]ss[.t[h]]. If omitted, the default wait time is one second.

Qualifiers

None.

Description

The WAIT command can be used in command procedures such as scripts collecting performance data. See Chapter 8 for a sample procedure.

Examples

SDA> WAIT 00:00:15

SDA waits 15 seconds before accepting the next command.

Chapter 5. SDA CLUE Extension

The SDA CLUE command invokes the Crash Log Utility Extractor, which captures specific crash dump information and, upon system reboot, preserves it in a file with the following naming scheme:

     CLUE$nodename_ddmmyy_hhmm.LIS

You enter CLUE extension commands at the SDA prompt. For example:

     SDA> CLUE CONFIG

You can get full help on CLUE by entering HELP CLUE at the SDA> prompt.

5.1. Overview of SDA CLUE Extension

SDA CLUE (Crash Log Utility Extractor) commands automate the analysis of crash dumps and maintain a history of all fatal bugchecks on either a standalone or cluster system. You can use SDA CLUE commands in conjunction with SDA to collect and decode additional dump file information not readily accessible through standard SDA commands. SDA CLUE extension commands can summarize information provided by certain standard SDA commands and provide additional detail for some SDA commands. For example, SDA CLUE extension commands can quickly provide detailed extended QIO processor (XQP) summaries. You can also use SDA CLUE commands interactively on a running system to help identify performance problems.

You can use all CLUE commands when analyzing crash dumps; the only CLUE commands that are not allowed when analyzing a running system are CLUE CRASH, CLUE ERRLOG, CLUE HISTORY, and CLUE STACK.

When you reboot the system after a system failure, you automatically invoke SDA by default. To facilitate better crash dump analysis, SDA CLUE commands automatically capture and archive summary dump file information in a CLUE listing file.

A startup command procedure initiates commands that do the following:

  • Invoke SDA

  • Issue an SDA CLUE HISTORY command

  • Create a listing file called CLUE$nodename_ddmmyy_hhmm.LIS

The CLUE HISTORY command adds a one-line summary entry to a history file and saves the following output from SDA CLUE commands in the listing file:

  • Crash dump summary information

  • System configuration

  • Stack decoder

  • Page and swap files