If the system has suspended all noticeable activity (if it is "hung"), see the examples of causing system failures in Section 11.2.
If you are generating a system crash in response to a system hang, be
sure to record the PC at the time of the system halt as well as the
contents of the general registers. Submit this information to Digital,
along with the Software Performance Report (SPR) and a copy of the
generated system dump file.
11.1 Meeting Crash Dump Requirements
The following requirements must be met before the system can write a complete crash dump:
The following examples show the sequence of console commands needed to cause a system failure on each type of processor. In each instance, after halting the processor and examining its registers, you place the equivalent of --1 (for example, FFFFFFFF16) into the PC. The value placed in the PSL sets the processor access mode to kernel and the IPL to 31. After these commands are executed, an INVEXCEPTN bugcheck is reported on the console terminal, followed by a listing of the contents of the processor registers.
The console volume of most processors contains a command file named either CRASH.COM or CRASH.CMD, which you can execute to perform these commands. Note that the console sessions recorded in this section omit much of the information the console displays in response to the listed commands.
VAX 85x0/8700/88x0
The following series of console commands causes a system failure on the VAX 85x0/8700/88x0 systems. (Note that the console prompt for the VAX 8810, 8820, and 8830 systems is PS-CIO-0> and not >>>.)
$ [Ctrl/P] >>> SET CPU CURRENT_PRIMARY >>> HALT ?00 Left CPU -- CPU halted PC = 8001911C >>> @CRASH ! ! Command procedure to force bugcheck via access violation ! SET VERIFY SET CPU CURRENT_PRIMARY !Select primary EXAMINE PSL !Display PSL M 00000000 00420008 EXAMINE/I/NEXT 4 0 . . . DEPOSIT PC FFFFFFFF !Set PC=-1 to force ACCVIO DEPOSIT PSL 41F0000 !Set IPL=31, interrupt stack CONTINUE !Execute from PC=-1
VAX 82x0/83x0, VAXstation 3520/3540, 6000
Series, and 9000 Series
The following console commands cause a system failure on a VAX 82x0/83x0 system, a VAXstation 3520/3540 system, a VAX 6000 series system, or a VAX 9000 series system.
$ [Ctrl/P] PC = 80008B1F >>> E P >>> E/I 0 >>> E/I + >>> E/I + >>> E/I + >>> E/I + >>> D/G F FFFFFFFF >>> D P 41F0000 >>> C
VAX 8600/8650
The following console commands cause a system failure on the VAX 8600/8650 systems.
$ [Ctrl/P] >>> @CRASH SET QUIET OFF !Make clearer SET ABORT OFF !Don't abort on E/VIR command HALT CPU stopped, INVOKED BY CONSOLE (CSM code 11) PC 80008B1F UNJAM !Clear the way E PSL !Display PSL U PSL 00000000 E/I/N:4 0 !Display stack pointers . . . E SP !Get current stack pointers G 0E 80000C40 E/vir/next:40 @ !Dump top of stack . . . D PC FFFFFFFF !Invalidate the PC D PSL 1F0000 !Kernel mode, IPL 31 SET ABORT ON !Restore abort flag SET QUIET ON !Shut output off CONTINUE !Force a machine check
VAX-11/780 and VAX-11/785
The following console commands cause a system failure on the VAX-11/780 and VAX-11/785 processors.
$ [Ctrl/P] >>> @CRASH HALT !Halt system, examine PC, HALTED AT 80008A89 EXAMINE PSL !PSL, 00000000 EXAMINE/INTERN/NEXT:4 0 !and all stack pointers DEPOSIT PC = -1 !Invalidate PC DEPOSIT PSL = 41F0000 !Kernel mode, IPL 31 CONTINUE
VAX-11/750
The following code causes a system failure on a VAX-11/750. On this processor, the HALT command is a NOP; a Ctrl/P automatically halts the processor.
$ [Ctrl/P] >>> H >>> E P >>> E/I 0 >>> E/I + >>> E/I + >>> E/I + >>> E/I + >>> D/G F FFFFFFFF >>> D P 41F0000 >>> C
MicroVAX 3400/3600/3900 Series, VAXstation/MicroVAX 3100,
VAXstation/MicroVAX 2000, MicroVAX II, and VAX 4000 Series
To force a crash of a MicroVAX, you must first halt the processor. (After you halt the processor, press the HALT button again so that it is popped out and is not illuminated.) Then, issue the following console commands:
>>> E PSL >>> E/I/N:4 0 >>> D PC FFFFFFFF >>> D PSL 41F0000 >>> C
VAX-11/730
The following console commands cause a system failure on a VAX-11/730. Ctrl/P automatically halts the processor.
$ [Ctrl/P] >>> H >>> E PSL >>> E/I/N:4 0 >>> D PC FFFFFFFF >>> D PSL 1F0000 >>> C
The System Dump Analyzer is a utility that you can use to help determine the causes of system failures. This utility is also useful for examining the running system.
analyze [/CRASH_DUMP|[/RELEASE]|filespec| /SYSTEM] /SYMBOL=system-symbol-table
filespec
Name of the file that contains the dump you want to analyze. At least one field of the filespec is required, and it can be any field. The default filespec is the highest version of SYSDUMP.DMP in your default directory.
The following table summarizes how to perform key SDA operations.
The following qualifiers, described in this section, determine whether the object of an SDA session is a crash dump or a running system. They also help create the environment of an SDA session. Table SDA-10 briefly describes the SDA qualifiers.
Qualifier | Description |
---|---|
/CRASH_DUMP | Invokes SDA to analyze a specified dump file |
/RELEASE | Invokes SDA to release those blocks that are occupied by a crash dump in a specified system paging file |
/SYMBOL | Specifies a system symbol table for SDA to use in place of the system symbol table it uses by default (SYS$SYSTEM:SYS.STB) |
/SYSTEM | Invokes SDA to analyze a running system |
Invokes SDA to analyze the specified dump file.
/CRASH_DUMP filespec
filespec
Name of the crash dump file to be analyzed. The default file specification is:SYS$DISK and [default-dir] represent the disk and directory specified in your last SET DEFAULT command. If you do not specify filespec, SDA prompts you for it.
- SYS$DISK:[default-dir]SYSDUMP.DMP
See Section 3 for additional information on crash dump analysis.
#1
$ ANALYZE/CRASH_DUMP SYS$SYSTEM:SYSDUMP.DMP $ ANALYZE/CRASH SYS$SYSTEM
#2These 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 paging file.
Invokes SDA to release those blocks in the specified system paging file occupied by a crash dump.
/RELEASE filespec
filespec
Name of the system page file (SYS$SYSTEM:PAGEFILE.SYS). The default file specification is:SYS$DISK and [default-dir] represent the disk and directory specified in your last SET DEFAULT command. If you do not specify filespec, SDA prompts you for it.
- SYS$DISK:[default-dir]SYSDUMP.DMP
You use the /RELEASE qualifier to release from the system paging file those blocks occupied by a crash dump. When invoked with the /RELEASE qualifier, SDA immediately deletes the dump from the paging file and allows no opportunity to analyze its contents.When you specify the /RELEASE qualifier in the ANALYZE command, you must also do the following:
- Use the /CRASH_DUMP qualifier.
- Include the name of the system paging file (SYS$SYSTEM:PAGEFILE.SYS) as the filespec.
If you do not specify the system paging file or the specified paging 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
$ ANALYZE/CRASH_DUMP/RELEASE SYS$SYSTEM:PAGEFILE.SYS
This command invokes SDA to release to the paging file those blocks in SYS$SYSTEM:PAGEFILE.SYS occupied by a crash dump.
Specifies a system symbol table for SDA to use in place of the system symbol table it uses by default (SYS$SYSTEM:SYS.STB).
/SYMBOL =system-symbol-table
system-symbol table
File specification of the SDA system symbol table needed to define symbols required by SDA to analyze a dump from a particular 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 SYS$SYSTEM:SYS.STB by default. When you do 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 SET DEFAULT command. If SDA is given a file that is not a system symbol table in the /SYMBOL qualifier, it halts with a fatal error.
The /SYMBOL qualifier allows you to specify a system symbol table, other than SYS$SYSTEM:SYS.STB, to load into the SDA symbol table. This might be necessary, for instance, to analyze a crash dump taken on a processor running a different version of OpenVMS.You can use the /SYMBOL qualifier whether you are analyzing a system dump or a running system.
$ ANALYZE/CRASH_DUMP/SYMBOL=SYS$CRASH:SYS.STB SYS$SYSTEM
This command invokes SDA to analyze the crash dump stored in SYS$SYSTEM:SYSDUMP.DMP, using the system symbol table at SYS$CRASH:SYS.STB.
Invokes SDA to analyze a running system.
/SYSTEM
None.
See Section 4 for a full discussion of using SDA to analyze a running system.You cannot specify the /CRASH_DUMP or /RELEASE qualifiers when you include the /SYSTEM qualifier in the ANALYZE command.
$ ANALYZE/SYSTEM
This command invokes SDA to analyze the running system.
14 SDA Commands
Table SDA-11 briefly describes the SDA commands that are explained
fully in the following section.
Command | Description |
---|---|
@ (Execute Procedure) | Causes SDA to execute SDA commands contained in a file |
ATTACH | Switches control of your terminal from your current process to another process in your job |
COPY | Copies the contents of the dump file to another file |
DEFINE | Assigns a value to a symbol or associates an SDA command with a terminal key |
EVALUATE | Computes and displays the value of the specified expression in both hexadecimal and decimal |
EXAMINE | Displays either the contents of a location or range of locations in physical memory, or the contents of a register |
EXIT | Exits from an SDA display or exits from the SDA utility |
FORMAT | Displays a formatted list of the contents of a block of memory |
HELP | Displays information about the SDA utility, its operation, and the format of its commands |
READ | Loads the global symbols contained in the specified object module into the SDA symbol table |
REPEAT | Repeats execution of the last command issued |
SEARCH | Scans a range of memory locations for all occurrences of a specified value |
SET CPU | Selects a processor to become the SDA current CPU |
SET LOG | Initiates or discontinues the recording of an SDA session in a text file |
SET OUTPUT | Redirects output from SDA to the specified file or device |
SET PROCESS | Selects a process to become the SDA current process |
SET RMS | Changes the options shown by the SHOW PROCESS/RMS command |
SHOW CALL_FRAME | Displays the locations and contents of the longwords representing a procedure call frame |
SHOW CLUSTER | Displays connection manager and system communications services (SCS) information for all nodes in a cluster |
SHOW CONNECTIONS | Displays information about all active connections between SCS processes or a single connection |
SHOW CPU | Displays information about the state of a processor at the time of the system failure |
SHOW CRASH | 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 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 |
SHOW EXECUTIVE | Displays the location and size of each loadable image that makes up the executive |
SHOW HEADER | Displays the header of the dump file |
SHOW LAN | Displays information contained in various local area network (LAN) data structures |
SHOW LOCK | Displays information about all lock management locks in the system, cached locks, or a specified lock |
SHOW LOGS | Displays information about transaction logs currently open for the node |
SHOW PAGE_TABLE | Displays a range of system page table entries, the entire system page table, or the entire global page table |
SHOW PFN_DATA | Displays information that is contained in the page lists and PFN database |
SHOW POOL | Displays information about the disposition of paged and nonpaged memory, nonpaged dynamic storage pool, and paged dynamic storage pool |
SHOW PORTS | Displays those portions of the port descriptor table (PDT) that are port independent |
SHOW PROCESS | Displays the software and hardware context of any process in the balance set |
SHOW RESOURCE | Displays information about all resources in the system or about a resource associated with a specific lock |
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 |
SHOW RSPID | Displays information about response IDs (RSPIDs) of all SCS connections or, optionally, a specific SCS connection |
SHOW SPINLOCKS | Displays information taken from the data structures that provide system synchronization in a multiprocessing environment |
SHOW STACK | Displays the location and contents of the four process stacks (of the SDA current process) and the interrupt stack (of the SDA current CPU) |
SHOW SUMMARY | Displays a list of all active processes and the values of the parameters used in swapping and scheduling those processes |
SHOW SYMBOL | Displays the hexadecimal value of a symbol and, if the value is equal to an address location, the contents of that location |
SHOW TRANSACTIONS | Displays information about all transactions on the node or about a specified transaction |
SPAWN | Creates a subprocess of the process currently running SDA, copying the context of the current process to the subprocess |
VALIDATE QUEUE | Validates the integrity of the specified queue by checking the pointers in the queue |
Causes SDA to execute SDA commands contained in a file. Use this command to execute a set of frequently used SDA commands.
@filespec
filespec
Name of a file that contains the SDA commands to be executed. The default file type is .COM.
SDA> @USUAL
The Execute Procedure command executes the following commands, as contained in a file named USUAL.COM:
SET OUTPUT LASTCRASH.LIS SHOW CRASH SHOW PROCESS SHOW STACK SHOW SUMMARYThis command procedure first makes the file LASTCRASH.LIS the destination for output generated by subsequent SDA commands. Next, the command procedure sends to the file information about the crash and its context, a description of the process executing at the time of the process, the contents of the stack on which the crash occurred, and a list of the processes active on the CPU that crashed.
An EXIT command within a command procedure terminates the procedure at that point, as would an end-of-file marker.
You cannot nest command procedures.
Switches control of your terminal from your current process to another process in your job.
ATTACH [/PARENT] process-name
process-name
Name of the process to which you want to transfer control.
/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.
#1
SDA> ATTACH/PARENT
#2This 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.
4556P003.HTM OSSG Documentation 22-NOV-1996 14:13:06.46
Copyright © Digital Equipment Corporation 1996. All Rights Reserved.