[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

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.

Format

SHOW STACK [range|/qualifier[,...]]


Parameters

range

Range of memory locations you want to display in stack format. You can express a range using the following format:
m:n Range of virtual addresses from m to n
m;n Range of virtual 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 interrupt stack for the SDA current CPU.

/EXECUTIVE

Shows the executive stack for the SDA current process.

/INTERRUPT

Shows the interrupt stack for the SDA current CPU.

/KERNEL

Shows the kernel stack for the SDA current process.

/SUPERVISOR

Shows the supervisor stack for the SDA current process.

/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 any other process made the SDA current process, the SHOW STACK command by default shows its current operating stack.

The various qualifiers to the command can display any of the four per-process stacks for the SDA current process, as well as the interrupt stack for the SDA current CPU.

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

SDA provides the following information in each stack display.
Section Contents
Identity of stack SDA indicates whether the stack is a process stack (user, supervisor, executive, or kernel) or the processor interrupt stack. If the interrupt stack is being displayed, SDA displays the CPU ID of the processor that owns it. Similarly, if the SDA current process is currently scheduled on a processor in the system, SHOW STACK also specifies the CPU ID of the processor on which the process is scheduled.
Stack pointer The stack pointer identifies the top of the stack. The display indicates the stack pointer by the symbol SP =>.
Stack address SDA lists all the virtual addresses that the operating system has allocated to the stack. The stack addresses are listed in a column that increases in increments of 4 bytes (one longword).
Stack contents SDA lists the contents of the stack in a column to the right of the stack addresses.
Symbols SDA attempts to display the contents of a location symbolically, using a symbol and an offset.

If the address is not within FFF 16 of the value of any existing symbol, this column is left blank.

If a stack is empty, the display shows the following:


        SP =>  (STACK IS EMPTY) 


Example


SDA> SHOW STACK
Process stacks (on CPU 00)
--------------------------
 
Current operating stack (USER):
                7FF73278  200C0000
                7FF7327C  00001518      SGN$C_MAXPGFL+518
                7FF73280  7FF732F0
                7FF73284  000187A7      RMS$_ECHO+72E
         SP =>  7FF73288  0000060A      BUG$_NOHDJMT+002
                7FF7328C  00000000
                7FF73290  00000003
                7FF73294  7FF73800
                7FF73298  7FF73800
      

The SHOW STACK command displays a user stack that was the current operating stack for a process scheduled on CPU 00. The data shown above the stack pointer might not be valid. The symbol to the right of the columns, BUG$_NOHDJMT+002, is the result of the SDA attempt to interpret the contents of the longword at the top of the stack as a symbol meaningful to the user. In this case, the value on the stack and the value of BUG$_NOHDJMT are unrelated.

SHOW SUMMARY

Displays a list of all active processes and the values of the parameters used in swapping and scheduling those processes.

Format

SHOW SUMMARY [/IMAGE]


Parameters

None.

Qualifier

/IMAGE

Causes SDA to display, if possible, the name of the image being executed within each process.

Description

The SHOW SUMMARY command displays the information in Table SDA-23 for each active process in the system.

Table SDA-23 Process Information in the SHOW SUMMARY Display
Column Contents
Extended PID 32-bit number that uniquely identifies the process
Indx Index of this process into the PCB array
Process name Name assigned to the process
Username Name of the user who created the process
State Current state of the process, one of the following 14 states:
  • COM

    Computable and resident in memory

  • COMO

    Computable but outswapped

  • CUR

    Currently executing 1

  • CEF

    Waiting for a common event flag

  • LEF

    Waiting for a local event flag

  • LEFO

    Outswapped and waiting for a local event flag

  • HIB

    Hibernating

  • HIBO

    Hibernating and outswapped

  • SUSP

    Suspended

  • SUSPO

    Suspended and outswapped

  • PFW

    Waiting for a page that is not in memory (page-fault wait)

  • FPG

    Waiting to add a page to its working set (free-page wait)

  • COLPG

    Waiting for a page collision to be resolved (collided-page wait); this usually occurs when several processes cause page faults on the same shared page

  • MWAIT

    Waiting for a system resource (miscellaneous wait)

Pri Current scheduling priority of the process
PCB Address of the process control block
PHD Address of the process header
Wkset Number (in decimal) of pages currently in the working set of the process


1For a process in the CUR state executing in a multiprocessing environment, SDA indicates the CPU ID of the processor on which the process is current. This information, however, might not be accurate in SHOW SUMMARY displays produced in the analysis of a running system.


Example


SDA> SHOW SUMMARY/IMAGE
Current process summary
-----------------------
Extended  Indx Process name    Username    State   Pri   PCB      PHD    Wkset
-- PID -- ---- --------------- ----------- ------- --- -------- -------- -----
 33C00101 0001 SWAPPER                      HIB     16 8000C3C0 8000C200     0
 33C00205 0005 _RTA5:          SIVAD        LEF      4 80482FE0 82120E00   293
 33C00106 0006 ERRFMT          SYSTEM       HIB      8 80432950 80DB4600   126
          $254$DUA200:[SYS6.SYSCOMMON.][SYSEXE]ERRFMT.EXE;1
 33C00107 0007 CACHE_SERVER    SYSTEM       HIB     16 80432AC0 81121E00   120
          $254$DUA200:[SYS6.SYSCOMMON.][SYSEXE]FILESERV.EXE;400
 33C00108 0008 CLUSTER_SERVER  SYSTEM       HIB     10 804331F0 81246600   313
          $254$DUA200:[SYS6.SYSCOMMON.][SYSEXE]CSP.EXE;300
   .
   .
   .
 33C0010D 000D NETACP          DECNET       CUR  00 10 8044C6D0 816D8600  1500
          $254$DUA200:[SYS6.SYSCOMMON.]<SYSEXE>NETACP.EXE;3
 33C0010E 000E EVL             DECNET       HIB      4 8044CD60 817FCE00    68
          $254$DUA200:[SYS6.SYSCOMMON.]<SYSEXE>EVL.EXE
   .
   .
   .
      

The SHOW SUMMARY/IMAGE command describes all active processes in the system at the time of the system failure. Note that the process NETACP is in the CUR state on CPU 00 of a multiprocessor system at the time of the failure.

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] symbol-name


