Updated: 11 December 1998 |
OpenVMS VAX System Dump Analyzer Utility Manual
Previous | Contents | Index |
Selects a processor to become the SDA current CPU.
SET CPU cpu-id
cpu-id
Numeric value from 0016 to 1F16 indicating the identity of the processor to be made the current CPU. If you specify a value outside this range or a 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
None.
When you invoke SDA to examine a system dump, the SDA current CPU context defaults to that of the processor that caused the system to fail. When analyzing a crash from a multiprocessing system, you might find it useful at times to examine the context of another processor in the configuration.The SET CPU command changes the current SDA CPU context to that of the processor indicated by cpu-id. The CPU specified by this command becomes the current CPU for SDA until you exit SDA or change SDA CPU context by issuing one of the following commands:
The following commands also change SDA CPU context if the name or index number (nn) refers to a current process:
- SET PROCESS name
- SET PROCESS/INDEX=nn
- SHOW PROCESS name
- SHOW PROCESS/INDEX=nn
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, SDA process context is undefined and no process-specific information is available until you set SDA process context to that of a specific process.
See Section 4 for further discussion on the way in which SDA maintains its context information.
You cannot use the SET CPU command when examining the running system with SDA.
$ ANALYZE/CRASH SYS$SYSTEM:SYSDUMP.DMP Dump taken on 22-FEB-1993 14:22:17.66 NOBUFPCKT, Required buffer packet not present SDA> SHOW CPU CPU 01 Processor crash information ---------------------------------- CPU 01 reason for Bugcheck: NOBUFPCKT, Required buffer packet not present . . . SDA> SHOW STACK CPU 01 Processor stack ---------------------- Current operating stack (INTERRUPT): 80DAFB4C 8018BC20 80DAFB50 7FFC653E . . . SDA> SET CPU 00 SDA> SHOW CPU CPU 00 Processor crash information ---------------------------------- CPU 00 reason for Bugcheck: CPUEXIT, Shutdown requested by another CPU . . . SDA> SHOW STACK CPU 00 Processor stack ---------------------- Current operating stack (INTERRUPT): 8016ABD8 00011F4C 8016ABDC 00010F56 . . . SDA> SHOW CRASH System crash information ------------------------ Time of system crash: 22-FEB-1993 14:22:17.66 . . . SDA> SHOW STACK CPU 01 Processor stack ---------------------- Current operating stack (INTERRUPT): 80DAFB4C 8018BC20 80DAFB50 7FFC653E . . . |
The series of SHOW CPU and SHOW STACK commands in this example illustrates the switching of CPU context within an SDA session:
- When you first invoke SDA, it is, by default, within the CPU context of the processor that caused the crash (CPU 01). This is illustrated by the first set of SHOW CPU and SHOW STACK commands.
- The SET CPU 00 command explicitly changes SDA CPU context to that of CPU 00, as illustrated by the second sequence of SHOW CPU and SHOW STACK commands.
Note that a SHOW CPU 00 command would have the same effect as the two commands SET CPU 00 and SHOW CPU, changing the SDA CPU context in addition to displaying the processor-specific information. Unlike the SHOW CPU cpu-id command, no display is associated with the SET CPU cpu-id command.- The SHOW CRASH command resets the SDA CPU context to that of the processor that caused the crash (CPU 01).
Initiates or discontinues the recording of an SDA session in a text file.
SET [NO]LOG filespec
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 SET DEFAULT command. You must specify a file name.
None.
The SET LOG command echoes the commands and output of an SDA session to a log file. The SET NOLOG command terminates this behavior.There are the following differences 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 such that 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 all 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 LOG command does not record output from the HELP command in its log file. The SET OUTPUT command can record HELP output in its listing file.
- The SET LOG command does not record SDA error messages in its log file. The SET OUTPUT command can record SDA error messages in its listing file.
- The SET OUTPUT command generates 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.
Note that, if you have used the SET OUTPUT command to redirect output to a listing file, you cannot use a SET LOG command to direct the same output to a log file.
Redirects output from SDA to the specified file or device.
SET OUTPUT filespec
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 SET DEFAULT command. You must specify a file name.
When you use the SET OUTPUT command to send the SDA output to a file or device, SDA continues to display the SDA commands that you enter but sends the output generated by those commands to the file or device that you specify. (See the description of the SET LOG command for a list of differences between SET LOG and the SET OUTPUT command.)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$OUTPUTIf you use the SET OUTPUT command to send the SDA output to a listing file, 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.
Selects a process to become the SDA current process.
SET PROCESS {process-name|/INDEX=nn|/SYSTEM}
process-name
Name of the process to become the SDA current process. The process-name is a string containing up to 15 uppercase or lowercase characters; numerals, the dollar sign ($) character, and the underscore (_) character can also be included in the string. If you include characters other than these, you must enclose the entire string in quotation marks (" ").
/INDEX=nn
Specifies the process to be made current by its index into the system's list of software process control blocks (PCBs). You can supply either of the following values for nn:
- The process index itself
- The process identification (PID) or extended PID longword, from which SDA extracts the correct index
To obtain these values for any given process, issue the SDA command SHOW SUMMARY.
/SYSTEM
Specifies that the system process be made the SDA current process. Each system (uniprocessor or multiprocessor) uses a single system process control block (PCB) and process header (PHD) as dummy structures, located in system space, that record the system working set, global section table, global page table, and other systemwide data.
When you issue an SDA command such as an EXAMINE command, 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, its process context defaults to that of the process that was current at the time of the crash. If the crash occurred on a multiprocessing system, SDA sets the CPU context to that of the processor that crashed the system and the process context 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 name or /INDEX=nn. The process specified by this command becomes the current process for SDA until you exit SDA or change SDA process context by issuing one of the following commands:
In the analysis of a crash dump from a multiprocessing system, changing process context can involve a switch of CPU context as well. For instance, if you issue a SET PROCESS command for a process that is current on another CPU, SDA will automatically change its CPU context to that of the CPU on which that process is current. The following commands can have this effect if process-name or index number (nn) refers to a current process:
See Section 4 for further discussion on the way in which SDA maintains its context information.
SDA> SHOW PROCESS Process index: 0012 Name: NETACP Extended PID: 28C00092 ----------------------------------------------------------- Process status: 00149001 RES,WAKEPEN,NOACNT,PHDRES,LOGIN PCB address 800F1140 JIB address 801FDA00 PHD address 80477200 Swapfile disk address 01000F01 . . . SDA> SHOW SUMMARY Current process summary ----------------------- Extended Indx Process name Username State Pri PCB PHD Wkset -- PID -- ---- --------------- ----------- ----- --- -------- -------- ----- 28C00080 0000 SWINGER COM 0 80002100 80001F88 0 28C00081 0001 SWAPPER HIB 16 800023C8 80002250 0 28C00483 0003 KLINGON KLINGON MWAIT 6 8010FEA0 803F8600 323 28C00085 0005 ERRFMT SYSTEM COM 10 800B5A10 8061DA00 69 28C00087 0007 OPCOM SYSTEM LEF 7 800C7000 80227A00 71 . . . SDA>SET PROCESS ERRFMT SDA> SHOW PROCESS Process index: 0005 Name: ERRFMT Extended PID: 28C00085 -------------- Process status: 00040001 RES,PHDRES PCB address 800B5A10 JIB address 801E5C00 . . . |
The first SHOW PROCESS command shows the current process to be NETACP. The SHOW SUMMARY command shows the names of the processes that exist. The SET PROCESS command sets the current process to ERRFMT, as shown by the second SHOW PROCESS command. Note that the SET PROCESS command could also have been issued as one of the following:
SDA> SET PROCESS/INDEX=5 SDA> SET PROCESS/INDEX=801E5C00
Changes the options shown by the SHOW PROCESS/RMS command.
SET RMS =(option[,...])
option
Data structure or other information to be displayed by the SHOW PROCESS/RMS command. Table SDA-14 lists those keywords that you can use as options.
Table SDA-14 SET RMS Command Keywords for Displaying Process RMS Information Keyword Meaning [NO]ALL[: ifi] 1 All control blocks (default) [NO]ASB Asynchronous context block [NO]BDB Buffer descriptor block [NO]BDBSUM BDB summary page [NO]BLB Buffer lock block [NO]BLBSUM Buffer lock summary page [NO]CCB Channel control block [NO]DRC Directory cache [NO]FAB File access block [NO]FCB File control block [NO]FWA File work area [NO]GBD Global buffer descriptor [NO]GBDSUM GBD summary page [NO]GBH Global buffer header [NO]GBSB Global buffer synchronization block [NO]IDX Index descriptor [NO]IFAB[: ifi] 1 Internal FAB [NO]IFB[: ifi] 1 Internal FAB [NO]IRAB Internal RAB [NO]IRB Internal RAB [NO]JFB Journaling file block [NO]NAM Name block [NO]NWA Network work area [NO]PIO Image I/O (NOPIO), the default, or process I/O (PIO) 2 [NO]RAB Record access block [NO]RLB Record lock block [NO]RU Recovery unit structures, including the recovery unit block (RUB), recovery unit stream block (RUSB), and recovery unit file block (RUFB) [NO]SFSB Shared file synchronization block [NO]WCB Window control block [NO]XAB Extended attribute block [NO]* Current list of options displayed by the SHOW RMS command
The default option is ALL:ALL,NOPIO, designating for display by the SHOW PROCESS/RMS command all structures for all files related to the image I/O of the process.
To list more than one option, enclose the list in parentheses and separate options by commas. 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.
None.
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 an indication of the information provided by various displays.) You can examine the options that are currently selected by issuing a SHOW RMS command.
#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 BLB, BLBSUM, and RLB to the list of data structures that the SHOW PROCESS/RMS command currently displays.
#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.
Displays the locations and contents of the longwords representing a procedure call frame.
SHOW CALL_FRAME [starting-address|/NEXT_FP]
starting-address
Expression representing the starting address of the procedure call frame to be displayed. The default starting-address is the longword contained in the FP register of the SDA current process.
/NEXT_FP
Displays the procedure call frame starting at the address stored in the FP 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 to use the /NEXT_FP qualifier to the command.
Whenever a procedure is called using CALLG or CALLS instructions, information is stored on the stack of the calling routine in the form of a procedure call frame. Figure SDA-5 illustrates the format of a call frame.6The SHOW CALL_FRAME command interprets the contents of the designated call frame and displays whether the call frame was generated by a CALLG or CALLS instruction. If it locates nonzero bits in the portion of the second longword that represents the upper byte of the processor status word (PSW), it presents a message that indicates the fault or trap in effect. For example:
Nonzero PSW Bits (15:8) => Reserved Operand Fault on RETSHOW_CALL_FRAME then produces four columns of information:
- The components of the call frame.
- The virtual addresses that are part of the call frame.
- The contents of the longwords at these addresses.
- A symbolic representation of the contents of each longword, if possible. SDA does not attempt to symbolize the second longword in the call frame (mask-PSW longword), which contains the register save mask and the processor status word (PSW).
Figure SDA-5 Call Frame
The SHOW CALL_FRAME command follows this listing with an indication of how many bytes were used to align the call frame to a longword boundary.
For call frames generated by a CALLS instruction, the SHOW CALL_FRAME instruction displays the argument list to the call frame in three columns containing the virtual address of each item, its contents, and its symbolic representation.
All valid procedure call frames begin on a longword boundary. If the specified address expression does not begin on a longword boundary, the call frame is invalid and SDA displays the following message:
Invalid Call Frame: Start Address Not On Longword Boundary |
If you attempt to format an address that is not a call frame or is an invalid call frame (that is, bit 28 of the second longword is not 0), SDA displays the following message:
Invalid Call Frame: Bit 28 is Set in "Mask-PSW" Longword |
When using the SHOW CALL_FRAME/NEXT_FP command to follow a chain of call frames, SDA signals the end of the chain by this message:
%SDA-E-NOTINPHYS, 00000000 : not in physical memory |
SDA> SHOW CALL_FRAME Call Frame Information ---------------------- Call Frame Generated by CALLG Instruction Condition Handler 7FFE7D78 00000000 SP Align Bits = 00 7FFE7D7C 00000000 Saved AP 7FFE7D80 7FFE7DC0 CTL$GL_KSTKBAS+005C0 Saved FP 7FFE7D84 7FFE7D94 CTL$GL_KSTKBAS+00594 Return PC 7FFE7D88 8015303F EXCEPTION+0043F Align Stack by 0 Bytes => SDA> SHOW CALL_FRAME/NEXT_FP Call Frame Information ---------------------- Call Frame Generated by CALLS Instruction Condition Handler 7FFE7D94 00000000 SP Align Bits = 00 7FFE7D98 20FC0000 Saved AP 7FFE7D9C 7FFED024 Saved FP 7FFE7DA0 7FFE7DE4 CTL$GL_KSTKBAS+005E4 Return PC 7FFE7DA4 801D58AA MMG$IMGRESET+00066 R2 7FFE7DA8 7FFE7DD0 CTL$GL_KSTKBAS+005D0 R3 7FFE7DAC 7FFDB9F8 R4 7FFE7DB0 8026C720 R5 7FFE7DB4 7FFDBA00 R6 7FFE7DB8 7FFE6300 CTL$A_DISPVEC+00500 R7 7FFE7DBC 00000003 Align Stack by 0 Bytes => Argument List 7FFE7DC0 00000003 7FFE7DC4 7FFE7DD0 CTL$GL_KSTKBAS+005D0 7FFE7DC8 00000000 7FFE7DCC 00000000 SDA> SHOW CALL_FRAME/NEXT_FP Call Frame Information ---------------------- Call Frame Generated by CALLG Instruction Condition Handler 7FFE7DE4 00000000 SP Align Bits = 00 7FFE7DE8 00000000 Saved AP 7FFE7DEC 7FFED024 Saved FP 7FFE7DF0 7FFECFF8 Return PC 7FFE7DF4 8015303F EXCEPTION+0043F Align Stack by 0 Bytes => |
Note
6 In Figure SDA-5, the second longword contains the stack pointer alignment (SPA) bits, which indicate the zero to three bytes needed to align the frame to a longword boundary. The S bit is set if the frame resulted from a CALLS instruction; it is clear if it resulted from a CALLG instruction.
Previous Next Contents Index
Copyright © Compaq Computer Corporation 1998. All rights reserved.
Legal4556PRO_008.HTML