%ě Librarian T09-20sL2?JŽ{ë92?JŽmŞn5=ATTACHCOPY8 CPU_Context œDEFINE €EVALUATE¸EXAMINEšExecute_CommandÖEXITž Expressions˜FORMAT"HELP FInitialization!* Operation'žProcess_Context,˛READ/ˆREPEAT0œSEARCH3SET>,SHOWeČSPAWNjFSymbolsllVALIDATE­ˇKŁ2,‘Ÿ1 ATTACH ATTACH process_name /PARENTB Switches control of your terminal from your current process toA another process in your job. Specify the target process with the process_name parameter. 2 /PARENTI This qualifier specifies that control of your terminal is to switchedF to the process that is the parent process to your current process.C If this qualifier is specified, do not specify the process_name$ parameter in the ATTACH command.ww­ˇKŁ2,‘Ÿ1 COPY  COPY output-file-specB Makes a copy of the system dump file currently being examined.A Each time the system crashes, new dump information is writtenB over the contents of SYSDUMP.DMP. The COPY command allows you> to preserve the contents of the dump file by copying it toH another file. The contents of the SYSDUMP.DMP file are not affected% by execution of the COPY command.F If the paging file was used as a dump file instead of SYSDUMP.DMP,E then the pages of that file that contain the dump information areI not available for paging until they are explicitly released. The COPYG command releases the dump pages in the paging file so that they areE available for system paging. Note that once the COPY command hasI released the dump pages for paging use, the dump information in theseF pages may be lost. Subsequent dump analysis should be carried outH on the copy of the dump fi le that was specified in the COPY command.ww­ĹĄ2,‘Ÿ 1 CPU_ContextG In a uniprocessor system there exists only one CPU, and the conceptF of SDA CPU context is not an issue. However, for a multiprocessorF system with more than one active CPU, SDA must maintain an idea ofE CPU context to provide a way of displaying information bound to aD specific CPU, such as the reason for the BUGCHECK exception, theE currently executing process, the current IPL, the cont ents of CPUJ registers, the interrupt stack pointer (ISP), and any owned spinlocks.G When SDA is first invoked to analyze a crash dump, the "SDA current4 CPU" is the CPU that induced the system failure.H The CPU context will be changed as a result of several different SDAI commands. When the CPU context is changed, the "SDA current process"G is changed to the current process on the "SDA current CPU" in orderE to keep CPU context and process context in synch. If ther e is noG current process on the "SDA current CPU", the "SDA current process"F is undefined, and no process context information will be available; until SDA process context is set to a specific process.< Type HELP PROCESS_CONTEXT for specific information about the "SDA current process".A The following SDA commands will change the "SDA current CPU":? SET CPU cpu_id ! Changes the "SDA current CPU" to CPU cpu_id? SHOW CPU cpu_id ! Changes the "SDA current CPU" to CPU cpu_id< SHOW CRASH ! Changes the "SDA current CPU" to the CPU% ! that induced the system failureF If a process is selected that is the current process on a CPU, theE following commands will change the "SDA current CPU" to that CPU: SET PROCESS process_name SET PROCESS /INDEX=n SHOW PROCESS process_name SHOW PROCESS /INDEX=n> No other SDA commands will affect the "SDA current CPU". F Note: When analyzing the running system, the SET CPU and SHOW C PUF commands are not allowed, since SDA does not have access toB all the CPU-specific information on the running system.ww­ˇKŁ2,‘Ÿ 1 DEFINE / DEFINE symbol[=]expression [/qualifier...]J Assigns a value of an expression to a symbol. The symbol can be used M in expressions. Each subsequent definition of the same symbol overrides I any previous definitions. The symbol remains defined until you exit from SDA.2 /KEY G Ca uses a key, rather than a symbol, to be defined. If you use thisE qualifier, the symbol parameter must be the name of a key on yourC terminal keyboard, and the expression parameter must be the SDAG command that is to be executed when the key, followed by a carriage return, is pressed.@ For example, use the command below to define the PF1 key to # execute the SHOW STACK command.( SDA> DEFINE/KEY PF1 "SHOW STACK" 2 /SET_STATEF Causes the key being def ined to change a command state rather thanD to execute an SDA command. The expression parameter must be the: name of a state instead of the name of a terminal key.2 /[NO]TERMINATEB /TERMINATE causes the key definition to include termination ofE the command, which causes SDA to execute the command when the key1 is pressed. No carriage return is required. C /NOTERMINATE specifies that the key definition does not includeG termination of the command. When the key is pressed, SDA waits for3 a carriage return before executing the command. /NOTERMINATE is the default.ww­ˇKŁ2,‘Ÿ 1 EVALUATE ( EVALUATE expression [/qualifier]G Computes and displays the value of the specified expression in bothH hexadecimal and decimal. If the expression is equal to the value ofH a symbol, that symbol is displayed. A finite number of such symbolsH is displayed by default. If no symbol with this value is known, theG next lower valued symbol is displayed with an appropriate offset ifG the offset is small enough for the selected symbol to be considered useful.I Alternate evaluations of the expression are available with the use of, the qualifiers defined for this command.< Type HELP EXPRESSIONS for the syntax of SDA expressions.2 /CONDITION_VALUE ; Displays the message the $GETMSG system service obtains$ for the value of the expression.2 /PSL= Evaluates the specified longword, displaying its contents1 in the format of a processor status longword. 2 /PTEG Interprets and displays the expression as a Page Table Entry (PTE).A The individual fields of the PTE are separated and an overall. description of the PTE's type is provided. 2 /SYMBOLS< Specifies that all symbols that are known to be equal to1 the evaluated expression are to be displayed.ww­ˇKŁ2,‘Ÿ 1 EXAMINE EXAMINE [/qualifier...] [range]G  Displays the contents of the specified memory locations. The rangeB can be a single address or a range of locations given as "n:m"C (n through m inclusive) or "n;m" (m bytes, starting at n, where( n and m are arithmetic expressions).< Type HELP EXPRESSIONS for the syntax of SDA expressions.2 /ALL E Examines all the locations in the program and control regions andD parts of the writeable system region, displaying the contents ofD memory in hexadecimal longwords. Do not specify parameters when you use this qualifier. 3 /NOSUPPRESS4 This qualifier inhibits the suppression of zeros when displaying memory.2 /CONDITION_VALUE ? Examines the specified longword, displaying the message theA $GETMSG system service obtains for the value in the longword.2 /INSTRUCTIONE Translates the specified range of memory locations into VAX MACROI instruction format. If more than 16 bytes are specified in the range,F some bytes at the beginning of the range may be skipped to ensure I that SDA is properly synchronized with the start of each instruction.E This synchronization can be overridden by specifying the command, EXAMINE/INSTRUCTION/NOSKIP. 2 /NOSKIP@ Prevents SDA from skipping any bytes specified in the range @ when used to translate the contents of memory into VAX MACROD instructions. This qualifier implies the /INSTRUCTION qualifier.2 /P0? Displays the entire program region for the default process.: Do not specify parameters when you use this qualifier. 3 /NOSUPPRESS9 This qualifier inhibits the suppression of zeros when displaying memory.2 /P1? Displays the entire control region for the default process.: Do not specify parameters when you use this qualifier. 3 /NOSUPPRESS9 This qualifier inhibits the suppression of zeros when displaying memory.2 /PSL < Examines the specified longword, displaying its contents1 in the format of a processor status longword.2 /PTEH Interprets and displays the specified longword as a Page Table EntryI (PTE). The individual fields of the PTE are separated and an overall. description of the PTE's type is provided. 2 /SYSTEMC Prints portions of the writeable system region. Do not specify+ parameters when you use this qualifier. 3 /NOSUPPRESS9 This qualifier inhibits the suppression of zeros when displaying memory.2 /TIMEC Examines the specified quadword, displaying its contents in the. format of a system-date-and-time quadword.ww­ĹĄ2,‘Ÿ1 Execute_Command  @file-specE Causes SDA to execute SDA commands contained in a file. Use thisC command to execute a set of frequently used SDA commands. ThisC command is bound to the at sign (@) character. The name of the file is a required argument.ww­WҤ2,‘Ÿ1 EXIT EXIT;  Exits from the current display when typed at the screen< overflow prompt, or exits from the program when typed at the "SDA>" prompt.ww­ĹĄ2,‘Ÿ 1 Expressions> Some SDA commands allow expressions as command parameters.& To create expressions, you can use Radix operators# Arithmetic and logical operators Precedence operators Symbols NumeralsE Radix operators specify a given radix for the number that followsF the operator. SDA displays hexadecimal numbers with leading zeros5 and displays decimal numbers with leading spaces. ^X Hexadecimal (default) ^O Octal ^D Decimal Unary operators # Logical NOT of value# + Assigns positive value (default) - Assigns negative value @ Uses contents of location* G Adds ^X80000000 to value (system space), H Adds ^X7FFE0000 to value (control region) Binary operators + Addition - Subtraction & Logical AND ! Logical OR \ Logical XOR * Multiplication / Division  @ Arithmetic shiftD Logical AND, logical OR, logical XOR, multiplication, division, andC arithmetic shifting are performed before addition and subtraction. Precedence operatorsC Parentheses control the evaluation of all operations. ExpressionsC enclosed in parentheses are evaluated first. SDA evaluates nestedD parenthetical expressions from the innermost to the outermost pairs of parentheses. Symbols: Symbols are composed of up to 31 letters and numbers, andA can include the dollar sign and underscore characters. When youD invoke SDA, it copies the global symbols from SYS.STB, the system'sB symbol table. You can add other symbols to SDA's symbol table byH using the DEFINE and READ commands. SDA also predefines certain& symbols, some of which follow: . Current location G ^X80000000 (system space) H ^X7FFE0000 (control region) R0-R11 General registers AP Argument pointer FP Frame pointer SP Stack pointer  PC Program counter PSL Processor status longwordA For a complete list of SDA predefined symbols, type HELP SYMBOLSww­WҤ2,‘Ÿ 1 FORMAT * FORMAT [/TYPE=block-type] locationD Displays the formatted contents of a VAX/VMS control block whichA begins at the address specified by the expression "location".= Most blocks include a byte that indicates the block type.H Associated with each type of block is a set of symbols with a commonG  prefix. Each symbol's name describes a field within the block, andE the value of the symbol represents the offset of the field within the block.I If the block-type byte contains a valid block type (and/or subtype), @ SDA retrieves the symbols associated with that type of blockD (see $DYNDEF) and uses their values to format the block. If theE block-type byte does not contain a valid block type, you must use, the /TYPE qualifier to format the block.@ For a given block type, all associated symbols have the form $_' where type is one of the following: B Byte W Word L Longword Q Quadword A Address C Constant G Global Longword- T Counted ASCII string (up to 31 characters)A If SDA cannot find the symbols associated with the block typeB specified in the block-type byte or by the /TYPE qualifier, it issues this message:3 No symbols found to format this blockA Use the READ command to obtain additional symbol definitions.2 /TYPE=block-typeA Indicates the symbolic prefix that corresponds to the type ofB block structure you want to format. This qualifier accepts as7 parameters the prefix of any VAX/VMS control block.ww­w> 2,‘Ÿ1 HELPI The System Dump Analyzer (SDA) allows you to inspect the contents of F memory as saved in the dump taken at crash time or as exists in a J running system. You can use SDA interacti vely or in batch mode. You H can send the output from SDA to a listing file. You can use SDA to % perform the following operations:! Assign a value to a symbol$ Examine memory of any process- Format instructions and blocks of data% Display device data structures0 Display memory management data structures7 Display a summary of all processes on the system# Display the SDA symbol table Copy the system dump file& Send output to a file or device1 Read global symbols from any object module& Search memory for a given valueM You can obtain help on any of the following topics by typing HELP := ATTACH Execute_Command Operation SET> CPU_Context EXIT Process_Context SHOW? COPY Expressions READ SPAWNA DEFINE FORMAT REPEAT SymbolsB EVALUATE HELP SEARCH ! VALIDATE" EXAMINE Initializationww­ĹĄ2,‘Ÿ1 InitializationD When you invoke SDA, by using the DCL commands ANALYZE/SYSTEM orI ANALYZE/CRASH, SDA will first execute commands from an initializationC file if one exists, before prompting the user for commands. TheE initialization file is commonly used to read in symbol tables and! define keys for SDA commands.I First, SDA searches for an initialization file using the logical nameH " SDA$INIT. If this file is not found, then SDA searches for the fileI SYS$LOGIN:SDA.INIT. If no initialization file is found, or after theC initialization file SDA commands have been executed, SDA starts? accepting interactive user commands from the "SDA>" prompt.ww­ĹĄ2,‘Ÿ 1 OperationF You execute the System Dump Analyzer program by means of commands.G SDA reads these commands from SYS$INPUT, which can be your terminalD or a command file. You can #send the output to a file or to your terminal.2 Any of the following commands will invoke SDA: $ ANALYZE/CRASH_DUMP dump_file $ ANALYZE/SYSTEM $ RUN SYS$SYSTEM:SDAF When a fatal BUGCHECK error causes the system to crash, the systemG writes the current state of the hardware registers and all physicalH memory to a contiguous file called SYSDUMP.DMP in the SYSEXE accountG on the system disk. Alternatively, the system's paging file may beC specified as the d $estination of the dump information instead ofL SYSDUMP.DMP. This is useful on systems that have constrained disk space.J Note that pages currently in the paging file (paged out) are not savedI because the paging file is too large. Although these pages are lost H from the crash dump, the effect on debugging will be minimal becauseG most pages relating to the crash are still in physical memory when I the crash occurs, and are thus saved in the dump file. Of course, ifH % the paging file is used as a dump file, the pages that are there are wiped out.L It is recommended that the system manager set up the system-startup fileK so that SDA is always run during system startup. When executed at thisI time, SDA first checks to see if the system has just crashed. If so,G SDA executes the SDA commands in the system's startup-command file.2 If the system has not just crashed, SDA exits.J The following example shows the SDA commands typical&ly included in theC system's startup file. The most important of these is the COPYI command, which copies the dump file to another file. This operation N is recommended because the system always overwrites this file in the eventL of a crash, and the record of the previous crash is lost unless another L copy exists. Furthermore, if the paging file was used as the dump file,L the pages that contain the dump information are not available for paging; until they are explici 'tly released by the COPY command. $ !@ $ ! Invoke the System Dump Analyzer if the system just crashed $ !( $ ANALYZE/CRASH_DUMP SYS$SYSTEM:SYSDUMP0 SET OUTPUT LPA0:SYSDUMP.LIS ! Make listing file) SHOW CRASH ! Display crash information, SHOW STACK ! Show current operating stack+ SHOW SUMMARY ! List all active processes9 SHOW PROCESS/PCB/PHD/REGISTERS ! Display current process2 SHOW SYMBOLS/ALL ! Print the system symbol table8 COPY SYS$SYSTEM:SAVEDUMP.DMP ! Save dump file for( later EXITB If you need more information on the crash, you can execute SDA: interactively or add SDA commands to the startup file.ww­ĹĄ2,‘Ÿ1 Process_ContextJ In a uniprocessor system there are two concepts related to SDA processI context -- the process that is current on the CPU, and the process inD whose context process-specific SDA commands will be interpreted.G Either these two processes are the same, or they are not. However,I for a multip )rocessor system with more than one active CPU, the notionA of SDA process context changes to provide a way of displayingD information relevant to a specific process both when the process> is current on some processor, and when the process is not.B The SDA process context will be changed as a result of severalI different SDA commands. When the "SDA current process" is changed toH the current process on some CPU, the "SDA current CPU" is changed toG that CPU in order to* keep CPU context and process context in synch.G When the "SDA current process" is changed to a process which is notI current on any processor, the "SDA current CPU" is not changed. WhenI the SDA CPU context is changed to a CPU which has no current process,B the "SDA current process" is undefined, and no process contextG information will be available until SDA process context is set to aE specific process. Type HELP CPU_CONTEXT for specific information about the "S+DA current CPU".E The following SDA commands will change the "SDA current process":= SET PROCESS process_name ! Changes the "SDA current process" ! to process_name: SET PROCESS /INDEX=n ! Changes the "SDA current process"" ! to the process with index n> SHOW PROCESS process_name ! Changes the "SDA current process" ! to process_name; SHOW PROCESS /INDEX=n ! Changes the "SDA current process"" ! to the process with index nE The following commands will ch,ange the SDA process context if theI "SDA current process" is not the current process on the selected CPU:; SET CPU cpu_id ! Changes the "SDA current process" to the# ! current process on CPU cpu_id< SHOW CPU cpu_id ! Changes the "SDA current process" to the# ! current process on CPU cpu_id7 SHOW CRASH ! Changes the "SDA current process" to the- ! current process on the CPU that induced ! the system failureB No other SDA commands will affect the "SDA curre-nt process". E Note: When analyzing the running system, CPU context is not usedI because all the CPU-specific information may not be available.ww­WҤ2,‘Ÿ1 READ . READ [/RELOCATE=expression] file-spec" [/EXECUTIVE] directory-specH Copies global symbols from an object module to the SDA symbol table.D The READ command lets you extract global symbols from any objectH module and insert the definitions into the SDA symbol table. If you.8 do not specify a file type, .STB is used by default.I The following MACRO program can be used to obtain symbols in addition to those in SYS.STB: .TITLE GLOBALS- $PHDDEF GLOBAL ; Process header definitions$ $DDBDEF GLOBAL ; Device data block% $UCBDEF GLOBAL ; Unit control block' $VCBDEF GLOBAL ; Volume control block$ $ACBDEF GLOBAL ; AST control block% $IRPDEF GLOBAL ; I/O request packet ; more can be inserted here .ENDG Use the command below to generat/e an object module file containing ' the globals defined in the program.< $ MACRO GLOBALS+SYS$LIBRARY:LIB/LIBRARY /OBJECT=GLOBALS.STB2 /RELOCATE=expressionG Change the relative addresses of the symbols to absolute addresses,D by adding "expression", the base value, to each relative addressB in the object module. This qualifier changes those addresses F to absolute addresses in the address space into which the dump is mapped.2 /EXECUTIVE directory-specG 0 Reads the symbol tables from the executive loaded images (which can2 be displayed with the SHOW EXECUTIVE command).ww­WҤ2,‘Ÿ1 REPEAT REPEATI Repeats execution of the last command SDA executed. This command canJ also be invoked by pressing the 0 key on your terminal's keypad (KP0).L This command provides a convenient method of displaying a series of dataJ structures in a linked list or examining a sequence of locations. For example:6 FORMAT 1@IOC$GL_DEVLIST ! Start at first DDB in system( FORMAT @. ! Skip to next entry in list# ! Repeat FORMAT @. command . . .ww­÷XŚ2,‘Ÿ 1 SEARCH 1 SEARCH [/qualifier...] range[=]expressionI SDA evaluates the expression and searches the range of memory for allI occurrences of that value. As each occurrence is found, its location is displayed.E The search range can be specified as "n:m" (locations n through mB inclusive) or "n;m2" (m bytes, starting at n, where n and m are arithmetic expressions).2 /LENGTH=length_specifierC This qualifier specifies the size of the expression value to be? used for successful matching during searches of memory. The* possible values of this qualifier are:C LONGWORD - specifies that the expression to be searched forF is four bytes in length. This is the default value.C WORD - specifies that the expression to be searched for* 3 is two bytes in length.C BYTE - specifies that the expression to be searched for) is one byte in length.2 /STEPS=step_factorD This qualifier controls the granularity of searching through theE specified memory range. As each comparison of memory occurs, theD value of this qualifier determines what the next memory location; to be searched will be. The possible step_factors are:: QUADWORD - specifies a step_factor of 4eight bytes.F LONGWORD - specifies a step_factor of four bytes. This is the4 default value for this qualifier.9 WORD - specifies a step_factor of two bytes.7 BYTE - specifies a step_factor of one byte.ww­÷XŚ2,‘Ÿ1 SET; This command is a nonprinting directive. The following( types of SET commands are available: SET CPU SET LOG SET NOLOG SET OUTPUT SET PROCESS 5 SET RMS2 CPU SET CPU cpu_idB Selects a CPU to become the new "SDA current CPU". The CPU isC specified by its hexadecimal CPU ID, a value between 00 and 1F.C SET CPU also changes SDA process context. The new "SDA currentC process" is the current process on the specified CPU. If there@ is no current process on the new "SDA current CPU", then the> "SDA current process" is undefined, and no process contextB information will be available until SDA proces 6s context is set to a specific process.E Subsequent SDA commands display information based on both the new4 "SDA current process" and new "SDA current CPU".@ Type HELP PROCESS_CONTEXT for specific information about the> "SDA current process". Type HELP CPU_CONTEXT for specific, information about the "SDA current CPU".I Note: SET CPU is only valid when analyzing a crash dump. It is notF a valid command when analyzing the running system, becauseB 7 all the CPU-specific information may not be available.2 LOG SET LOG [file-spec]@ Sends a copy of all subsequent output to the file specified.J In addition, all subsequent output continues to be sent to SYS$OUTPUT.< If no file is specified, the default file is SYS$OUTPUT.? This remains in effect until you issue a SET NOLOG command.2 NOLOG SET NOLOGC Stops SDA from sending a copy of subsequent commands and output? to the file specified by the previ8ous SET LOG command. AllC subsequent commands and output will only be sent to SYS$OUTPUT.2 OUTPUT SET OUTPUT [file-spec]C Sends all subsequent output to the specified file. None of theD subsequent output is sent to SYS$OUTPUT. This remains in effectC until you issue another SET OUTPUT command. To redirect outputF to your terminal, issue a SET OUTPUT command specifying SYS$OUTPUT as the file-spec.H The default file specification is SYS$DISK:[default-di9r]SYSDUMP.LIS. 2 PROCESS SET PROCESS name /qualifierB Selects a process to be used as the new "SDA current process".D If the specified process is the current process on some CPU, SDA. also performs an implicit SET CPU command.E Subsequent SDA commands display information based on both the new? "SDA current process" and new "SDA current CPU". Type HELPC PROCESS_CONTEXT for specific information about the "SDA currentG process". Type HELP CPU_C:ONTEXT for specific information about the "SDA current CPU".L The process name must be a quoted string if it contains characters otherH than capital letters, numbers, dollar signs ($), or underscores (_).: The maximum size of the process name is 15 characters. For example:E SET PROCESS OPCOM ! Select process OPCOM as "SDA current process"F SET PROCESS "Batman" ! Select process Batman as "SDA current process" 3 /INDEX=nD Specifies the new current process by t ;he index into the system'sG list of software process control blocks (PCB). Alternatively, thisF argument can be the process identification (EPID or PID) longword,. from which SDA extracts the correct index. 3 /SYSTEML Specifies the new current process by the system process control block. J The system PCB and process header (PHD) are dummy structures that are G located in system space and contain the system working set, global A section table, global page table, an<d other system-wide data.2 RMS SET RMS=option-specB Allows specification of control blocks to be displayed by the ; SHOW PROCESS/RMS command. The option-spec has the form3 option or (option1,option2,....optionn) where option may be5 ALL [:ifi] Display all control blocks (default)& [NO] ASB Asynchronous Save Block& [NO] BDB Buffer Descriptor Block" [NO] BDBSUM BDB Summary Page [NO] BLB Buffer Lock Block" [NO] BLBSUM BL=B Summary Page$ [NO] CCB Channel Control Block [NO] DRC Directory Cache% [NO] FAB User 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 Header3 [NO] GBSB Global Buffer Synchronization Block [NO] IDX Index Descriptor# [NO] IFAB [:ifi] Internal Fab" [NO] IFB [:ifi] Internal Fab [NO] IRAB Internal Rab > [NO] IRB Internal Rab! [NO] JFB Journal File Block [NO] NAM Name block [NO] NWA Network Work Area [NO] RAB User Rab" [NO] RUB Recovery Unit Block( [NO] RUFB Recovery Unit File Block* [NO] RUSB Recovery Unit Stream Block [NO] RLB Record Lock Block1 [NO] SFSB Shared File Synchronization Block# [NO] WCB Window Control Block- [NO] XAB User Extended Attributes Block2 [NO] * Current (as opposed to "new") option* sp?ecification (includes ifi value)= ifi => expression IFI value (internal file identifier)< All (default) Use of this parameter restricts the1 display to the selected control blocks1 for only the file specified by the IFI value.ww­7›ľ2,‘Ÿ1 SHOWB Prints formatted data structures, other contents of memory, or? RMS display options. The following commands are available: SHOW CALL_FRAME SHOW CLUSTER SHO@W CONNECTIONS SHOW CPU SHOW CRASH SHOW DEVICE SHOW EXECUTIVE SHOW HEADER SHOW LOCK SHOW MACHINE_CHECK SHOW PAGE_TABLE SHOW PFN_DATA SHOW POOL SHOW PORTS SHOW PROCESS SHOW RESOURCES SHOW RMS SHOW RSPID SHOW SPINLOCKS SHOW STACK SHOW SUMMARY SHOW SYMBOL SHOW SYSLOA 2 CALL_FRAME# SHOW CALL_FRAME [starting_address] [/NEXT_FP]8 Displays the locations and contents of the longwords7 representing a CALLG or CALLS procedure Acall frame.A The starting address of the call frame is determined from theB specified starting_address, the NEXT_FP option, or by default.A The default starting address is the longword contained in the$ SDA current process FP register. 3 /NEXT_FP? Used to follow a chain of successive procedure call frames.= Displays the next call frame by using the contents of the< "Saved FP" from the previous displayed call frame as the, starting address of the next call fram Be. 2 CLUSTER3 SHOW CLUSTER [/CSID=n | /NODE=name] [/SCS] D Displays a view of the Vaxcluster, or the SCS cluster (with the F SCS qualifier). The VAXcluster is composed of VAXprocessor nodes A actively participating in the management of shared resources.B The SCS cluster (System Communication Services) is composed ofE all nodes participating in the Systems Communication ArchitectureD (SCA) Protocol. Generally, this is all nodes connected to a SCA bus, fCor example the CI. 3 /CSID=nB Displays cluster information on a particular VAXcluster member6 node which is specified by its cluster system id. 3 /NODE=nameF Displays cluster information on a particular VAXcluster member nodeD which is specified by its SCS node name. (mutually exclusive with the /CSID qualifier)3 /SCS8 Displays a view of the cluster as seen by the system" communications services (SCS). 2 CONNECTIONSA SHOW CONNECTIONS [ /ADDRESDS=n | /NODE=name | /SYSAP=name]C Displays all active connection descriptor tables (CDTs). A CDT 7 describes the connection between two SCS processes. 3 /ADDRESS=n0 Displays a connection descriptor table (CDT) specified by its address. 3 /SYSAP=nameD Displays all connection descriptor tables (CDTs) associated with the specified local SYSAP. 3 /NODE=nameD Displays all connection descriptor tables (CDTs) associated with' the specified remote SCS node naEme.  2 CPU SHOW CPU [cpu_id]D Displays information about the state of a CPU at the time of theC system failure. The CPU is specified by its hexadecimal CPU IDG number (a value between 00 and 1F), or by default. The default CPUE is the "SDA current CPU". The information displayed includes theG reason for the BUGCHECK exception, the currently executing process,C the current IPL, the contents of all the CPU registers, and any spinlocks that the F CPU owns.D SHOW CPU performs an implicit SET CPU command. The "SDA currentB CPU" will change to the CPU displayed by the SHOW CPU command.B The implicit SET CPU command also changes SDA process context.G The "SDA current process" will change to the current process on theE new "SDA current CPU". If there is no current process on the newH "SDA current CPU", then the "SDA current process" will be undefined,J and no process context information will be available until SDAG processD context is set to a specific process. Type HELP PROCESS_CONTEXTC for specific information about the "SDA current process". TypeJ HELP CPU_CONTEXT for specific information about the "SDA current CPU".J Note: SHOW CPU is only valid when analyzing a crash dump. It is notF a valid command when analyzing the running system, becauseB all the CPU-specific information may not be available.2 CRASH SHOW CRASHE Displays information about tHhe state of the system at the time ofI the system failure. This information includes the time of the systemF failure, the version of the operating system that was running, theG CPUs that were active and available in the system, a summary of the? BUGCHECK exception messages for all CPUs in the system, andA CPU-specific information about each active CPU in the system.E The CPU-specific information includes the reason for the BUGCHECKD exception, the currently executing I process, the current IPL, theK contents of all the CPU registers, and any spinlocks that the CPU owns.J SHOW CRASH performs an implicit SET CPU command. The new "SDA currentJ CPU" is the CPU that induced the system failure. The implicit SET CPUL command also changes SDA process context. The new "SDA current process"K is the process that was currently executing on the CPU that induced theG system failure. If there was no process currently executing on theJ CPU that J induced the system failure, then the "SDA current process" isI undefined, and no process context information will be available until5 SDA process context is set to a specific process.@ Type HELP PROCESS_CONTEXT for specific information about the> "SDA current process". Type HELP CPU_CONTEXT for specific, information about the "SDA current CPU".B Note: SHOW CRASH shows only the system-wide information whenF analyzing the running system, because all the CPU- Kspecific- information may not be available.2 DEVICE' SHOW DEVICE [name] [/ADDRESS=n]> Displays the I/O data structures associated with a device.G The device name can be a generic name (DB for example), which showsD all I/O structures associated with that device type; it can be aD specific name (DBA1 for example), which shows all I/O structuresG associated with that particular device; or it can be omitted, which? shows all the I/O structures for aLll devices in the system. 3 /ADDRESS=n? Displays the I/O data structures associated with the device@ which is specified by its unit control block (UCB) address. 2 EXECUTIVE SHOW EXECUTIVEC Displays the executive loaded images, their starting and ending' virtual addresses, and their sizes.2 HEADER SHOW HEADER) Displays the header of the dump file.2 LOCK! SHOW LOCK [lockid] [/ALL]A Displays lock data structures. Specify the lockidM to display- the lock identified by particular lockid.3 /ALL8 Displays all the lock data structures in the system.2 MACHINE_CHECK, SHOW MACHINE_CHECK [/QUALFIER] [CPU_NUMBER]B Displays the contents of the stored machine check stack frame.@ If no qualfier is specified a summary version of the machine# check stack frame is displayed. 2 The default CPU_NUMBER is the SDA current CPU.3 /FULLA A detailed description of each longword of the stored machNine check frame is displayed. 2 PAGE_TABLE, SHOW PAGE_TABLE [range] [/qualifier]F Displays the contents of the system page table and the global pageG table. You can display a range of page table entries or the entire system page table. I The range is a range of virtual addresses for which SDA is to displayH page table entries. You can specify a range as two addresses separ-H ated by a colon (:), or as an address and a length, in bytes, separ- Oated by a semicolon (;).3 /ALL> Lists both the global and system page tables. This is the default qualifier. 3 /GLOBAL Lists the global page table. 3 /SYSTEM Lists the system page table. 2 PFN_DATA+ SHOW PFN_DATA [pfn] [/qualifier...]: Displays a listing of the free, modified, and bad page- lists as well as the entire PFN database.9 If the pfn is specified, SDA displays the information- associated with that page frame number. P3 /ALLI Displays the free page list, modified page list, and bad page list asG as well as the entire PFN database. This qualifier is the default.3 /BAD Displays the bad page list.3 /FREE Displays the free page list. 3 /MODIFIED$ Displays the modified page list. 3 /SYSTEM= Displays the PFN database. The information is ordered by, page frame number, starting at PFN zero.2 POOL SHOW POOL [range] [/qualifier...]I Q Displays the contents of the nonpaged dynamic storage pool, and the L paged dynamic storage pool. You can display part or all of each pool. K If no range or qualifiers are specified, the default is SHOW POOL/ALL. C Optionally, it displays the non-paged pool history ring buffer.I The range is a range of virtual addresses within a pool that you wantG to display. You can specify a range as two addresses separated by aF colon (:), or as an address and a length, in bytesR, separated by a semicolon (;). 3 /NONPAGED/ Displays all the contents of nonpaged pool.3 /PAGED( Displays the contents of paged pool.3 /ALL@ Displays the contents of all of memory; this is the default.3 /FREEB Displays the entire contents, both allocated and available, of, the specified region or regions of pool. 3 /HEADERC Displays only the first 16 longwords of each block within pool. 3 /SUMMARYD Displays a summary of the pools Sor portions of pool specified byF the above qualifiers. This qualifier shows the different types of> blocks present, lists the total number of each, and shows,4 in decimal, the number of bytes in each block. 3 /TYPE=block-typeC Displays the blocks within pool that are of the specified type.3 /RING_BUFFERF Displays the contents of the non-paged pool history ring buffer ifD pool-checking has been enabled. Entries are displayed in reverseC chronological order; i T.e, most to least recent. This option is F mutually exclusive of all other SHOW POOL options. This option is I most useful when analyzing crash dumps. Output may not be consistent " when used on a running system. 3 /STATISTICSH Displays usage statistics about each lookaside list if pool-checkingF has been enabled. For each list, its queue header address, packet E size, attempts, fails and deallocations are displayed. These lastE three statistics are not maintained Uin an interlocked fashion forD performance reasons and therefore may drift slightly in a multi-I processor configuration. However, they do provide a good indicator of overall per-list activity.2 PORTS+ SHOW PORTS [/ADDRESS=n][/NODE=name]F Displays the port independent portion of the port descriptor tableA (PDT), particularly the list of system communication services (SCS) entry addresses. 3 /ADDRESS=nF Displays the port descriptor table (PDT) speVcified by the address.C For PE ports the Port block and Virtual Circuit Blocks are also shown. 3 /NODE=nameF Requires /ADDRESS qualifier. Shows only the Virtual Circuit Block* associated with the specifed node. 2 PROCESS+ SHOW PROCESS [name] [/qualifier...]E Displays the software and hardware context of any process in the F balance set, and performs an implicit SET PROCESS command. If theB process specified is current on some CPU, SDA also per Wforms anE implicit SET CPU command. Type HELP PROCESS_CONTEXT for specificG information about the "SDA current process". Type HELP CPU_CONTEXT9 for specific information about the "SDA current CPU".L If no options are given, the PCB of the "SDA current process" is printedL by default. If the process name is specified as "ALL", then information8 is shown for all processes that exist in the system.L The process name must be a quoted string if it contains characters oXtherH than capital letters, numbers, dollar signs ($), or underscores (_).: The maximum size of the process name is 15 characters.3 /ALLC This qualifier selects all other qualifiers available with thisF command. Thus, the maximum amount of information for the specified& process or processes is displayed. 3 /CHANNELI Displays the I/O channels assigned to the process, the address of theI window control block associated with that channel, and the specifica-; Ytion of the file or device associated with the channel. 3 /IMAGES9 Displays the images activated by the current process. 3 /INDEX=n F Displays the software and hardware context of the process which isD specified by the index of the software PCB into the system's PCBF vector. Alternately, this value could be the process identifica-D tion ( PID or EPID ), from which SDA extracts the correct index. 3 /LOCK6 Displays the locks owned by the current procesZs. 3 /PAGE_TABLES [range]E Displays the page tables of the program and control regions. TheE range is a range of virtual addresses within a pool that you wantE to display. You can specify a range as two addresses separated byF a colon (:), or as an address and a length, in bytes, separated by a semicolon (;).% An accepted abbreviation is /PPT.3 /PCB9 Produces a list of the data contained in the software9 process control block (PCB). The CPU ID is [displayed: as part of the process state if the process is current@ on some CPU (e.g. CUR 03 for the current process on CPU 03)." This qualifier is the default.3 /PHD7 Lists information included in the process header. 3 /PROCESS_SECTION_TABLE C Lists the information contained in the process section table. % An accepted abbreviation is /PST. 3 /REGISTERSG Lists the saved hardware context of the process. If the process isE the current process at \ the time of the system failure, the active! registers are also displayed.3 /RMS[=option-spec]K Displays the RMS control blocks specified by the option-spec or by the L last SET RMS command. If the option-spec is specified, it is valid for F only that command and has no effect on the options selected by theI last SET RMS command. See the SET RMS command for the format of the J option-spec. The default option-spec is to display all RMS structures. 3 /SYSTEM ]4 Displays the system process control block (PCB).3 /WORKING_SET_LIST 2 Displays the working set list for the process.% An accepted abbreviation is /WSL. 2 RESOURCES$ SHOW RESOURCES [/qualifier] ' Displays resource data structures. 3 /ALL+ Displays all resources in the system. " This qualifier is the default. 3 /LOCKID=nD Displays the resource data associated with the lock whose lockid is n.2 RSPID" SHOW RSP ^ID [/CONNECTION=n]G Displays all entries in the response-id descriptor table which are J in use. The VMS System Communication Services (SCS) provide response-D ids (RSPIDs) as a mechanism for matching request completion mes-D sages to the original requests. Generally, the original request; is represented by a class driver request packet (CDRP).3 /CONNECTION=nC Displays all entries in the response-id descriptor table which ? are associated with this connection _descriptor table (CDT).2 RMS SHOW RMSF Displays the RMS display options currently selected by the SET RMS; command (only applies to the SHOW PROCESS/RMS command). 2 SPINLOCKS& SHOW SPINLOCKS [name] [/qualifier...]A Displays the multiprocessing synchronization data structures.E Specify a name to display a particular synchronization structure. 3 /ADDRESS=n= Display only the lock structure at the specified address.3 /BRIEF9 Format the displayed s`pinlocks into a compacted form. 3 /DYNAMIC> Display only the dynamic system spinlocks. These spinlocksE coordinate multiprocessor activity throughout the I/O subsystems.3 /FULL@ Display additional information about the specified spinlocks# including the access histories. 3 /INDEX=nC Display only the system static spinlock of the specified index.3 /OWNED1 Display only those spinlocks which are owned. 3 /STATIC= Display only the system statica spinlocks. These spinlocksA coordinate multiprocessor activity central to the processors.2 STACK SHOW STACK [range] [/qualifier...]E Displays the location and contents of the four process stacks and1 the interrupt stack of the "SDA current CPU".H You can express the range of memory locations you want to display asJ two locations separated by a colon (:), or as a location and a length,+ in bytes, separated by a semicolon (;).J If no options bare specified, the current operating stack is displayed.3 /ALLF Displays the location and contents of the four process stacks and 2 the interrupt stack for the "SDA current CPU". 3 /EXECUTIVE> Displays the executive mode stack for the current process. 3 /INTERRUPT@ Displays the interrupt mode stack for the "SDA current CPU". 3 /KERNEL; Displays the kernel mode stack for the current process. 3 /SUPERVISOR? Displays the supervisor mode stack for the ccurrent process.3 /USER9 Displays the user mode stack for the current process. 2 SUMMARY SHOW SUMMARY [/IMAGE]A Displays a list of all processes in the system at the time ofE the system crash. The CPU ID is displayed as part of the processA state for processes that are current on some CPU (e.g. CUR 03' for the current process on CPU 03).3 /IMAGEA Displays the name of the image being run by each process, if  available. 2 SYMBOL d SHOW SYMBOL name [/ALL]5 Displays the value of the specified system symbol; and the contents of that memory location (if possible).3 /ALL? Displays information on all the symbols that start with theB string you specified in the command parameter and are defined  in the SDA symbol table. 2 SYSLOA SHOW SYSLOAI Formats the __$IDENTS psect for the SYSLOAnnn.EXE image. This psect E contains identifying information for each source code module e thatC makes up each SYSLOAnnn.EXE image. The primary use of the SHOWG SYSLOA command is for internal crash dump analysis to determine theG revisions of source modules used to create the SYSLOAnnn.EXE image.I Not all system types implement the SHOW SYSLOA command. Some systemsF do not implement the __$IDENTS psect at all. Some systems supportJ the notion of the __$IDENTS psect, but did not place all the necessaryI information into the psect when the image was builft. This results in2 an __$IDENTS psect whose contents are invalid.I If present, the __$IDENTS psect occupies the last one to three blocks of the SYSLOAnnn.EXE image.ww­÷,×2,‘Ÿ1 SPAWN' SPAWN [/qualifier...] [command]D Creates a subprocess of the current process. The context of theC subprocess is copied from the current process. If 'command' is? specified, that command will be executed by the subprocess.2 /INPUT=file-specE Sp gecifies an input file containing one or more command strings toD be executed by the spawned subprocess. If you specify a commandD string along with an input file, the command string is processed> before the commands in the input file. Once processing is+ complete, the subprocess is terminated.2 /NOLOGICAL_NAMESE Specifies that the logical names of the parent process are not toG be copied to the subprocess. The default is that the logical names7 of the parent prhocess are copied to the subprocess. 2 /NOSYMBOLSA Specifies that the DCL global and local symbols of the parentC process are not to be passed to the subprocess. The default is4 that these symbols are passed to the subprocess. 2 /NOTIFYB Specifies that a message is to be broadcast to SYS$OUTPUT whenC the subprocess completes or aborts. The default is that such a& message is not sent to SYS$OUTPUT. 2 /NOWAITD Specifies that the system is not to wait unt iil the subprocess isB completed before allowing more commands to be specified. ThisB qualifier allows you to specify new commands while the spawnedB subprocess is running. If you specify /NOWAIT, you should useG /OUTPUT to direct the output of the subprocess to a file to preventJ your terminal from being used by more than one process simultaneously.D The default is that the system will wait until the subprocess is< completed before allowing more commands to be specifiejd.2 /OUTPUT=file-specH Specifies an output file to which the results of the SPAWN operationD are written. You should specify an output other than SYS$OUTPUTC whenever you specify /NOWAIT to prevent output from the spawned@ subprocess from being displayed while you are specifying newC commands. If you omit the /OUTPUT qualifier, output is written% to the current SYS$OUTPUT device.2 /PROCESS=process_nameI Specifies the name of the subprocess to be created. k The default name$ of the subprocess is USERNAME_n.ww­ˇKŁ2,‘Ÿ 1 Symbols= Symbols are composed of up to 31 letters and numbers, andH can include the dollar sign ($) and underscore (_) characters. WhenM you invoke SDA, it reads in the global symbols from SYS.STB, the system'sJ symbol table, and from REQSYSDEF.STB, a required subset of the symbolsL in the file SYSDEF.STB. You can add other symbols to SDA's symbol tableM by using the DEFINE and READ comlmands. SDA also predefines the following5 list of symbols which can be used in expressions: . Current location G ^X80000000 (system space) H ^X7FFE0000 (control region) R0-R11 General registers AP Argument pointer FP Frame pointer SP Stack pointer  PC Program counter PSL Processor status longword KSP Kernel stack pointer ESP Executive stack pointer SSP Supervisor stack pointer USP User stack pointer P0BR P0 Base Register P0LR P0 Length Register P1BmR P1 Base Register P1LR P1 Length Register!'! Program portion of SDA Help commands.!ww­—łŘ2,‘Ÿ 1 VALIDATE 1 VALIDATE QUEUE [address] [/SELF_RELATIVE]N Validates the integrity of the specified queue by checking the pointers inM the queue. The address is the address of an element of the queue. If theN address is not specified, then the last element address that was specifiedJ is used. If a dot is specified as the address, then the last evaluatedA expression is used as the address of an element of the queue.2 /SELF_RELATIVE? Specifies that the selected queue is a self-relative queue.ww