Parameter

symbol-name

Name of the symbol to be displayed. You must provide a symbol-name.

Qualifier

/ALL

Displays information about all symbols whose names begin with the characters specified in symbol-name.

Description

The SHOW SYMBOL/ALL command is useful for determining the values of symbols that belong to a symbol set, as illustrated in the examples.

Examples

#1

SDA> SHOW SYMBOL G
G = 80000000 :  8FBC0FFC
      

The SHOW SYMBOL command evaluates the symbol G as 8000000016 and displays the contents of address 8000000016 as 8FBC0FFC16.

#2

SDA>  SHOW SYMBOL/ALL BUG
      


Symbols sorted by name 
---------------------- 
BUG$BUILD_HEADE 80002038 => 24A89F16        BUG$_CONSOLRX50 00000640 => 10A2020E 
BUG$DUMP_REGIST 80002040 => 24A89F16        BUG$_CONTRACT   000000C0 
BUG$FATAL       80002048 => 24A89F16        BUG$_CPUBUSYWAI 00000780 => 6501FB30 
BUG$L_BUGCHK_FL 80004108 => 00000001        BUG$_CPUCEASED  000005E8 => 5EDD0000 
BUG$L_FATAL_SPS 8000410C => 7FFE7C6C        BUG$_CPUEXIT    000006B8 => 218FD007 
BUG$READ_ERR_RE 80002050 => 24A89F16        BUG$_CPUSANITY  00000778 => 8A031164 
BUG$REBOOT      80002058 => 6E9E9F17        BUG$_CTERM      00000678 => 00000004 
BUG$TABLE       8000D09E => 00280001        BUG$_CWSERR     00000698 => 004C414E 
   .
   .
   .

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.

SHOW TRANSACTIONS

Displays information about all transactions on the node or about a specified transaction.

Format

SHOW TRANSACTIONS [/qualifier[,...]]


Qualifiers

/DISPLAY=(item [,...])

Specifies the type of information to be displayed. The argument to /DISPLAY can be either a single item or a list. The following items can be specified.
Item Description
ALL All transaction control structures for the specified transaction. This is the default behavior.
BRANCHES Control structures for branches of the specified transaction.
PARTICIPANTS Control structures for resource managers participating in the specified transaction.
THREADS Control structures for threads of the specified transaction.
TRANSACTIONS Transaction control structures for the specified transaction.

/SUMMARY

Displays statistics for transactions on the node. The /SUMMARY qualifier cannot be used with the /TID or /DISPLAY qualifier.

/TID=tid

Specifies the transaction for which information is to be displayed. If you omit the /TID qualifier, the SHOW TRANSACTIONS command displays information about all transactions on the node.

Examples

#1

SDA> SHOW TRANSACTIONS/TID=FAC21DE2-BA88-0092-8FA6-00000000B24B
 
      

The SHOW TRANSACTIONS command displays all the transaction control structure information for the transaction identified by the transaction identifier.

#2

SDA> SHOW TRANSACTIONS/DISPLAY=(PARTICIPANTS, BRANCHES)
      

The SHOW TRANSACTIONS command displays the transaction branch and resource manager information for all transactions on the node.

SPAWN

Creates a subprocess of the process currently running SDA, copying the context of the current process to the subprocess and, optionally, executing within the subprocess a specified command.

Format

SPAWN [/qualifier[,...]] [command]


Parameter

command

Name of the command that you want executed by the subprocess.

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. Once 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 completes processing or aborts. The default behavior is that such a message is not sent to SYS$OUTPUT.

When you use this qualifier, you must also specify the /NOWAIT qualifier.

/NOWAIT

Specifies that the system is not to wait until the subprocess is completed before allowing more commands to be specified. This qualifier allows you to specify new commands while the spawned subprocess is running. If you specify /NOWAIT, you should 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 commands to be specified.

/OUTPUT=filespec

Specifies an output file to which the results of the SPAWN operation are written. You should specify an output other than SYS$OUTPUT whenever you specify /NOWAIT to prevent output from the spawned subprocess from being displayed while you are specifying new commands. 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.

Example


SDA>  SPAWN
$  MAIL
   .
   .
   .
$  DIR
   .
   .
   .
$  LO
   Process SYSTEM_1 logged out at 5-MAR-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.

VALIDATE QUEUE

Validates the integrity of the specified queue by checking the pointers in the queue.

Format

VALIDATE QUEUE [address] [/qualifier[,...]]


Parameter

address

Address of an element in a queue.

If you specify a 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

/MAXIMUM_LINKS=nn

Specifies the number of entries in the queue that are to be validated.

/SELF_RELATIVE

Specifies that the selected queue is a self-relative queue.

Description

The VALIDATE QUEUE command uses the forward and 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 the VALIDATE QUEUE command is used 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 SCH$GQ_LEFWQ/MAXIMUM_LINKS=3
The queue is consistent through 3 elements
      

This example validates three elements in the SCH$GQ_LEFWQ queue.

#2

SDA>  VALIDATE QUEUE/SELF_RELATIVE IOC$GL_IRPFL
Queue is complete, total of 159 elements in the queue
      

This example validates the self-relative queue that is the IRP pool list. The validation is successful and determines that there are 159 IRPs in the list.


Index Contents

[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_017.HTML