[OpenVMS documentation]
[Site home] [Send comments] [Help with this site] [How to order documentation] [OpenVMS site] [Compaq site]
Updated: 11 December 1998

OpenVMS VAX System Dump Analyzer Utility Manual


Previous Contents Index

SET CPU

Selects a processor to become the SDA current CPU.

Format

SET CPU cpu-id


Parameter

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 


Qualifiers

None.

Description

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:

Changing CPU context can cause an implicit change in process context under the following circumstances:

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.


Example


$ 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:

  1. 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.
  2. 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.
  3. The SHOW CRASH command resets the SDA CPU context to that of the processor that caused the crash (CPU 01).

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 SET DEFAULT command. You must specify a file name.

Qualifiers

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.

There are the following differences between the SET LOG command and the SET OUTPUT command:

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.

SET OUTPUT

Redirects output from SDA to the specified file or device.

Format

SET OUTPUT 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 SET DEFAULT command. You must specify a file name.

Description

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$OUTPUT

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

SET PROCESS

Selects a process to become the SDA current process.

Format

SET PROCESS {process-name|/INDEX=nn|/SYSTEM}


Parameter

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

Qualifiers

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

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.

Description

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.


Example


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 

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


1The optional parameter ifi is an internal file identification. The default ifi (ALL) is all the files the current process has opened.
2Specifying the PIO option causes the SHOW PROCESS/RMS command to display the indicated structures for process-permanent file I/O.

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.


Qualifiers

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 an indication of the 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 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.

SHOW CALL_FRAME

Displays the locations and contents of the longwords representing a procedure call frame.

Format

SHOW CALL_FRAME [starting-address|/NEXT_FP]


Parameter

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.

Qualifier

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

Description

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

The 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 RET 

SHOW_CALL_FRAME then produces four columns of information:

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 
This message indicates that the saved FP in the previous call frame has a zero value.


Example


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

[Site home] [Send comments] [Help with this site] [How to order documentation] [OpenVMS site] [Compaq site]
[OpenVMS documentation]

Copyright © Compaq Computer Corporation 1998. All rights reserved.

Legal
4556PRO_008.HTML