![]() |
![]() ![]() ![]() ![]() ![]() ![]() |
Updated: 11 December 1998 |
OpenVMS VAX System Dump Analyzer Utility Manual
Previous | Contents | Index |
Displays information about the state of a processor at the time of the system failure.
SHOW CPU [cpu-id]
cpu-id
Numeric value from 00 to 1F16 indicating the identity of the processor for which context information is to be displayed. If you specify a value outside this range, or 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 rangeIf you use the cpu-id parameter, the SHOW CPU command performs an implicit SET CPU command, making the processor indicated by cpu-id the current CPU for subsequent SDA commands. (See the description of the SET CPU command and Section 4 for information about how this can affect the CPU context---and process context---in which SDA commands execute.)
None.
The SHOW CPU command displays crash information about the processor specified by cpu-id or, by default, the SDA current CPU, as defined in Section 4. You cannot use the SHOW CPU command when examining the running system with SDA.The SHOW CPU command produces several displays. First, there is a brief description of the crash 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 processor, 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 processor at the time of the system failure
Next, the general registers display shows the contents of the processor's general-purpose registers (R0 through R11) and the AP, FP, SP, PC, and PSL at the time of the crash.
The processor registers display consists of the following three parts:
- Common processor registers
- Processor-specific registers
- Stack pointers and memory interconnect silos
The first section includes registers that maintain the virtual address space, system space, or other system functions of the current process. The following registers are among those displayed:
Register Description P0BR Program region (P0 space) base register P0LR Program region length register P1BR Control region (P1 space) base register P1LR Control region length register SBR System region (S0 space) base register SLR System region length register PCBB Process control block base register SCBB System control block base register ASTLVL Asynchronous system trap level SISR Software interrupt summary register ICCS Internal clock control and status register SID System identification register The second section of the processor registers display shows those registers that are specific to the type of processor being examined. (The SHOW CRASH command displays the processor type.) The contents of the register display vary according to the type of processor involved in the crash and are used primarily in hardware diagnostics.
The final section of the display includes the five stack pointers: the interrupt stack pointer (ISP) and the four pointers of the kernel, executive, supervisor, and user stacks (KSP, ESP, SSP, and USP, respectively). Certain processors, such as the VAX 8800 and VAX 8600 processors, also display the contents of the silos of their memory interconnects in this section.
The SHOW CPU command concludes with a listing of the spin locks, if any, owned by the processor at the time of the crash, reproducing some of the information given by the SHOW SPINLOCKS command. The spin lock display includes the following information:
- Name of the spin lock.
- Address of the spin lock data structure (SPL).
- IPL and rank of the spin lock.
- Number of processors waiting for this processor to release the spin lock.
- Indication of the depth of this processor's ownership of the spin lock. A number greater than 1 indicates that this processor has nested acquisitions of the spin lock.
SDA> SHOW CPU CPU 00 Processor crash information ---------------------------------- CPU 00 reason for Bugcheck: INVEXCEPTN, Exception while above ASTDEL or on interrupt stack Process currently executing: NETACP Current image file: $254$DUA200:[SYS6.SYSCOMMON.]<SYSEXE>NETACP.EXE;3 Current IPL: 8 (decimal) General registers: R0 = 00000008 R1 = 00080000 R2 = 8047FC40 R3 = 000003AC R4 = 00000002 R5 = 8047FC40 R6 = 00000036 R7 = 00000000 R8 = 00000000 R9 = 00000062 R10 = 7FFE7D70 R11 = 0000747C AP = 0000BE34 FP = 7FFE7DD0 SP = 7FFE7D30 PC = 80146682 PSL = 00080009 Processor registers: P0BR = 816EB600 SBR = 01A6A800 ASTLVL = 00000004 P0LR = 00000C0C SLR = 00065600 SISR = 00000000 P1BR = 80FFCE00 PCBB = 008AF2A0 ICCS = 00000041 P1LR = 001FFC5F SCBB = 01A62600 SID = 067F014F ICR = FFFFEDEA REVR1 = 11121111 NMIFSR = 000C0000 TODR = 2B914C0F REVR2 = FF00FF12 NMIEAR = 2243F830 COR = 00000001 CPUINFO= 000009F7 ISP = 8016AC00 KSP = 7FFE7D30 ESP = 7FFE9E00 SSP = 7FFEDE00 USP = 7FF8E590 NMI bus silo: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 Spinlocks currently owned by CPU 00 IOLOCK8 Address : 80185E50 Owner CPU ID : 00 IPL : 08 Ownership Depth : 0001 Rank : 14 CPUs Waiting : 0000 Index : 34 SDA> EXAMINE R5 R5: 8047FC40 "@üG." SDA> SHOW PROCESS Process index: 000D Name: NETACP Extended PID: 33C0010D ----------------------------------------------------------- Process status: 00148001 RES,NOACNT,PHDRES,LOGIN . . . SDA> SHOW CPU 01 CPU 01 Processor crash information ---------------------------------- CPU 01 reason for Bugcheck: CPUEXIT, Shutdown requested by another CPU Process currently executing: no processes currently scheduled on this CPU Current IPL: 31 (decimal) . . . No spinlocks currently owned by CPU 01 SDA> EXAMINE R5 R5: 83ED5E00 ".^í." SDA> SHOW PROCESS %SDA-E-BADPROC, no such process |
This SDA session illustrates the output of the SHOW CPU command in the analysis of a crash dump from a VAX 8800 multiprocessing system with two active processors. The first SHOW CPU command displays the crash information particular to CPU 00, which initially posted an INVEXCEPTN bugcheck from within process NETACP and then requested CPU 01 to take a bugcheck (CPUEXIT) as well. That the crash occurred at IPL 8 signifies, perhaps, that a driver fork process is involved.
The second instance of the SHOW CPU command (SHOW CPU 01) corroborates that CPU 01 was requested to crash by CPU 00.
Significantly, the second SHOW CPU command changes both the SDA current CPU context and current process context. The two EXAMINE R5 commands are executed under different CPU contexts; the values they produce differ. In the CPU context of CPU 00, the current process context is that of process NETACP. There is no current process on CPU 01; thus, SDA process context is initially undefined when its CPU context is changed to that of CPU 01.
In the analysis of a system failure, displays information about the state of the system at the time of the failure. In the analysis of a running system, provides information identifying the system.
SHOW CRASH
None.
None.
The SHOW CRASH command has two different manifestations, depending upon whether you use it while analyzing a running system or a system failure.In either case, if the SDA current CPU context is not that of the processor that signaled the bugcheck, the SHOW CRASH command performs an implicit SET CPU command to make that processor the SDA current CPU. (See the description of the SET CPU command and Section 4 for a discussion of how this can affect the CPU context---and process context---in which SDA commands execute.)
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:
- Date and time that the ANALYZE/SYSTEM command was issued (titled "Time of system crash" in the display)
- Name and version number of the operating system
- Major and minor IDs of the operating system
- Identity of the system, including an indication of its VAXcluster membership
- CPU ID of the primary CPU
- Two bit masks indicating which processors in the system are active and which are available for booting, respectively
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.
The system crash information display in this context provides the following information:
- Date and time of the system crash.
- Name and version number of the operating system.
- Major and minor IDs of the operating system.
- Identity of the system, including an indication of its VAXcluster membership and the location of the primary CPU in a multiprocessing configuration.
- CPU IDs of both the primary CPU and the CPU that initiated the bugcheck. In a uniprocessor system, these IDs are identical.
- Two bit masks indicating which processors in the system are active and which are available for booting, respectively.
- For each active processor in the system, the name of the bugcheck that caused the 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 CPUSubsequent 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 general-purpose registers, processor-specific registers, stack pointers, and records of spin lock ownership. The first such screen presents information about the processor that caused the crash; others follow according to the numerical order of their CPU IDs.
#1 |
---|
$ ANALYZE/SYSTEM OpenVMS VAX System analyzer SDA> SHOW CRASH System crash information ------------------------ Time of system crash: 25-FEB-1993 11:18:06.84 Version of system: OpenVMS VAX VERSION 6.0 System Version Major ID/Minor ID: 10/11 VAXcluster node: BIGTOP, a VAX 8800 - primary CPU (left) was booted Primary CPU ID: 01 Bitmask of CPUs active/available: 00000003/00000003 SDA> SHOW PROCESS %SDA-E-BADPROC, no such process |
When issued from within the analysis of a running system, the SHOW CRASH command displays the time the ANALYZE/SYSTEM command was issued as the "Time of system crash." The display indicates that the OpenVMS VAX system in use is a VAX 8800 multiprocessing system, the left CPU of which is the primary CPU. The bit mask indicates that there are two processors available and both are running.
Note that no SDA current process is defined at this time.
#2 | |
---|---|
$ ANALYZE/CRASH SYS$SYSTEM
|
This long display reflects the output of the SHOW CRASH command within the analysis of a system failure that occurred on a VAX 8800 multiprocessing system.
The first part of the display includes the following information:
- Identification of the system and the version of OpenVMS it was running at the time of the crash.
- Indication that the failed processor (CPU 00) was not the primary processor (CPU 01), but requested CPU 01 to take a CPUEXIT bugcheck. (CPU 01 was, in fact, idle at the time of the crash.)
The next part of the display shows information particular to CPU 00:- CPU 00 encountered an INVEXCEPTN bugcheck while executing the NETACP process.
- Although the next step in the analysis might be to examine the interrupt stack of CPU 00, the fact that the failure occurred at IPL 8 might indicate that an I/O driver is involved.
At the end of the example, SDA CPU context remains that of CPU 00; its current process context is that of the NETACP process.
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.
SHOW DEVICE {device-name|/ADDRESS=ucb-address}
device-name
Device or devices for which data structures are to be displayed. There are several uses of the device-name parameter.
To Display the Structures for... Action All devices in the system Do not specify a device-name (for example, SHOW DEVICE). A single device Specify an entire device-name (for example, SHOW DEVICE VTA20). All devices of a certain type on a single controller Specify only the device type and controller designation (for example, SHOW DEVICE RTA or SHOW DEVICE RTB). All devices of a certain type on any controller Specify only the device type (for example, SHOW DEVICE RT). All devices whose names begin with a certain character or character string Specify the character or character string (for example, SHOW DEVICE D). All devices on a single node or HSC Specify only the node name or HSC name (for example, SHOW DEVICE GREEN$). In a VAXcluster environment, device information is displayed for each device in the cluster with the specified device-name. You can limit the display to those devices that are on a particular node or HSC by specifying the node name or HSC name as part of the device-name (for example, GREEN$D or GREEN$DB).
/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 thus 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.
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 DDB list display to provide a brief summary of the devices for which it renders information in subsequent screens.
Information in the DDB list appears in six columns, the contents of which are as follows:
- Address of the device data block (DDB)
- Controller name
- Name of the ancillary control process (ACP) or extended QIO processor (XQP) associated with the device
- Name of the device driver
- Address of the driver prologue table (DPT)
- Size of the 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 following symbols as appropriate.
Symbol Meaning UCB Address of unit control block SB Address of system block ORB Address of object rights block DDB Address of device data block DDT Address of driver dispatch table CRB Address of channel request block AMB Associated mailbox UCB pointer IRP Address of I/O request packet 2P_UCB Address of alternate UCB for dual-pathed device LNM Address of logical name block for mailbox PDT Address of port descriptor table CDDB Address of class driver descriptor block for MSCP-served device 2P_CDDB Address of alternate CDDB for MSCP-served device RWAITCNT Resource wait count for MSCP-served device VCB Address of volume control block for mounted device If you are examining a driver-related crash, you might find it helpful to issue a SHOW STACK command after the appropriate SHOW DEVICE command, examining the stack for any of these symbols. Note, however, that although SHOW DEVICE 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 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 UCBSee the descriptions of the READ and FORMAT commands for additional information about defining and examining the contents of device data structures.
For a detailed explanation of I/O data structures displayed by SDA, consult the OpenVMS VAX Device Support Manual.
#1 |
---|
SDA>SHOW DEVICE VTA20 |
Previous Next Contents Index
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Copyright © Compaq Computer Corporation 1998. All rights reserved.
Legal4556PRO_010.HTML