% Librarian I01-42#@9I*@9< $$$5 uKATTACH :CLUE_ExtensionLZCOLLECTNrCOPY CPU_ContextYDEFINEE$ Display_ModecDUMPj,EVALUATEoEXAMINEJExecute_Command{$EXIT| ExpressionsExtension_RoutinesI FLT_Extension{FORMATHELP InitializationMAPMODIFYOOCLA_Extension OperationGPage_ProtectionstREADREPEAT~SEARCHjSET`SHOWSPAWN&SymbolsUNDEFINEVALIDATEWAIT6Process_ContextREADREPEAT~SEARCHjSET`SHOWSPAWN]" SPL_Extension&SymbolsUNDEFINEVALIDATEWAITyL XFC_Extension+Page_Protections XFC_Extension $@91 Initialization@ When you invoke SDA, by using the DCL commands ANALYZE/SYSTEM= or ANALYZE/CRASH_DUMP, SDA first executes commands from an? initialization file if one exists, before prompting the userD for commands. The initialization file is commonly used to read in2 symbol tables and define keys for SDA commands.C First, SDA searches for an initialization file using the logicalB name SDA$INIT. If this file is not found, then SDA searches forC the f ile SYS$LOGIN:SDA.INIT. If no initialization file is found,D or after the initialization file SDA commands have been executed,A SDA starts accepting interactive user commands from the "SDA>" prompt. ww/$@9 1 Operation; You execute the System Dump Analyzer program by means of? commands. SDA reads these commands from SYS$INPUT, which canC be your terminal or a command file. You can send the output to a file or to your terminal., Any of the follow ing commands invoke SDA:! $ ANALYZE/CRASH_DUMP dump_file $ ANALYZE/SYSTEM $ RUN SYS$SYSTEM:SDA= When a fatal BUGCHECK error causes the system to fail, the@ system writes the current state of the hardware registers andD all physical memory to a directory file called SYSDUMP.DMP in theC SYSEXE directory on the system disk. Alternatively, the system's> paging file may be specified as the destination of the dump@ information instead of SYSDUMP.DMP. This is useful on s ystemsC that have constrained disk space. If there is insufficient space? on the system disk, the file SYSDUMP.DMP may be created on a. separate disk (dump off system disk, DOSD).C Note that pages currently in the paging file (paged out) are notC saved because the paging file is too large. Although these pages@ are lost from the crash dump, the effect on debugging will be@ minimal because most pages relating to the system failure areA still in physical memory when the fai lure occurs, and are thusC saved in the dump file. Of course, if the paging file is used as7 a dump file, the pages that are there are wiped out.A SDA is always run during system startup. When executed at thisB time, SDA first checks to see if the system has just failed. IfB so, SDA executes the CLUE HISTORY command to record information? from the system dump. If the system has not just failed, SDA exits.B HP recommends that the system manager set up the system-start upA file so that SDA collects additional information during system= startup. The required SDA commands should be included in aB command procedure referenced by the CLUE$SITE_PROC logical name$ in the system logical name table.A The following example shows the SDA commands typically invoked? via CLUE$SITE_PROC during system startup. The most important> of these is the COPY command, which copies the dump file toA another file. This operation is recommended because the syste m@ always overwrites this file in the event of a system failure,@ and the record of the previous failure is lost unless another? copy exists. Furthermore, if the paging file was used as theA dump file, the pages that contain the dump information are notA available for paging until they are explicitly released by the COPY command. !' ! SYS$MANAGER:SAVEDUMP.COM !E ! Print dump listing and save dump if system just failed ! F ! Add the following command to SYS$MANAGER:SYLOGICALS.COMC ! to invoke these SDA commands automatically on reboot& ! after a system failure: !G ! $ DEFINE /SYSTEM CLUE$SITE_PROC SYS$MANAGER:SAVEDUMP.COM !@ SET OUTPUT DISK1:SYSDUMP.LIS ! Create listing fileB READ/EXEC ! Read symbols into the SDA symbol table5 SHOW CRASH ! Display crash information. SHOW STACK ! Show current stack+ SHOW SUMMARY ! List all active% ! processesD SHOW PROCESS/PCB/PHD/REG ! Display current processI COPY SYS$SYSTEM:SAVEDUMP.DMP ! Save dump file (always last) EXIT> If you need more information on the system failure, you can@ execute SDA interactively or add SDA commands to this startup file. ww/$@91 CPU_Context> In a uniprocessor system there exists only one CPU, and  the< concept of SDA CPU context is not an issue. However for a; multiprocessor system with more than one active CPU, SDA? must maintain the concept of CPU context to provide a way of> displaying information bound to a specific CPU, such as the= reason for the BUGCHECK exception, the currently executing? process, the current IPL, the contents of CPU registers, andD any owned spinlocks. When SDA is first invoked to analyze a crashA dump, the "SDA current CPU" is the CPU that  induced the system failure.D The CPU context can be changed by several different SDA commands.@ When the CPU context is changed, the "SDA current process" isC changed to the current process on the "SDA current CPU" in orderA to keep CPU context and process context synchronized. If thereC is no current process on the "SDA current CPU", the "SDA currentD process" is undefined, and no process context information will beD available until SDA process context is set to a specific process.D Type HELP PROCESS_CONTEXT for specific information about the "SDA current process".; The following SDA commands change the "SDA current CPU":A SET CPU cpu_id ! Changes the "SDA current CPU" to CPU cpu_idA SHOW CPU cpu_id ! Changes the "SDA current CPU" to CPU cpu_id> SHOW CRASH ! Changes the "SDA current CPU" to the CPU5 ! that induced the system failureD The following commands define the "SDA current CPU" to be the CPUC on which the process is current, or the CPU on which the process was last executed: SET PROCESS process-name% SET PROCESS/ADDRESS=pcb-address SET PROCESS/INDEX=nn SET PROCESS/NEXT SHOW PROCESS process-name& SHOW PROCESS/ADDRESS=pcb-address SHOW PROCESS/INDEX=nn SHOW PROCESS/NEXT# VALIDATE PROCESS process-name* VALIDATE PROCESS/ADDRESS=pcb-address VALIDATE PROCESS/INDEX=nn VALIDATE PROCESS/NEXT6 No other SDA commands affect the "SDA current CPU".& NOTEA When analyzing the running system, the SET CPU and SHOW CPUA commands are not allowed, since SDA does not have access to= all the CPU-specific information on the running system. ww/$@91 Process_ContextB In a uniprocessor system, there are two concepts related to SDA> process context-the process that is current on the CPU, andA the process in whose contex t process-specific SDA commands are@ interpreted. Either these two processes are the same, or theyC are not. However, for a multiprocessor system with more than oneC active CPU, the notion of SDA process context changes to provideA a way of displaying information relevant to a specific processC both when the process is current on some processor, and when the process is not.@ The SDA process context can be changed as a result of several< different SDA commands. When the "SDA current process" is@ changed, the "SDA current CPU" is changed to that CPU to keepA CPU context and process context synchronized. When the SDA CPUD context is changed to a CPU that has no current process, the "SDAD current process" is undefined, and no process context informationC will be available until SDA process context is set to a specificD process. Type HELP CPU_CONTEXT for specific information about the "SDA current CPU".C The SDA commands SET PROCESS, SHOW PROCESS, and VALIDATE PROCESSC all change the "SDA current process" to be the process specified by one of the following:D process_name Changes the "SDA current process" to the process. specified by process_name.D /ADDRESS=x Changes the "SDA current process" to the process' with PCB address x.D /INDEX=n Changes the "SDA current process" to the process! with index n.A /NEXT Changes the "SDA current process" to the next9 process in the system's process list.C /SYSTEM Changes the "SDA current process" to the system process.D The following commands change the SDA process context if the "SDAC current process" is not the current process on the selected CPU:D SET CPU cpu_id Changes the "SDA current process" to the current* SHOW CPU cpu_id process on CPU cpu_id.D SHOW CRASH Changes the "SDA current process" to the current> process on the CPU that induced the system failure.: No other SDA commands affect the "SDA current process".& NOTE9 When analyzing a running system, CPU context is not> used because all the CPU-specific information may not be available. ww/$@91 Expressions? You can use expressions as parameters for some SDA commands,D such as SEARCH and EXAMINE. To create expressions, use any of the following elements: o Numerals o Radix operators& o Arithmetic and logical operators o Precedence operators o Symbols< Numerals are one possible component of an expression. TheA following paragraphs describe the use of the other components.D Radix operators determine which numeric base SDA uses to evaluate? expressions. You can use one of the three radix operators to? specify the radix of the numeric ex pression that follows the operator: o ^X (hexadecimal) o ^O (octal) o ^D (decimal)= The default radix is hexadecimal. SDA displays hexadecimal> numbers with leading zeros and decimal numbers with leading spaces.; There are two types of arithmetic and logical operators:= o Unary operators affect the value of the expression that follows them.C o Binary operators combine the operands that precede and follow them.= In evaluati!ng expressions containing binary operators, SDAD performs logical AND, OR, and XOR operations, and multiplication,8 division, and arithmetic shifting before addition and> subtraction. Note that the SDA arithmetic operators perform) integer arithmetic on 64-bit operands. 2 Unary_Operators5 The following table describes the unary operators. Operator Action7 # Performs a logical NOT of the expression.9 + Makes the value of the expression positi "ve.9 - Makes the value of the expression negative.D @ Evaluates the following expression as an address, then= uses the contents of that address as its value.C ^Q Specifies that the size of the field to be used as anE address is a quadword when used with the unary operator @.C ^L Specifies that the size of the field to be used as anE address is a longword when used with the unary operator # @.C ^W Specifies that the size of the field to be used as anD address is a word when used with the unary operator @.C ^B Specifies that the size of the field to be used as anD address is a byte when used with the unary operator @.C ^P Specifies a physical address when used with the unary operator @.B ^V Specifies a virtual address when used with the unary operator @.< G Adds $ FFFFFFFF 80000000(16) to the value of theA expression. The unary operator G corresponds to theD first virtual address in S0 system space. For example,> the expression GD40 can be used to represent the, address FFFFFFFF 80000D40(16).? H Adds 7FFE0000(16) to the value of the expression.C The unary operator H corresponds to a convenient baseC address in P1 space (7FFE0000(16)). You can therefore@ % refer to an address such as 7FFE2A64(16) as H2A64.C I Fills the leading digits of the following hexadecimal6 number with hex value of F. For example: SDA> eval i800000002 Hex = FFFFFFFF.80000000 Decimal = -2147483648 G> SYS$PUBLIC_VECTORS_NPRO 2 Binary_Operators6 The following table describes the binary operators. Operator Action + Addition - Subtraction * Mult&iplication & Logical AND | Logical OR \ Logical XOR@ / Division - In division, SDA truncates the quotient@ to an integer, if necessary, and does not retain a remainder.! @ Arithmetic shiftingB "." Catenates two 32-bit values into a 64-bit value. For example: SDA> eval fe.50000> Hex = 000000FE00050000 Decimal = 1090922020864 2 Precedence_Operat'ors< SDA uses parentheses as precedence operators. ExpressionsD enclosed in parentheses are evaluated first. SDA evaluates nested@ parenthetical expressions from the innermost to the outermost pairs of parentheses. wwV$@9 1 SymbolsD An SDA symbol can represent several value types. It can representA a constant, a data address, a procedure or function descriptorB address, or a routine address. Constants are usually offsets ofA a particular field in a d (ata structure; however, they can also: represent constant values such as the BUG$_xxx symbols.@ Symbols are composed of up to 31 letters and numbers, and canB include the dollar sign ($) and underscore (_) characters. WhenB you invoke SDA, it reads in the global symbols from the symbolsA table section of SYS$BASE_IMAGE.EXE, and from REQSYSDEF.STB, aA required subset of the symbols in the file SYSDEF.STB. You canB add other symbols to SDA's symbol table by using the DEFINE and ) READ commands.? All address symbols identify memory locations. SDA generallyA does not distinguish among different types of address symbols.> However, for a symbol identified as the name of a procedure: descriptor, SDA takes an additional step of creating an@ associated symbol to name the code entry point address of theD procedure. It forms the code entry point symbol name by appending. _C to the name of the procedure descriptor.A Also, SDA substitutes the code entr*y point symbol name for theD procedure descriptor symbol when you enter the following command:0 SDA> EXAMINE/INSTRUCTION procedure-descriptor, For example, enter the following command:$ SDA> EXAMINE/INSTRUCTION SCH$QAST* SDA displays the following information:% SCH$QAST_C: SUBQ SP,#X40,SPD Now enter the EXAMINE command but do not specify the /INSTRUCTION qualifier, as follows: SDA> EXAMINE SCH$QAST* SDA displays the following information:, + SCH$QAST: 0000002C.00003009 ".0..,..."D This display shows the contents of the first two longwords of the procedure descriptor.C Note that there are no routine address symbols on Alpha systems,: except for those in MACRO-64 assembly language modules.< Therefore, SDA creates a routine address symbol for everyB procedure descriptor it has in its symbol table. The new symbolB name is the same as for the procedure descriptor except that it- has an _C appended to the end o,f the name. 2 Sources_of_Symbols2 SDA obtains its information from the following: o Images (.EXE files)+ o Image symbol table files (.STB files) o Object filesD SDA also defines symbols to access registers and to access common data structures.B The only images with symbols are shareable images and executive? images. These images contain only universal symbols, such as constants and addresses.C The image symbol table files are produced by -the linker with theB /SYMBOLS qualifier. These files normally contain only universal@ symbols, as do the executable images. However, if the SYMBOL_? TABLE=GLOBALS linker option is specified, the .STB file alsoD contains all global symbols defined in the image. See the OpenVMS. Linker Utility Manual for more information.B Symbols can include lowercase letters. Commands that manipulateD symbols (such as DEFINE, SHOW SYMBOL, and UNDEFINE) require these= symbols to be enclosed .within quotation marks ("symbol" ).@ Some SDA commands predefine additional symbols. This includesD SET CPU and SET PROCESS (as shown in the following subtopics) and% also SHOW DEVICE and SHOW CLUSTER. 3 Modules_Containing_Symbols= Object files can contain global constant values. An object? file used with SDA typically contains symbol definitions forA data structure fields. Such an object file can be generated byC compiling a MACRO-32 source module that invokes spe /cific macros.A The macros, which are typically defined in SYS$LIBRARY:LIB.MLBC or STARLET.MLB, define symbols that correspond to data structureA field offsets. The macro $UCBDEF, for example, defines offsets> for fields within a unit control block (UCB). OpenVMS Alpha? and Integrity servers provide several such object modules inD SDA$READ_DIR, as listed in the following table. For compatibilityA with OpenVMS VAX, the modules' file types have been renamed to .STB.% F 0ile Contents< DCLDEF.STB Symbols for the DCL interpreter? DECDTMDEF.STB Symbols for transaction processing< GLXDEF.STB Symbols for OpenVMS Galaxy data' structures< IMGDEF.STB Symbols for the image activator; IODEF.STB I/O database structure symbols? NETDEF.STB Symbols for DECnet data structures5 REQSYSDEF.STB Required symbols 1for SDAA RMSDEF.STB Symbols that define RMS internal and> user data structures and RMS$_xxx- completion codesD SCSDEF.STB Symbols that define data structures for; system communications services< SYSDEF.STB Symbols that define system dataC structures, including the I/O databaseB TCPIP$NET_GLOBALS.STB* Data structure definiti 2ons for TCP/IPC internet driver, execlet, and ACP data' structuresB TCPIP$NFS_GLOBALS.STB* Data structure definitions for TCP/IP' NFS serverB TCPIP$PROXY_GLOBALS.STB* Data structure definitions for TCP/IP* proxy execletB TCPIP$PWIP_GLOBALS.STB* Data structure definitions for TCP/IPA PWIP driver, and ACP data structuresB TCPIP$TN_GLOBALS.3STB* Data structure definitions for TCP/IP= TELNET/RLOGIN server driver data' structures@ * The TCPIP$*.STB files are available only if TCP/IP has beenD installed. These files are found in SYS$SYSTEM, so that all filesD are not automatically read in when you issue a READ/EXEC command. $3 Symbols_Defined_on_InitializationC The following table lists symbols that SDA defines automatically on initialization.* A 4SN Address space number> AST Both the asynchronous system trap statusB and enable registers: AST<3:0> = AST enable;+ AST<7:4> = AST status? BR0 through BR7 Branch registers (Integrity servers only)+ CYCLE_COUNTER Process cycle counter- ESP Executive stack pointerA EBSP Executive register stack pointer (Integrity# servers only)+ FEN 5Floating-point enable) FP Frame pointer (R29); FP0 through FP31 Floating-point registers (Alpha only)A FP0 through FP127 Floating point registers (Integrity servers only)B FPCR Floating-point control register (Alpha only)? FPSR Floating-point status register (Integrity# servers only)B GP Global pointer (R1) (Integrity servers only)@ G FFFFFFFF.8000000 60(16), the base address of" system spaceA H 00000000.7FFE0000(16), a base address in P1 spaceC I FFFFFFFF.FFFFFFFF(16), also fills the leadingC digits of a hexadecimal number with the value of F* KSP Kernel stack pointer> KBSP Kernel register stack pointer (Integrity# servers only)8 PAL_RSVD PAL rese 7rved area in process HWPCB% PC Program counter+ PCC Process cycle counter& PS Processor status. PTBR Page table base register4 R0 through R31 Integer registers (Alpha only)@ R0 through R127 Integer registers (Integrity servers only)* SCC System cycle counter8 SP Current stack pointer of a process. SSP Supervisor stack pointerB SBSP Supervisor r 8egister stack pointer (Integrity# servers only)? SYSPTBR Page table base register for system space( USP User stack pointerD UBSP User register stack pointer (Integrity servers only)D VIRBND Virtual Address Boundary for RADs (Alpha only) 3 Symbols_Defined_by_SET_CPU@ After a SET CPU command is issued (for analyzing a crash dump@ only), the symbols defined in the following table9 are set for that CPU.% CPUDB Address of CPU database/ IPL Interrupt priority level register2 MCES Machine check error summary register1 PCBB Process context block base register< PRBR Processor base register (CPU database address)% RAD Address of RAD database0 SCBB System control block base register0 SISR Software interrupt status register. VPTB Virtual Page Table Base register !3 Symbols_Defined_by_SET_ :PROCESSC After a SET PROCESS command is issued, the symbols listed in the0 following table are defined for that process., ARB Address of access rights blockC FRED Address of floating-point register and execution data block. JIB Address of job information block0 KTB Address of the kernel thread block, ORB Address of object rights block. PCB Address of process control block' PHD Address of process header/ ; PSB Address of persona security block 2 Initialization_of_Symbols@ On initialization, SDA reads the universal symbols defined byD SYS$BASE_IMAGE.EXE. For every procedure descriptor address symbolB found, a routine address symbol is created (with _C appended to the symbol name).C SDA then reads the object file REQSYSDEF.STB. This file contains> data structure definitions that are required for SDA to run> correctly. It uses these symbols to access some of the da <ta> structures in the crash dump file or on the running system.@ Finally, SDA initializes the process registers defined in theC SET PROCESS command and executes a SET CPU command, defining the symbols as well. 2 Using_Symbols? There are two major uses of the address type symbols. First,@ the EXAMINE command employs them to find the value of a known@ symbol. For example, EXAMINE CTL$GL_PCB finds the PCB for the@ current process. Then, certain SDA commands (such as =EXAMINE,? SHOW STACK, and FORMAT) use them to symbolize addresses when generating output.@ When the code for one of these commands needs a symbol for an= address, it calls the SDA symbolize routine. The symbolize= routine tries to find the symbol in the symbol table whose< address is closest to, but not greater than the requested> address. This means, for any given address, the routine may? return a symbol of the form symbol_name+offset. If, however,A the offset is g >reater than 0FFF(16), it fails to find a symbol for the address.@ As a last resort, the symbolize routine checks to see if thisA address falls within a known memory range. Currently, the only> known memory ranges are those used by the OpenVMS executiveD images and those used by active images in a process. SDA searchesB through the executive loaded image list (LDRIMG data structure)@ and activated image list (IMCB data structures) to see if theC address falls within any of ? the image sections. If SDA does find= a match, it returns one of the following types of symbols:! executive_image_name+offset! activated_image_name+offsetC The offset is the same as the image offset as defined in the map file.D The constants in the SDA symbol table are usually used to displayA a data structure with the FORMAT command. For example, the PHDD offsets are defined in SYSDEF.STB; you can display all the fields1 of the PHD by entering the follow@ing commands:$ SDA> READ SDA$READ_DIR:SYSDEF.STB# SDA> FORMAT/TYPE=PHD phd_address "2 Address_Resolution_with_SymbolsD In OpenVMS, executive and user images are loaded into dynamically= assigned address space. To help you associate a particular? virtual address with the image whose code has been loaded at/ that address, SDA provides several features: o The SHOW EXECUTIVE commandD o The symbolization of addresses, described in the Using_Symbols helpA topic o The READ command9 o The SHOW PROCESS command with the /IMAGES qualifier o The MAP command? The OpenVMS executive consists of two base images, SYS$BASE_> IMAGE.EXE and SYS$PUBLIC_VECTORS.EXE, and a number of otherA separately loadable images. Some of these images are loaded onB all systems, while others support features unique to particularA system configurations. Executive images are mapped into system& space during system initialization.D By Bdefault, a typical executive image is not mapped at contiguous= virtual addresses. Instead, its nonpageable image sections? are loaded into a reserved set of pages with other executiveC images' nonpageable sections. The pageable sections of a typical@ executive image are mapped contiguously into a different part@ of system space. An image mapped in this manner is said to beA sliced. A particular system may have system parameters defined3 that disable executive image slicing al Ctogether.A Each executive image is described by a data structure called aC loadable image data block (LDRIMG). The LDRIMG specifies whether@ the image has been sliced. If the image is sliced, the LDRIMG@ indicates the beginning of each image section and the size ofC each section. All the LDRIMGs are linked together in a list that? SDA scans to determine what images have been loaded and intoC what addresses they have been mapped. The SHOW EXECUTIVE commandA displays a li Dst of all images that are included in the OpenVMS executive.< Each executive image is a shareable image whose universal? symbols are defined in the SYS$BASE_IMAGE.EXE symbol vector.? On initialization, SDA reads this symbol vector and adds its- universal symbols to the SDA symbol table.> Executive image .STB files define additional symbols within? an executive image that are not defined as universal symbols@ and thus are not in the SYS$BASE_IMAGE.EXE symbol vector. Y Eou@ can enter a READ/EXECUTIVE command to read symbols defined inA all executive image .STB files into the SDA symbol table, or a? READ/IMAGE filespec command to read the .STB for a specified image only.= To obtain a display of all images mapped within a process,C execute a SHOW PROCESS/IMAGE command. See the description of theC SHOW PROCESS command for additional information about displaying2 the hardware and software context of a process.B You can also identify t Fhe image name and offset that correspondD to a specified address with the MAP command. With the information@ obtained from the MAP command, you can then examine the image= map to locate the source module and program section offset corresponding to an address. ww}$@91 Display_Mode= Some SDA commands produce more output than will fit on oneB screen. In this situation, SDA enters display mode, and outputs: the screen overflow prompt at the bottom of theG screen: Press RETURN for more. SDA>@ If the RETURN key is pressed, SDA will continue the output ofD the command it was processing. If an EXIT command is entered, SDAC will leave display mode, abort the command it was processing andD output a regular SDA prompt. If any other command is entered, SDAD will leave display mode, abort the command it was processing, and$ begin processing the new command.B SDA will leave display mode once a continued command completes.H ww}$@91 Page_Protections@ Page protections and access rights are different on Alpha and@ Integrity server systems. They are visible in output from the following commands: SHOW PAGE SHOW PROCESS/PAGE EXAMINE/PTE EVALUATE/PTE< Due to system differences, there is a need to distinguish< "Write+Read+Execute" from "Write+Read" and to distinguish "Read+Execute" from "Read".? On an Alpha system, W=W+R+E and R=R+E but on an I IA64 system,? additional w and r indicators are introduced for non-execute cases.A On Alpha, page protection is described by 8 bits- one Read bitD for each mode, and one Write Bit. Therefore in the "Read" column,D there might be KESU (read access in all modes) or K- (read accessB in Kernel mode only) or NONE (no read access). Similarly in theA "Writ" column. Not all combinations of the 8 bits are possibleD (for example, Write access for a mode implies Read access at thatJ< mode and both Read and Write access for all inner modes).B On Integrity servers, page protection is described by 5 bits, aC combination of the Access Rights and Privilege Level fields. SDAA interprets these with a single character to describe access in each mode, as follows: Code Meaning r Read w Read, Write R Read, Execute W Read, Write, Execute X Execute K Promote to Kernel E Promote to Executive S ProKmote to Supervisor - No accessD For example WRRR means Kernel mode has Read+Write+Execute access;, all other modes have Read+Execute access. ww}$@91 Execute_CommandC Causes SDA to execute SDA commands contained in a file. Use this< command to execute a set of frequently used SDA commands. Format @filespec 2 Parameter filespecD Name of a file that contains the SDA commands to be executed. The default file type is .CLOM. ww٤$@9 1 ATTACHA Switches control of your terminal from your current process toA another process in your job (for example, one created with the SDA SPAWN command). Format# ATTACH [/PARENT] process-name 2 Parameter process-name= Name of the process to which you want to transfer control. 2 Qualifier /PARENTA Transfers control of the terminal to the parent process of the? current process. When you speMcify this qualifier, you cannot& specify the process-name parameter. ww٤$@9 1 COLLECT? Collect file identification to file name translation data onD both OpenVMS Alpha and OpenVMS for Integrity servers, and process5 unwind data only on OpenVMS for Integrity servers. Format COLLECT [qualifiers] 2 Qualifiers /LOG? Displays information on the progress of the COLLECT command,= for example, the name of the process being scanneNd, or (on? Integrity servers) the name of an image whose unwind data is being collected. /SAVE /SAVE [= file name]C Writes collection data to a separate file. By default, a file ofD type .COLLECT with the same name as the dump file will be created* in the same directory as the dump file. /UNDO> Removes all the file or unwind data from an earlier COLLECTC command from SDA's memory. COLLECT/UNDO does not affect the fileC or unwind data already Oappended to the dump file being analyzed,4 or already written to a separate collection file. ww٤$@91 COPY8 Copies the contents of the dump file to another file. Format* COPY [/qualifier...] output-filespec 2 Parameter output-filespecB Name of the device, directory, and file to which SDA copies the0 dump file. The default file specification is:( SYS$DISK:[default-dir]filename.DMP> SYS$DISK and [default-dir] represent Pthe disk and directoryC specified in your last DCL command SET DEFAULT. You must specify a file name. 2 Qualifiers /COLLECT /COLLECT /NOCOLLECT@ Causes SDA to collect (or not collect) file identification or@ unwind data from the current system and append it to the copy being created.B For more details, see the Description of the COLLECT command in2 in the HP OpenVMS System Analysis Tools Manual. /COMPRESSC Causes SDA to compres Qs dump data as it is writing a copy. If theD dump being analyzed is already compressed, then SDA does a directB COPY, and issues an informational message indicating that it is$ ignoring the /COMPRESS qualifier. /CONFIRMC Causes SDA to prompt for which processes to copy when performing< a Partial Dump Copy. This qualifier can only be used whenB /PARTIAL=PROCESS=option is specified. For each possible processD in the set, SDA prompts as follows, where the default response Ris? No and only a single character response is needed otherwise:, Copy process "process-name"? (Y/[N]/A/Q): Where the response:* YES Includes the process in the copy., NO Excludes the process from the copy.F ALL Includes the process and all remaining processes in the copy.H QUIT Excludes the process and all remaining processes from the copy. /DECOMPRESSA Causes SDA to decompress dump data as it is writing a copy. IfC the dump being analyzed is alreSady decompressed, then SDA does aC direct COPY, and issues an informational message indicating that, it is ignoring the /DECOMPRESS qualifier. /LOG? Displays information about the progress of the COPY command,C for example, the name of the process being copied in a selectiveB dump, or, in the case of COPY/COLLECT on Integrity servers, theC name of an image whose unwind data is being appended to the dump copy. /PARTIAL /PARTIAL=(section,...)> Cau Tses SDA to copy only the specified sections of the dump.B The /PARTIAL qualifier can only be used with a selective systemB dump (compressed or uncompressed). It is not available for fullB system dumps or for process dumps. Also, the /PARTIAL qualifierC cannot be combined with /COMPRESS, /DECOMPRESS, or /[NO]COLLECT.? Such a copy must be performed as two separate COPY commands,@ and requires exiting from SDA and then re-invoking SDA on the intermediate copy.? See the descr Uiption of Partial Dump Copies in the HP OpenVMSD System Analysis Tools Manual. For an explanation of key processesC and key global pages, and the organization of a selective system> dump, see the HP OpenVMS System Manager's Manual, Volume 2:+ Tuning, Monitoring, and Complex Systems.= Multiple sections must be separated by commas. If only one= section is given, the parentheses may be omitted. Possible sections are as follows: Table 2-1 Dump Sections- PT V System Page Table Space) S0S1 32-bit System Space) S2 64-bit System SpaceD REPLICATED_SYS Replicated System Space (only applies to Alpha0 systems with RADs enabled)> PROCESS=option Process Space for one or more processes." Options are:< ALL All processes. This is the* default.4 KEY All key processes.@ W OTHER All other (not key) processes.D NAME=(list) Specific named processes (see note( below)0 GLOBAL=option Global Pages. Options are:< ALL All global pages mapped byA processes. This is the default.@ KEY All global pages mapped by key, processes.B OTHER All ot Xher (not key) global pages6 mapped by processes.$ KEY Equivalent to:B PT, S0S1, S2, REPLICATED_SYS, PROCESS = KEY," GLOBAL = KEY$ OTHER Equivalent to:5 PROCESS = OTHER, GLOBAL = OTHER$ SYSTEM Equivalent to:2 PT, S0S1, S2, REPLICATED_SYS& NOTE3 If /PARTIAL=PROCESS=NAME=(list) is specified: Y? - Multiple process names must be separated by commas. If? only one process name is given, the parentheses may be omitted.9 - Process names can include "%" and "*" wildcards.A - The comparison of the given name to actual process namesA in the dump is performed case-blind, and trailing spaces and tabs are ignored.> - Process names can include characters, such as "," and; "/". You can enclose the process name in quZotes to= include some of these special characters in the name@ you specify, or you can use the "%" wildcard instead of characters. ww٤$@9 1 DEFINE- The DEFINE command performs two functions:C o Assigns a value to a symbol (see subtopic "symbol"). For thisD function, the /FD or /PD qualifier can optionally be selected.? o Associates an SDA command with a terminal key (see /KEY).: Several other qualifiers can be specif[ied with /KEY.@ If the symbol or key is already defined, SDA replaces the old? definition with the new one. Symbols and keys remain defined until you exit from SDA. 2 symbol Assigns a value to a symbol. Format7 DEFINE [/qualifier...] symbol-name [=] expression 3 Parameters symbol-name> Name, containing from 1 to 31 alphanumeric characters, that@ identifies the symbol. Symbols that include lowercase letters3 must be enclosed in quo\tation marks ("symbol" ). expression$ Definition of the symbol's value. 3 Qualifier /FD /FD /PD> Defines a symbol as a function descriptor (FD) or procedure> descriptor (PD). It also defines the routine address symbolB corresponding to the defined symbol (the routine address symbolD has the same name as the defined symbol, only with _C appended toD the symbol name). /FD and /PD are completely interchangeable. SDAB interprets them based] on the architecture of the system or dump being analyzed. /PD> /PD is functionally equivalent to /FD. See /FD for details. 2 /KEY1 Associates an SDA command with a terminal key.D Once you have associated a command with a key, you can just pressD the defined key, followed by the Return key to issue the command.C If you specify the /TERMINATE qualifier when you define the key,@ you do not have to press the Return key to issue the command. Format1 ^ DEFINE/KEY [/qualifier...] key-name command 3 Parameters key-nameC Name of the key to be defined. You can define the following keys under SDA: Key Name Key Designation PF1 LK201, VT100 PF2 LK201, VT100 PF3 LK201, VT100 PF4 LK201, VT100 KP0 . . . Keypad 0-9 KP9 PERIOD Keypad period COMMA Keypad comma MINUS Keypad minus ENTER Keypad ENTER UP Up arrow DOWN _ Down arrow LEFT Left arrow RIGHT Right arrow E1 LK201 Find E2 LK201 Insert Here E3 LK201 Remove E4 LK201 Select E5 LK201 Prev Screen E6 LK201 Next Screen HELP LK201 Help DO LK201 Do! F7 . . . LK201 Function keys F20 command? SDA command to define a key. You must enclose the command in quotation marks (" "). 3 Qualifiers /IF_STATE ` /IF_STATE=state_list /NOIF_STATEB Specifies a list of one or more states, one of which must be inC effect for the key definition to work. The /NOIF_STATE qualifierB has the same meaning as /IF_STATE=current_state. The state nameC is an alphanumeric string. States are established with the /SET_D STATE qualifier. If you specify only one state name, you can omitD the parentheses. By including several state names, you can define? a key to have the same function in all thae specified states. /LOCK_STATE /LOCK_STATE /NOLOCK_STATEC Specifies that the state set by the /SET_STATE qualifier remainsA in effect until explicitly changed. By default, the /SET_STATEC qualifier is in effect only for the next definable key you press@ or the next read-terminating character that you type. You can= specify this qualifier only with the /SET_STATE qualifier. The default is /NOLOCK_STATE. /SET_STATE /SET_STATE=state-n bame /NOSET_STATED Causes the key being defined to create a key state change instead@ of or in addition to issuing an SDA command. When you use theA /SET_STATE qualifier, you supply the name of a key state to be> used with the /IF_STATE qualifier in other key definitions.B For example, you can define the PF1 key as the GOLD key and use@ the /IF_STATE=GOLD qualifier to allow two definitions for theC other keys, one in the GOLD state and one in the non-GOLD state.A Fcor more information on using the /IF_STATE qualifier, see theC DEFINE/KEY command in the OpenVMS DCL Dictionary or online help. The default is /NOSET_STATE. /TERMINATE /TERMINATE /NOTERMINATEC Causes the key definition to include termination of the command,? which causes SDA to execute the command when the defined keyA is pressed. Therefore, you do not have to press the Return key@ after you press the defined key if you specify the /TERMINATE quadlifier. ww$@91 DUMPC Displays the contents of a range of memory formatted as a comma-= separated variable (CSV) list, suitable for inclusion in a spreadsheet. Format DUMP range< [/BYTE | /WORD | /LONGWORD (default) | /QUADWORD]. [/DECIMAL | /HEXADECIMAL (default)]* [/FORWARD (default) | /REVERSE]. [/RECORD_SIZE=size] (default = 512)? [/INDEX_ARRAY [= {LONGWORD (default) | QUADWORDe} ] ]C [/INITIAL_POSITION = {ADDRESS=address | RECORD=number} ]> [/COUNT = {ALL | records} ] (default = all records) [/PHYSICAL]' [/BYTE | /WORD |/NOSUPPRESS] 2 Parameter rangeD The range of locations to be displayed. The range is specified in one of the following formats:3 m:n Range from address m to address n inclusive( m;n Range from address m for n bytes@ The length of the range must be an exact multipfle of the data< item size - or of the index array size if /INDEX_ARRAY is specified. 2 Qualifiers /BYTE$ Outputs each data item as a byte. /COUNT" /COUNT = [ {ALL | records} ]A Gives the number of records to be displayed. The default is to display all records. /DECIMAL" Outputs data as decimal values. /FORWARD= Causes SDA to display the records in the history buffer in0 ascending address order. This is the default. g /HEXADECIMAL; Outputs data as hexadecimal values. This is the default. /INDEX_ARRAY7 /INDEX_ARRAY [= {LONGWORD (default) | QUADWORD} ]D Indicates to SDA that the range of addresses given is a vector ofD pointers to the records to be displayed. The vector can be a listB of longwords (default) or quadwords. The size of the range must? be an exact number of longwords or quadwords as appropriate. /INITIAL_POSITION; /INITIAL_POSITION = {ADDRESS=addrehss | RECORD=number}> Indicates to SDA which record is to be displayed first. TheB default is the lowest addressed record if /FORWARD is used, and@ the highest addressed record if /REVERSE is used. The initialD position may be given as a record number within the range, or the* address at which the record is located. /LONGWORD= Outputs each data item as a longword. This is the default. /NOSUPPRESS= Indicates that SDA should not suppress leading zeroes when)i displaying data in hexadecimal format. /PHYSICALD Indicates to SDA that all addresses (range and/or start position)< are physical addresses. By default, virtual addresses are assumed. /QUADWORD( Outputs each data item as a quadword. /RECORD_SIZE /RECORD_SIZE=size? Indicates the size of each record within the history buffer,B the default being 512 bytes. This size must exactly divide into> the total size of the address range to be displjayed, unless@ you specify /INDEX_ARRAY. If no record size is given, and theB length of the range is not more than 512 bytes, a single recordB is output containing the range specified, with no record numberB field. The length of the range must be an exact multiple of theA data item size - or of the index array size if /INDEX_ARRAY is specified. /REVERSE= Causes SDA to display the records in the history buffer in descending address order. /WORD$ Outputsk each data item as a word. ww$@9 1 EVALUATEA Computes and displays the value of the specified expression in? both hexadecimal and decimal. Alternative evaluations of theB expression are available with the use of the qualifiers defined for this command.A If the expression is equal to the value of a symbol in the SDAA symbol table, that symbol is displayed. If no symbol with thisD value is known, the next lower-valued symbol is displayed with an; l appropriate offset unless the offset is extremely large. Format1 EVALUATE [ {/CONDITION_VALUE | /FPSR | /IFS) | /ISR | /PFS | /PS | /PSR | /PTE< | /[NO]SYMBOLS [=filter] | /TIME}] expression 2 Parameter expression> SDA expression to be evaluated. Type HELP EXPRESSIONS for a4 description of the components of SDA expressions. 2 Qualifiers /CONDITION_VALUEC Displays the message that the $GEmTMSG system service obtains for the value of the expression. /FPSRA (Integrity servers only) Evaluates the specified expression in2 the format of a floating-point status register. /IFSA (Integrity servers only) Evaluates the specified expression in0 the format of an interruption function state. /ISRA (Integrity servers only) Evaluates the specified expression in1 the format of an interruption status register. /PFSA (Integrity servers nonly) Evaluates the specified expression in+ the format of a previous function state. /PSB Evaluates the specified expression in the format of a processor status. /PSRA (Integrity servers only) Evaluates the specified expression in- the format of a processor status register. /PTE? Interprets and displays the expression as a page table entry? (PTE). The individual fields of the PTE are separated and an5 overall description of the PTE's type is oprovided. /SYMBOLS /SYMBOLS[=filter] /NOSYMBOLS@ The default behavior of the EVALUATE command is to display up> to five symbols that are known to be equal to the evaluatedC expression. If /SYMBOLS is specified with no filter, all symbols@ are listed in alphabetical order. If /NOSYMBOLS is specified,< only the hexadecimal and decimal values are displayed. If? /SYMBOLS is specified with a filter, only symbols that match> the filter are displayed. The filpter is a string containing wildcards, such as PCB$*. /TIMEA Interprets and displays the expression as a 64-bit time value.D Positive values are interpreted as absolute time; negative values! are interpreted as delta time. ww$@9 1 EXAMINE> Displays either the contents of a location or of a range of? locations in physical memory, or the contents of a register.? Use location parameters to display specific locations or useA qualifiers to disqplay the entire process and system regions of memory. FormatA EXAMINE [location [/PHYSICAL] | /ALL | /P0 | /P1 | /SYSTEM]< [/CONDITION_VALUE | /FPSR | /IFS | /ISR | /PFS< | /PS | /PSL | /PSR | /PTE | /TIME | /[NO]FD | /[NO]PD] [/NOSUPPRESS] [/INSTRUCTION] 2 Parameter locationC Location in memory to be examined. A location can be representedD by any valid SDA expression. To e rxamine a range of locations, use the following syntax:6 m:n Range of locations to be examined, from m to n< m;n Range of locations to be examined, starting at m and continuing for n bytesC The default location that SDA uses is initially 0 in the program@ region (P0) of the process that was executing at the time theD system failed (if you are examining a crash dump) or your process= (if you are examining the running system). Subsequent uses> of the EXAMINE commsand with no parameter specified increase> the last address examined by eight. Use of the /INSTRUCTIONA qualifier increases the default address by four (for Alpha) orB 16 (for Integrity server). To examine memory locations of other3 processes, you must use the SET PROCESS command. 2 Qualifiers /ALL9 Examines all the locations in the program, and control> regions and system space, displaying the contents of memory@ in hexadecimal longwords and ASCII characters. tDo not specify* parameters when you use this qualifier. /CONDITION_VALUEC Examines the specified longword, displaying the message that the@ $GETMSG system service obtains for the value in the longword. /FD /FD /NOFD See the description of /PD. /FPSRD (Integrity servers only) Examines the specified expression in the. format of a floating-point status register. /IFSD (Integrity servers only) Examines the specified expression uin the, format of an interruption function state. /INSTRUCTIONC Translates the specified range of memory locations into assemblyD instruction format. Each symbol in the EXAMINE expression that isD defined as a procedure descriptor is replaced with the code entry? point address of that procedure, unless you also specify theC /NOPD qualifier. For Integrity servers only, SDA always displays8 entire bundles of instructions, not individual slots. /ISRD (Integritvy servers only) Examines the specified expression in the- format of an interruption status register. /NOSUPPRESSD Inhibits the suppression of zeros when displaying memory with oneB of the following qualifiers: /ALL, /P0, /P1, /SYSTEM, or when a range is specified. /P0A Displays the entire program region for the default process. Do6 not specify parameters when you use this qualifier. /P1A Displays the entire control region for the default process. Dwo6 not specify parameters when you use this qualifier. /PD /PD /NOPD, Functionally equivalent to /FD and /NOFD.@ Causes the EXAMINE command to treat the location specified inA the EXAMINE command as a function descriptor (FD) or procedureB descriptor (PD), depending on the architecture of the system or@ dump being analyzed. /PD can also be used to qualify symbols.A You can use the /PD and /NOPD qualifiers with the /INSTRUCTIONB qualifier to ov xerride treating symbols as function or procedureD descriptors. Placing the qualifier right after a symbol overrides= how the symbol is treated. /PD forces it to be a procedureD descriptor, and /NOPD forces it to not be a procedure descriptor.> If you place the /PD qualifier right after the /INSTRUCTION> qualifier, SDA treats the calculated value as a function or7 procedure descriptor. /NOPD has the opposite effect.D In the following examples, TEST_ROUTINE is a PD symbol. Itsy valueD is 500 and the code address in this procedure descriptor is 1000.; The first example displays instructions starting at 520.+ EXAMINE/INSTRUCTION TEST_ROUTINE/NOPD+20C The next example fetches code address from TEST_ROUTINE PD, addsC 20 and displays instructions at that address. In other words, it+ displays code starting at location 1020.& EXAMINE/INSTRUCTION TEST_ROUTINE+20< The final example treats the address TEST_ROUTINE+20 as a@ procedure descriptor,z so it fetches the code address out of aD procedure descriptor at address 520. It then uses that address to display instructions.. EXAMINE/INSTRUCTION/PD TEST_ROUTINE/NOPD+20 /PFSD (Integrity servers only) Examines the specified expression in the' format of a previous function state. /PHYSICAL< Examines physical addresses. You cannot use the /PHYSICAL9 qualifier in combination with the /P0, /P1, or /SYSTEM qualifiers. /PS /PS /P{SLB Examines the specified quadword, displaying its contents in the@ format of a processor status. This qualifier must precede any' parameters used in the command line. /PSRD (Integrity servers only) Examines the specified expression in the) format of a processor status register. /PTEA Interprets and displays the specified quadword as a page tableB entry (PTE). The display separates individual fields of the PTE9 and provides an overall description of the |PTE's type. /SYSTEMB Displays portions of the writable system region. Do not specify* parameters when you use this qualifier. /TIMEB Examines the specified quadword, displaying its contents in the- format of a system-date-and-time quadword. ww %@91 EXIT; Exits from an SDA display or exits from the SDA utility. Format EXIT ww %@9 1 FORMATB Displays a formatted list of the contents of a block of} memory. Format( FORMAT [/TYPE=block-type] location9 [/NOSYMBOLIZE][/PAGE][/PHYSICAL] [/POSITIVE] 2 Parameter locationC Location of the beginning of the data block. The location can be% given as any valid SDA expression. 2 Qualifiers /NOSYMBOLIZE@ If /NOSYMBOLIZE is specified, no attempt is made to symbolizeB the contents of any field in a structure. This is useful if the? loaded execlet or activated image lists are cor~rupted, since' symbolization relies on these lists. /PAGE? If the output of the formatted structure does not fit on one< screen, SDA enters display mode. (For information on thisC topic, see Display Mode.) By default, SDA displays the formatted- structure without screen overflow prompts. /PHYSICAL; Specifies that the location given is a physical address. /POSITIVE? Symbols that describe negative offsets from the start of theD structure are ignored. By default, all symbols for the block type are processed. /TYPE /TYPE=block-typeA Forces SDA to characterize and format a data block at location? as the specified type of data structure. The /TYPE qualifier? thus overrides the default behavior of the FORMAT command inD determining the type and/or subtype of a data block, as described? in the Description subtopic for this command. The block-typeB can be the symbolic prefix of any data structure defined by the operating system. 2 DescriptionC Displays the formatted contents of an OpenVMS control block that@ begins at the address specified by the expression "location."< Most blocks include a byte that indicates the block type.@ Associated with each type of block is a set of symbols with aA common prefix. Each symbol's name describes a field within theB block, and the value of the symbol represents the offset of the field within the block.= If the block-type byte contains a valid block type (and/or@ subtype), SDA retrieves the symbols associated with that typeD of block (see $DYNDEF) and uses their values to format the block.B If the block-type byte does not contain a valid block type, you4 must use the /TYPE qualifier to format the block.D For a given block type, all associated symbols have the following form: $_& where type is one of the following: B Byte W Word L Longword Q Quadword A Address C Constant G Global Longword P Pointer R Structure (variable size)0 T Counted ASCII string (up to 31 characters)@ If SDA cannot find the symbols associated with the block typeA specified in the block-type byte or by the /TYPE qualifier, it issues the following message:5 No symbols found to format this block@ Use the READ command to obtain additional symbol definitions. ww %@91 HEL PD The System Dump Analyzer (SDA) allows you to inspect the contentsB of memory as saved in the dump taken at crash time or as existsA in a running system. You can use SDA interactively or in batchD mode. You can send the output from SDA to a listing file. You can/ use SDA to perform the following operations:- Assign a value to a symbol0 Examine memory of any process9 Format instructions and blocks of data1 Display device data structures< Display memory management data structuresC Display a summary of all processes on the system/ Display the SDA symbol table, Copy the system dump file= Read global symbols from any object module2 Search memory for a given value2 Send output to a file or deviceC For help on performing these functions, use the HELP command and specify a topic. Format HELP [topic-name] 2 Parameter topic-name> Topic for which you need information. A topic can be an SDAD command name such as ATTACH or COPY, the name of an SDA extensionC such as CLUE or FLT, or a keyword such as Extensions or Process_ Context.@ If you enter HELP with no topic name, a list of all topics is displayed. ww %@91 MAP> Transforms an address into an offset in a particular image. Format MAP address 2 Parameter address Address to be identified. 2 Description7 The MAP command identifies the image name and offset> corresponding to an address. With this information, you can@ examine the image map to locate the source module and program. section offset corresponding to an address.D If the address is in system space, MAP searches for the specified> address in executive images first. It then checks activatedA images in process space to search those images installed using> the /RESIDENT qualifier of the Install utility. Finally, it= checks all image-resident sections in system space. If theA address is in process space, MAP searches the activated imagesB for the process. On Integrity servers, the MAP command can also@ provide additional data for addresses in system space. If the@ address is determined to be in a code section of an executiveD loaded image or a resident shareable image, and if the image fileD is accessible and was linked using /TRACEBACK, the traceback dataA is used to obtain and display the module name and routine name information. ww %@9 1 MODIFY 2 DUMPD Allows a given byte, word, longword, or quadword in the dump file to be modified. Format3 MODIFY DUMP value {/BLOCK=n/OFFSET=n | /NEXT}> {/BYTE | /WORD | /LONGWORD (d) | /QUADWORD} [/CONFIRM=n] 3  Parameter valueB New value deposited in the specified location in the dump file. 3 Qualifiers /BLOCK /BLOCK=nC Indicates block number to be modified. Required unless the /NEXT qualifier is given. /OFFSET /OFFSET=n> Indicates byte offset within block to be modified. Required' unless the /NEXT qualifier is given. /NEXT= Indicates that the byte or bytes immediately following theA location altered by the previous !MODIFY DUMP command are to beC modified. Used instead of the /BLOCK=n and /OFFSET=n qualifiers. /BYTE7 Indicates that only a single byte is to be replaced. /WORD+ Indicates that a word is to be replaced. /LONGWORDD Indicates that a longword is to be replaced. This is the default. /QUADWORD/ Indicates that a quadword is to be replaced. /CONFIRM /CONFIRM=n7 Checks existing contents of location to be modified. wwA%@91 READD Loads the global symbols contained in the specified file into the SDA symbol table. Format' READ {/EXECUTIVE [directory spec]5 | /FORCE filespec [/RELOCATE =expression | /SYMVA=expression] | /IMAGE filespec | filespec} [ /[NO]LOG] 2 Parameters directory-spec> Name of the directory containing the loadable images of theA executive. This parameter defaults to SDA$READ_DIR, which is aC search list of SYS$LOADABLE_IMAGES, SYS$LIBRARY, and SYS$SYSTEM. filespecA Name of the device, directory, and file from which you want toC read global symbols. The filespec defaults to SYS$DISK:[default-@ dir]filename.type, where SYS$DISK and [default-dir] represent@ the disk and directory specified in your last DCL command SETB DEFAULT. If no type has been given in filespec, SDA first tries .STB and then .EXE.D If no device or directory is given in the file specification, andA the file specification is not found in SYS$DISK:[default_dir],D then SDA attempts to open the file SDA$READ_DIR:filename.type. IfD no type has been given in filespec, SDA first tries .STB and then .EXE.C If the file name is the same as that of an execlet or image, butA the symbols in the file are not those of the execlet or image,C then you must use the /FORCE qualifier, and optionally /RELOCATEB and /SYMVA qualifiers, to tell SDA how to interpret the symbols in the file.D The READ command accepts quoted filenames for access to images onD ODS-5 disks with lowercase or compound characters in their names. 2 Qualifiers /EXECUTIVE /EXECUTIVE directory-spec@ Reads into the SDA symbol table all global symbols and globalC entry points defined within all loadable images that make up theD executive. For all the execlets in the system, SDA reads the .STB, or .EXE files in the requested directory. /FORCE /FORCE filespec@ Forces SDA to read the symbols file, regardless of what otherA information or qualifiers are specified. If you do not specifyA the /FORCE qualifier, SDA may not read the symbols file if theD specified filespec matches the image name in either the executiveC loaded images or the current processes activated image list, and+ one of the following conditions is true:@ o The image has a symbols vector (is a shareable image ), andB a symbols vector was not specified with the /SYMVA or /IMAGE qualifier.C o The image is sliced, and slicing information was not provided with the /IMAGE qualifier.@ o The shareable or executive image is not loaded at the sameB address it was linked at, and the relocation information wasA not provided with either the /IMAGE or /RELOCATE qualifier.@ The use of /FORCE [/SYMVA=addr][/RELOCATE=addr] filespec is aC variant of the /IMAGE qualifier and avoids fixing up the symbols& to match an image of the same name. /IMAGE /IMAGE filespecC Searches the executive loaded image list and the current process? activated image list for the image specified by filespec. If> the image is found, the symbols are read in using the imageC symbol vector (if there is one) and either slicing or relocation information.? This is the preferred way to read in the .STB files producedA by the linker. These .STB files contain all universal symbols,? unless SYMBOL_TABLE=GLOBAL is in the linker options file, in= which case the .STB file contains all universal and global symbols. /LOG /LOG /NOLOG (D)= The /LOG qualifier causes SDA to output the %SDA-I-READSYMA message for each symbol table file it reads. By default, theseD messages are suppressed. You can specify /LOG and /NOLOG with any2 other combination of parameters and qualifiers. /RELOCATE /RELOCATE=expression< Changes the relative addresses of the symbols to absolute> addresses by adding the value of expression to the value ofB each symbol in the symbol table file to be read. This qualifier? changes those addresses to absolute addresses in the address' space into which the dump is mapped.@ The relocation only applies to symbols with the relocate flagD set. All universal symbols must be found in the symbol vector for? the image. All constants are read in wi thout any relocation.A If the image is sliced (image sections are placed in memory atA different relative offsets than how the image is linked), then? the /RELOCATE qualifier does not work. SDA compares the file? name used as a parameter to the READ command against all theA image names in the executive loaded image list and the current@ processes activated image list. If a match is found, and thatB image contains a symbol vector, an error results. At this pointB you can either use the /FORCE qualifier or the /IMAGE qualifier to override the error. /SYMVA /SYMVA=expression@ Informs SDA whether the absolute symbol vector address is forB a shareable image (SYS$PUBLIC_VECTORS.EXE) or base system image? (SYS$BASE_IMAGE.EXE). All symbols found in the file with theB universal flag are found by referencing the symbol vector (that3 is, the symbol value is a symbol vector offset). 2 Description? The following MACRO program can be used to obtain symbols in+ addition to those in SYS$BASE_IMAGE.EXE: .TITLE GLOBALS7 $PHDDEF GLOBAL ; Process header definitions. $DDBDEF GLOBAL ; Device data block/ $UCBDEF GLOBAL ; Unit control block1 $VCBDEF GLOBAL ; Volume control block. $ACBDEF GLOBAL ; AST control block/ $IRPDEF GLOBAL ; I/O request packet ; More can be inserted here .END: Use the command below to generate an object modul e file1 containing the globals defined in the program.= $MACRO GLOBALS+SYS$LIBRARY:LIB/LIBRARY /OBJECT=GLOBALS.STBC SDA can also read symbols from an image .EXE or .STB produced byD the linker. The STB and EXE files only contain universal symbols.B The STB file, however, can be forced to have global symbols forD the image if the SYMBOL_TABLE=GLOBAL option is used in the linker options file.C If you do not specify a file type, .STB is used by default. If a6 .STB file is not found, SDA then tries a .EXE file.? A number of ready-built symbol table files ship with OpenVMSA Alpha. They can be found in the directory SYS$LOADABLE_IMAGES,A and all have names of the form xyzDEF.STB. Of these files, SDAB automatically reads REQSYSDEF.STB on activation. The symbols inD the other files can be added to SDA's symbol table using the READ command. wwA%@9 1 REPEAT< Repeats execution of the last command issued. On terminal@ devices, the KP0 key performs the same function as the REPEAT@ command with no parameter or qualifier. The REPEAT command isC useful for stepping through a linked list of data structures, or0 for examining a sequence of memory locations. Format' REPEAT [count | /UNTIL=condition] 2 Parameter count> Number of times the previous command is to be repeated. The default is a single repeat. 2 Qualifier /UNTIL /UNTIL=condition=  Defines a condition that terminates the REPEAT command. By. default, there is no terminating condition. ww)h%@9 1 SEARCH= Scans a range of memory locations for all occurrences of a= specified value or string. If you press Ctrl/T while usingA the SEARCH command, the system displays how far the search has progressed. Format9 SEARCH [/qualifier] range [=] {expression | string} 2 Parameters rangeC Location in memory to be searched. A location can be representedC by any valid SDA expression. To search a range of locations, use the following syntax:6 m:n Range of locations to be searched, from m to n< m;n Range of locations to be searched, starting at m and continuing for n bytesB You must use either an equals sign or a blank to separate range from expression or string. expressionA Value for which SDA is to search. SDA evaluates the expression? and searches the specified range of memory for the resulting9 value. For a description of SDA expressions, type HELP EXPRESSIONS. stringC Character sequence for which SDA is to search. If all charactersC in the sequence are printable characters, the string is enclosed in quotes, for example,? "My_String". If the character sequence contains nonprintable= characters, it must be specified as a comma-separated listC composed of quoted strings and hexadecimal numbers; for example,< ("My_String",0C00,"More") would specify a search for "My_? StringMore". Each hexadecimal number can be no moreD than 8 digits (4 bytes) in length. Nonprintable sequences of more@ than 4 bytes must be split into multiple hexadecimal numbers.D The maximum length of a search string is 127 bytes. Note that theC quote character itself cannot be included in a quoted string and- must be specified as a hexadecimal number. 2 Qualifiers /IGNORE_CASEC Specifies that searches for strings are not to be case-specific.D (By default, searches look for an exact match.) This qualifier is ignored for value searches. /LENGTH1 /LENGTH={QUADWORD | LONGWORD | WORD | BYTE}= Specifies the size of the expression value that the SEARCH? command uses for matching. If you do not specify the /LENGTHC qualifier, the SEARCH command uses a longword length by default.1 This qualifier is ignored for string searches. /MASK /MASK=n> Allows the SEARCH command finer qranularity in its matches.@ It compares only the given bits of a byte, word, longword, orC quadword. To compare bits when matching, you set the bits in the@ mask; to ignore bits when matching, you clear the bits in the7 mask. This qualifier is ignored for string searches. /PHYSICAL; Specifies that the addresses used to define the range of3 locations to be searched are physical addresses. /STEPS: /STEPS = {QUAD WORD | LONGWORD | WORD | BYTE | value}@ Specifies the step factor of the search through the specified; memory range. After the SEARCH command has performed theA comparison between the value of expression or the given string@ and memory location, it adds the specified step factor to the@ address of the memory location. The resulting location is theA next location to undergo the comparison. If you do not specifyA the /STEPS qualifier, the SEARCH command uses a step factor ofA a longword for value searches, and a step factor of a byte for string searches. ww)h%@91 SETC Establishes values or context for subsequent commands or action. 2 CPUB When analyzing a system dump, selects a processor to become theB current CPU for SDA. When invoked under ANALYZE/SYSTEM, SET CPUB lists the database address for the specified CPU before exiting with the message:; %SDA-E-CMDNOTVLD command not valid on the running system  Format< SET CPU {cpu-id | /FIRST | /NEXT | /PRIMARY } [/NOLOG] 3 Parameter cpu-idD Numeric value indicating the identity of the processor to be madeA the current CPU. If you specify the cpu-id of a processor thatA 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 3 Qualifiers/FIRST @ The lowest numbered CPU (not necessarily the primary CPU) is  set as the current CPU./NEXT? The next higher numbered CPU is set as the current CPU. SDA A skips CPUs not in the configuration at the time of the system ? failure. If there are no further CPUs, SDA returns an error. /NOLOG> Use the /NOLOG qualifier to inhibit output of the database ! address for the CPU being set./PRIMARY- The primary CPU is set as the current CPU.2 ERASE_SCREENB Enables or disables the automatic clearing of the screen before each new page of SDA output. Format! SET ERASE_SCREEN {ON | OFF} 3 Parameters OND Enables the screen to be erased before SDA outputs a new heading. This setting is the default. OFF& Disables the erasing of the screen. 2 FETCHD Sets the default size and access method of address data used whenB SDA evaluates an expression that includes the @ unary operator. Format5 SET FETCH [{QUADWORD | LONGWORD | WO&RD | BYTE}]) [, {PHYSICAL | VIRTUAL} ] 3 Parameters QUADWORD$ Sets the default size to 8 bytes. LONGWORD$ Sets the default size to 4 bytes. WORD$ Sets the default size to 2 bytes. BYTE# Sets the default size to 1 byte. PHYSICAL8 Sets the default access method to physical addresses. VIRTUAL7 Sets the default access method to virtual addresses.C You can specify only one parameter out of each group. If you areD changing both size and access method, separate the two parametersC by spaces or a comma. Include a comma only if you are specifying a parameter from both groups. 2 LOGA Initiates or discontinues the recording of an SDA session in a text file. Format SET [NO]LOG filespec 3 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 DCL command SETD DEFAULT. If you specify SET LOG without a filename or specify SETC NOLOG, SDA stops recording the session and directs all output to SYS$OUTPUT. 2 OUTPUT= Redirects output from SDA to the specified file or device. Format9 SET OUTPUT [/[NO]INDEX | /[NO]HEADER | /PERMANENT |* /SINGLE_COMMAND] filespec 3 Parameter filespec@ Name of the file to which SDA is to send the output generatedB by its commands. The default filespec is SYS$DISK:[default_dir]D filename.LIS, where SYS$DISK and [default-dir] represent the diskD and directory specified in your last DCL command SET DEFAULT. You@ must specify a file name except when /PERMANENT is specified. 3 Qualifiers /INDEX /INDEX /NOINDEX; The /INDEX qualifier causes SDA to include an index page; at the beginning of the output file. This is the default@ unless you specify /NOHEADER or modify the default with a SETA OUTPUT/PERMANENT command. The /NOINDEX qualifier causes SDA to, omit the index page from the output file. /HEADER /HEADER /NOHEADER? The /HEADER qualifier causes SDA to include a heading at theB top of each page of the output file. This is the default unlessC you modify it with a SET OUTPUT/PERMANENT command. The /NOHEADERC qualifier causes SDA to omit the page headings. Use of /NOHEADER implies /NOINDEX. /PERMANENT@ Modifies the defaults for /[NO]HEADER and /[NO]INDEX. SpecifyC either or both qualifiers with or without a NO prefix to set newB defaults. Setting the default to /NOHEADER implies a default of@ /NOINDEX. The new defaults remain in effect until another SETC OUTPUT/PERMANENT command is entered or the SDA session is ended.D You cannot combine /PERMANENT and /SINGLE_COMMAND in one command,5 and you cannot provide a filespec with /PERMANENT. /SINGLE_COMMANDA Indicates to SDA that the output for a single command is to beB written to the specified file and that subsequent output shouldA be written to the terminal. /SINGLE_COMMAND cannot be combined with /PERMANENT. 2 PROCESS7 Selects a process to become the SDA current process. Format@ SET PROCESS {/ADDRESS=pcb-address | process-name | /ID=nn2 | /INDEX=nn | /NEXT | /SYSTEM} 3 Parameter process-name= Name of the process to become the SDA current process. TheA process-name can contain up to 15 uppercase letters, numerals,A the underscore (_), dollar sign ($), colon (:), and some other< printable characters. If it contains any other characters= (including lowercase letters), you may need to enclose the) process-name in quotation marks (" "). 3 Qualifiers /ADDRESS /ADDRESS = pcb-addressD Specifies the process control block (PCB) address of a process in2 order to display information about the process. /ID /ID=nnB See the description of /INDEX, which is functionally equivalent to /ID. /INDEX /INDEX=nnA Specifies the process for which information is to be displayedA either by its index into the system's list of software processC control blocks (PCBs), or by its process identification. /ID andC /INDEX are functionally equivalent. You c an supply the following values for nn: o The process index itself.@ o The process identification (PID) or extended PID longword,D from which SDA extracts the correct index. The PID or extendedA PID of any thread of a process with multiple kernel threads= may be specified. Any thread-specific data displayed by4 further commands will be for the given thread.> To obtain these values for any given process, issue the SDAD command SHOW SUMMARY/THREADS. The /ID=nn and /INDEX=nn qualifiers can be used interchangeably. /NEXTB Causes SDA to locate the next valid process in the process listC and select that process. If there are no further valid processes- in the process list, SDA returns an error. /SYSTEMB Specifies the new current process by the system process controlD block (PCB). The system PCB and process header (PHD) parallel theC data structures that describe processes. They contain the system? working set list, global section table, and other systemwide data. 2 RMS= Changes the options shown by the SHOW PROCESS/RMS command. Format SET RMS = (option[,...]) 3 Parameter option= Data structure or other information to be displayed by the? SHOW PROCESS/RMS command. The following keywords can be used as options. Keyword Meaning/ [NO]ALL[:ifi] 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 attributes 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 header6 [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 Journaling file block [NO]NAM Name block$ [NO]NWA Network work areaA [NO]PIO Image I/O (NOPIO), the default, or process I/O (PIO)* [NO]RAB Record attributes block$ [NO]RLB Record lock blockC [NO ]RU Recovery unit structures, including the recovery? unit block (RUB), recovery unit stream block> (RUSB), and recovery unit file block (RUFB)4 [NO]SFSB Shared file synchronization block' [NO]WCB Window control block+ [NO]XAB Extended attribute blockD [NO]* Current list of options displayed by the SHOW RMS command 2 SIGN_EXTEND> Enables or disables the sign extension of 32-bi%t addresses. Format SET SIGN_EXTEND {ON | OFF} 3 Parameters ONC Enables automatic sign extension of 32-bit addresses with bit 31 set. This is the default. OFFD Disables automatic sign extension of 32-bit addresses with bit 31 set. 2 SYMBOLIZE@ Enables or disables symbolization of addresses in the display from an EXAMINE command. Format SET SYMBOLIZE {ON | OFF} 3 Parameters ON& Enables symbo"lization of addresses. OFF' Disables symbolization of addresses. ww9%@91 SHOW* Displays requested data or information. 2 ACPI 3 servers< Displays the contents of Advanced Configuration and Power4 Interface (ACPI) tables and namespace structures. Format$ SHOW ACPI {/NAMESPACE |/TABLE}? [/ADDRESS = address | /ALL | /CHILDREN] [ident] 4 Parameter identD The name of the table or the namespace structure to be displayed.6 If an ident is given, /ADDRESS cannot be specified. 4 Qualifier /ADDRESS /ADDRESS = address@ The physical address of the table entry or virtual address ofA a namespace structure to be displayed. If /ADDRESS is used, no ident may be specified. /ALL> Specifies that detailed information on each entity is to be@ displayed. By default, only a brief summary of each entity is4 given, except when a specific table is displayed. /CHILDREND Specifies that all the child namespace structures for a specified@ namespace entry are to be displayed. /CHILDREN cannot be used with /TABLES. /NAMESPACE@ Specifies that ACPI namespace structures are to be displayed.2 Either /NAMESPACE or /TABLES must be specified. /TABLESD Specifies that ACPI tables are to be displayed. Either /NAMESPACE or /TABLES must be specified. 2 ADDRESS= Displays the page table related informa!tion about a memory address. Format% SHOW ADDRESS address [/PHYSICAL] 3 Parameter address The requested address. 3 Qualifier /PHYSICAL= Indicates that a physical address has been given. The SHOW@ ADDRESS command displays the virtual address that maps to the given physical address. 2 BUGCHECK@ Displays the value, name, and text associated with one or all bugcheck codes. Format/ SHOW BUGCHECK {/ALL (d) | name | number} 3 Parameters name+ The name of the requested bugcheck code. numberA The value of the requested bugcheck code. The severity bits in the value are ignored.@ The parameters name and number and the qualifier /ALL are all mutually exclusive. 3 Qualifier /ALLA Displays complete list of all the bugcheck codes, giving their, value, name, and text. It is the default. 2 CALL_FRAMED Displays the locations and contents of the quadwords representing a procedure call frame. Format* SHOW CALL_FRAME { [starting-address]9 | /EXCEPTION_FRAME = intstk-address6 | /NEXT_FRAME | /SUMMARY | /ALL} 3 Parameter starting-addressD For Alpha, an expression representing the starting address of theB procedure call frame to be displayed. If no starting-address isC given, the default starting address is the contents of the frameB  pointer (FP) register of the SDA current process. For a process? that uses pthreads, the following SDA command can be used to3 display the starting addresses for all pthreads: SDA> pthread thread -o u? For Integrity servers, the starting address is an expression% representing one of the following:/ o The invocation context handle of a frame.B o The address of an exception frame. This is equivalent to the following SDA command:: SDA> SHOW CALL_FRAME /EXCEPTION_FRAME=intstk-address6 o The address of a Thread Environment Block (TEB).C For a list of all TEBs for the process, use the following SDA command: SDA> pthread thread -o uC If no starting address is given, the default starting address isD the invocation context handle of the current procedure in the SDA current process. 3 Qualifiers /ALL? Displays details of all call frames beginning at the currentA frame and continuing until bottom of stack (equivalent to SHOW< CALL and repeated execution of a SHOW CALL/NEXT command). /EXCEPTION_FRAME% /EXCEPTION_FRAME=intstk-addressB (Integrity servers only) Provides an alternate starting address; for SHOW CALL_FRAME. intstk-address is the address of an? exception frame from which SDA creates an initial invocation1 context and displays the procedure call frame. /NEXT_FRAME< Displays the procedure call frame starting at the address@  stored in the frame longword of the last call frame displayedB by this command. You must have issued a SHOW CALL_FRAME commandC previously in the current SDA session in order to use the /NEXT_" FRAME qualifier to the command. /SUMMARY= Provides a one-line summary for each call frame, includingA exception frames, system-service entry frames, ASTs, KPBs, and1 so on, until reaching the bottom of the stack. 2 CBB/ Displays contents of a Common Bitmask Block.# Format SHOW CBB address 3 Parameters address= The address of the Common Bitmask Block. This is required. 2 CEBB Displays information about Common Event flag Blocks, also known! as Common Event flag clusters. Format SHOW CEB [address | /ALL] 3 Parameters addressD The address of a common event flag block. Detailed information is7 displayed for the specified common event flag block. 3 Qualifiers /ALLB Specifies that detailed information is to be displayed for eachD common event flag block. By default, a one-line summary is output$ for each common event flag block. 2 CLASSC Displays information about scheduling classes that are active in% the system or dump being analyzed. Format$ SHOW CLASS [class-name | /ALL] 3 Parameters class-name% Name of the class to be displayed. 3 Qualifiers /ALLD Indicates that details of all active classes are to be displayed. 2 CLUSTERA Displays connection manager and system communications services0 (SCS) information for all nodes in a cluster. FormatA SHOW CLUSTER { [{/ADDRESS=n | /CIRCUIT=pb-addr | /CSID=csid* | /NODE=name}] | /SCS } 3 Qualifiers /ADDRESS /ADDRESS=n= Displays only the OpenVMS Cluster system information for a= specific OpenVMS Cluster member node, given the address of@  the cluster system block (CSB) for the node. This is mutuallyB exclusive with the /CIRCUIT=pb-addr, /CSID=csid, and /NODE=name qualifiers. /CIRCUIT /CIRCUIT=pb-addr= Displays only the OpenVMS Cluster system information for aA specific path, where pb-addr is the address of its path block.< This qualifier is mutually exclusive with the /ADDRESS=n,) /CSID=csid, and /NODE=name qualifiers. /CSID /CSID=csid= Displays only the OpenVMS Cluster sys tem information for a> specific OpenVMS Cluster member node. The value csid is the@ cluster system identification number (CSID) of the node to beD displayed. You can find the CSID for a specific node in a clusterA by examining the CSB list display of the SHOW CLUSTER command.= Other SDA displays refer to a system's CSID. For instance,? the SHOW LOCKS command indicates where a lock is mastered or@ held by CSID. This is mutually exclusive with the /ADDRESS=n,/ /CIRCUIT=pb-addr, and /NODE=name qualifiers. /NODE /NODE=name= Displays only the OpenVMS Cluster system information for aA specific OpenVMS Cluster member node, given its SCS node name.D This is mutually exclusive with the /ADDRESS=n, /CIRCUIT=pb-addr, and /CSID=csid qualifiers. /SCS1 Displays a view of the cluster as seen by SCS. 2 CONNECTIONSC Displays information about all active connections between SystemB Communications Services (SCS) processes or a single connection. Format; SHOW CONNECTIONS [ {/ADDRESS=cdt-address | /NODE=name' | /SYSAP=name} ] 3 Qualifiers /ADDRESS /ADDRESS=cdt-addressD Displays information contained in the connection descriptor table@ (CDT) for a specific connection. You can find the cdt-address= for any active connection on the system in the CDT summaryA page display of the SHOW CONNECTIONS command. In addition, CDTB addresses are stored in many individual data structures relatedA to SCS connections. These data structures include class driverC request packets (CDRPs) and unit control blocks (UCBs) for classA drivers that use SCS, and cluster system blocks (CSBs) for the connection manager. /NODE /NODE=nameB Displays all CDTs associated with the specified remote SCS node name. /SYSAP /SYSAP=name? Displays all CDTs associated with the specified local SYSAP. 2 CPUC When analyzing a dump, displays information about the state of a) CPU at the time of the system failure.A SHOW CPU is only valid when you are analyzing a crash dump. ItD is not a valid command when you are analyzing the running system,A because all the CPU-specific information may not be available.D If invoked when you are analyzing a running system, SHOW CPU willB only list the CPU database address(es) for the specified CPU or all CPUs. Format3 SHOW CPU [cpu-id | /FIRST | /NEXT | /PRIMARY] 3 Parameter cpu-id= Numeric value indicating the identity of the CPU for whichB context information is to be displayed. If you specify the cpu-B id parameter, the SHOW CPU command performs an implicit SET CPUB command, making the CPU indicated by cpu-id the current CPU for subsequent SDA commands.C If you do not specify a cpu-id, the state of the SDA current CPU is displayed.@ If you specify the cpu-id of a CPU that was not active at theB time of the system failure, SDA displays the following message:> %SDA-E-CPUNOTVLD, CPU not booted or CPU number out of rangeA Type HELP SET CPU command and HELP CPU_CONTEXT for informationB on how this can affect the CPU context (and process context) in which SDA commands execute. 3 Qualifiers/FIRST> The state of the lowest numbered CPU (not necessarily the  primary CPU) is displayed./NEXT; The state of the next higher numbered CPU is displayed. : SDA skips CPUs not in the configuration at the time of 4 the system failure. If there are no further CPUs, SDA returns an error./PRIMARY- The state of the primary CPU is displayed.2 CRASH? Provides system information identifying a running system, orD displays information about the state of the system at the time of a system failure. Format SHOW CRASH [/ALL | /CPU=n] 3 Qualifiers /ALLB Displays exception data for all CPUs. By default, the registersD (on Alpha) or exception frame contents (on Integrity servers) areC omitted from the display for any CPUs with CPUEXIT or DBGCPUEXIT bugchecks. /CPU /CPU=nA Allows exception data to be displayed from CPUs other than theA one considered as the crash CPU when more than one CPU crashes simultaneously. 3 Description< In the case of a system failure, the output display would include:$ o The time of the system failure: o The version of the operating system that was running; o The CPUs that were active and available in the systemB o A summary of the BUGCHECK exception messages for all CPUs in the systemC o CPU-specific information about each active CPU in the system, including:. - The reason for the BUGCHECK exception2 - Additional exception-specific information( - The currently executing process - The current IPL. - The contents of all the CPU registers( - Any spinlocks that the CPU owns 2 DEVICED Displays a list of all devices in the system and their associatedC data structures, or displays the data structures associated with a given device or devices. FormatC SHOW DEVICE [ device-name[:] | /ADDRESS=ucb-address | /BITMAPC | /CDT=cdt_address | /CHANNELS | /HOMEPAGE | /PDT% | /UCB=ucb-address] 3 Parameter device-nameC Device or devices for which data structures are to be displayed.< The following table lists several uses of the device-name parameter: To display the4 structures for: Take the following action:D All devices in the Do not specify a device-name (for example,' system SHOW DEVICE).< A single device Specify an entire device-name (for6 example, SHOW DEVICE VTA20).: All devices of a  Specify only the device type andC certain type on a controller designation (for example, SHOW9 single controller DEVICE RTA or SHOW DEVICE RTB).C All devices of a Specify only the devicetype (for example,* certain type on any SHOW DEVICE RT). controllerC All devices whose Specify the character or character string7 names begin with a (for example, SHOW DEVICE D). certain character or character string@ All devices on a Specify only the node name or HSC name< single node or HSC (for example, SHOW DEVICE GREEN$).@ All devices with a Specify the allocation class includingC certain allocation leading and trailing $, for example, SHOW& class DEVICE $63$.7 A colon (:) at the end of a device name is optional.& NOTE: All qualifiers specific to Memory Channel (CHANNELS,B HOMEPAGE, and PDT) are disabled for OpenVMS Integrity server systems. 3 Qualifiers /ADDRESS /ADDRESS=ucb-address? Indicates the device for which data structure information isB to be displayed by the address of its unit control block (UCB).? The /ADDRESS qualifier is an alternate method of supplying aB device name to the SHOW DEVICE command. If both the device-name? parameter and the /ADDRESS qualifier appear in a single SHOWB DEVICE command, SDA responds only to the parameter or qualifierC that appears first. /ADDRESS is functionally equivalent to /UCB. /BITMAP> Displays information about data structures related to Write? Bitmap (WBM). Bitmaps are used by Host-Base Volume Shadowing< (HBVS) for the implementation of Mini Copy and Host-BasedA Minimerge (HBMM). If the /BITMAP qualifier is specified with aB device that is not an HBVS virtual unit, the error NOSUCHDEV is returned.? A device name must be specified. If SHOW DEVICE/BITMAP DS is= entered, bitmaps for all HBVS virtual units are displayed. /CDT /CDT=cdt_addressC Identifies the device by the address of its Connector Descriptor: Table (CDT). This applies to cluster port devices only. /CHANNELS@ Displays information on active Memory Channel channel blocks.C This qualifier is ignored for devices other than Memory Channel. /HOMEPAGED Displays fields from the Memory Channel Home Page. This qualifier4 is ignored for devices other than Memory Channel. /PDTD Displays the Memory Channel Port Descriptor Table. This qualifier4 is ignored for devices other than Memory Channel. /UCB /UCB=ucb-addressD See the description of /ADDRESS, which is functionally equivalent to /UCB. 2 DUMP< Displays formatted information from the header, error logA buffers, logical memory blocks (LMBs), memory map, compression= data, and a summary of the dump. Also displays hexadecimal$ information of individual blocks. Format SHOW DUMP [/ALL& | /BLOCK[=m [{:|;}n] ]* | /COLLECTION [= {ALL|n} ]8 | /COMPRESSION_MAP [=m [:n[:p[{:|;}q]]]] | /ERROR_LOGS2 | /FILE = {COLLECTION | DUMP [=n]} | /HEADER# | /LMB [= {ALL|n} ] | /MEMORY_MAP | /SUMMARY] 3 Qualifiers /ALLC Displays the equivalent to specifying all the /SUMMARY, /HEADER,< /ERROR_LOGS, /COMPRESSION_MAP, /LMB=ALL, /MEMORY_MAP, and /COLLECTION qualifiers. /BLOCK /BLOCK [=m [{:|;}n] ]= Displays a hexadecimal dump of one or more blocks. You can0 specify ranges by using the following syntax:! no value Displays next block# m Displays single block? m:n Displays a range of blocks from m to n, inclusiveE m;n Displays a range of blocks starting at m and continuing for n blocks /COLLECTION /COLLECTION [= {ALL|n} ]B Displays the contents of the file identification or unwind dataC collection (on Integrity servers only) appended to a copy of theC dump using COPY/COLLECT or written to a separate collection fileA using COLLECT/SAVE. By default, a summary of the collection isC displayed. You can specify that the details of a single entry orB all entries are to be displayed. n is the start block number of@ the collection entry, as displayed in the collection summary. /COMPRESSION_MAP- /COMPRESSION_MAP [=m [:n[:p[{:|;}q]]] ]B In a compressed dump, displays details of the compression data.B You can specify levels of detail by using the following syntax,, where m,n,p,q may each be wildcarded (*):? no value Displays a summary of all compression map blocks.B m Displays contents of a single compression map block.? m:n Displays details of single compression map entry.@ m :n:p Displays compressed and raw data for the specifiedD compression section (item p in section m:n). Note that. m:n:p may contain wildcards (*).@ m:n:p:q Displays compressed and raw data for the specifiedC range of compression sections (items p to q inclusive in section m:n).@ m:n:p;q Displays compressed and raw data for the specifiedB range of compression sections (q items starting from$ item p in section m:n). /ERROR_LOGS/ Displays a summary of the error log buffers. /FILE& /FILE = {COLLECTION | DUMP [=n]}@ If analyzing multiple dump files from a partial dump copy, or? if a separate collection file is in use, the /FILE qualifier@ indicates whether the SHOW DUMP command applies to one of the( dump files or to the collection file.@ If /FILE is not specified, by default, the SHOW DUMP/SUMMARY,< SHOW DUMP/HEADER, SHOW DUMP/COLLECTION, and SHO W DUMP/ALLB commands apply to all open files, and the SHOW DUMP/LMB=ALL and? SHOW DUMP/COMPRESSION commands apply to all open dump files.? If /FILE=DUMP is specified without a file number, then these+ commands apply to the primary dump file.C By default, SHOW DUMP/BLOCK applies to the primary dump file. ByD default, SHOW DUMP/LMB=n and SHOW DUMP/COMPRESSION=n apply to theB primary dump file or to the dump file for which the command was last used.? All other qualifiers are applicable only to the primary dump file. /HEADER6 Displays the formatted contents of the dump header. /LMB /LMB[= {ALL|n} ]B In a selective dump, displays the formatted contents of logicalA memory block (LMB) headers and the virtual address (VA) rangesD within the LMB. You can specify the LMBs to be displayed by using the following syntax: no value Displays next LMB1 n Displays LMB at block n of the dump ALL Displays all LMBs /MEMORY_MAP; In a full dump, displays the contents of the memory map. /SUMMARY7 Displays a summary of the dump. This is the default. 2 EFI. This command is for Integrtiy servers only.D Displays information from the Extensible Firmware Interface (EFI)B data structures. Currently, the only display provided by SDA is the EFI memory map. Format% SHOW EFI /MEMMAP [=ALL] [range] 3 Parameters rangeA The entry or range of entries to be displayed, expressed using the following syntax: m Displays entry m. m:n Displays the entries from m to n. m;n Displays n entries starting at m/ You cannot specify a range with /MEMMAP=ALL. 3 Qualifiers /MEMMAP /MEMMAP [=ALL]> Displays the EFI memory map. This qualifier is required. By? default, only entries in the EFI memory map with the RUNTIMED attribute are displayed. If /MEMMAP=ALL is specified, all entries are displayed.D You cannot specify /MEMMAP=ALL and also supply a range of entries to be displayed. 2 EXCEPTION_FRAMED Displays the contents of the exception frame at the given addressD or searches to display a one-line summary of all exception frames" found on all applicable stacks. Format9 SHOW EXCEPTION_FRAME {address | [/SUMMARY] [range]} 3 Parameter address" Address of the exception frame. range? Range of addresses specifiable as start:end or start;length. 3 Qualifier /SUMMARY /SUMMARY (D), o The /SUMMARY qualifier is the default.= o SHOW EXCEPTION and SHOW EXCEPTION range imply /SUMMARY.B o If a range, either start:end or start;length, is given, then3 that range is searched instead of the stacks. 2 EXECUTIVEC Displays the location and size of each loadable image that makes up the executive. Format9 SHOW EXECUTIVE [execlet-name | /ALL | /SUMMARY (D)] 3 Parameter execlet-nameC Displays detailed data for the specified loadable image only. IfD you use wildcards in execlet-name, SDA displays detailed data for all matching loadable images.B If the command is specified with no parameter or qualifier, theB default is to display one line of data for each loadable image. 3 Qualifiers /ALL2 Displays detailed data for all loadable images. /SUMMARYB Displays a single line of data for all loadable images. This is the default. 3 Description@ This command displays the executive loaded images. On OpenVMSA Alpha the execlets may be sliced; on OpenVMS Integrity serversB all execlets are sliced. This means each different psect can beD relocated in system memory so that they are no longer contiguous.? The SHOW EXECUTIVE display contains information on where the psect resides.B The difference between a sliced i mage and a non-sliced image inD the display is that the base, the end, and the length of a slicedD image are blank. Only the image section base, end, and length are valid.> On OpenVMS Alpha, there are six different psect types: non-@ paged read only, non-paged read-write, paged read only, paged@ read-write, init and fixup. On OpenVMS Integrity servers, the@ number and types of psects varies from execlet to execlet. On@ both platforms, only the psects loaded into system memory are displayed.B The MAP command makes it easier to find out in which execlet an- address resides. See HELP MAP for details. 2 GALAXYC Displays a brief one-page summary of the state of the Galaxy and# all the instances in the Galaxy. Format SHOW GALAXY 2 GCTC Displays the contents of the Galaxy configuration tree either in< summary (hierarchical format) or in detail, node by node. Format6 SHOW GCT [/ADDRESS=n | /ALL | /HANDLE | /OWNER=n+ | /SUMMARY (D) | /TYPE=type]$ [/CHILDREN] | [/FULL] 3 Qualifiers /ADDRESS /ADDRESS=nA Displays the Galaxy configuration tree (GCT) node at the given address. /ALL8 Provides a detailed display of all nodes in the tree. /CHILDRENB When used with /ADDRESS=n or /HANDLE=n, the /CHILDREN qualifierA causes SDA to display all nodes in the configuration tree that& are children of the specified node. /FULL? When used with /CHILDREN, /OWNER=n, or /TYPE=type, the /FULLC qualifier causes SDA to provide a detailed display of each node. /HANDLE /HANDLE=n? Provides a detailed display of the Galaxy configuration tree$ (GCT) node with the given handle. /OWNER /OWNER=nB Displays all nodes in the tree currently owned by the node with the given handle. /SUMMARYD Provides a summary display of the Galaxy configuration tree (GCT)7 in hierarchical form. This qualifier is the default. /TYPE /TYPE=typeA Displays all nodes in the tree of the given type, which can be one of the following:/ BUS CAB COMMUNITY0 CORE CPU CPU_MODULE. EXP_CHASSIS FRU_DESC FRU_ROOT- HARD_PARTITION HOSE HW_ROOT1 IO_CTRL IOP MEMORY_CTRL/ MEMORY_DESC MEMORY_SUB PARTITION+ POWER_ENVIR PSEUDO RISER* ROOT SBB SLOT, SMB SOC SOCKET6 SW_ROOT SYS_CHASSIS SYS_INTER_SWITCH TEMPLATE_ROOT THREAD@ The type given may be an exact match, in which case just that> type is displayed (for example, a CPU); or a partial match,? in which case all matching types are displayed (for example,4 /TYPE=CP displays both CPU and CPU_MODULE nodes). 2 GLOBAL_SECTION_TABLE> Displays information contained in the global section table,? including pageable sections of loadable images. Functionally equivalent to SHOW GST. Format2 SHOW GLOBAL_SECTION_TABLE [/SECTION_INDEX=n]! SHOW GST [/SECTION_INDEX=n] 3 Qualifiers /SECTION_INDEX /SECTION_INDEX=nA Displays only the global section table entry for the specified section. 2 GLOCK? Displays the Galaxy locks for the Galaxy Management Database0 (GMDB), process tables, and/or system tables. Format( SHOW GLOCK [/ADDRESS=n [/PHYSICAL] | /ALL | /GMDB_TABLE& | /HANDLE=n [/LINKED]& | /PROCESS_TABLE [=n]& | /SYSTEM_TABLE [=n]] [/BRIEF] 3 Qualifiers /ALLD Displays information provided by the /GMDB_TABLE, /PROCESS_TABLE,A and /SYSTEM_TABLE qualifiers. The /ALL qualifier also displays. information from the base GMDB Galaxy lock. /BRIEFA Displays a single line for each Galaxy lock, regardless of any other qualifiers. /GMDB_TABLED Displays the Galaxy lock table for the Galaxy Management Database; (GMDB) including the embedded and attached Galaxy locks. /PROCESS_TABLE /PROCESS_TABLE [=n]D Displays all the process Galaxy lock tables with the embedded andC attached Galaxy locks, as well as a summary table. The /PROCESS_D TABLE=n qualifier displays the single Galaxy lock table without a summary page. /SYSTEM_TABLE /SYSTEM_TABLE [=n]C Displays all the system Galaxy lock tables with the embedded andB attached Galaxy locks, as well as a summary table. The /SYSTEM_D TABLE=n qualifier displays the single Galaxy lock table without a summary page. /ADDRESS /ADDRESS=n [/PHYSICAL]@ Displays the single Galaxy lock at address n. Because processC Galaxy locks are located by their physical address, you must use4 the /PHYSICAL qualifier to enter such an address. /HANDLE /HANDLE=n [/LINKED]B Displays the single Galaxy lock whose handle is n. The optionalB qualifier /LINKED causes SDA to display all Galaxy locks linked to the one specified. 2 GMDBA Displays the contents of the Galaxy Management Database (GMDB)@ and/or the node blocks of the instances in the Galaxy system. Format SHOW GMDB [/ALL]; [/NODE [=name | =n | /ADDRESS=n] [/SUMMARY] 3 Qualifiers /ADDRESSD Specifies the address of a single node block to be displayed whenB used with the /NODE qualifier. See the description of the /NODE qualifier. /ALLB Displays the contents of the Galaxy Management Database and all; node blocks that have ever been used (contents nonzero). /NODE% /NODE [=name | =n | /ADDRESS=n]> Displays the contents of the specified node block, given by< either the name of the instance, the partition number, or? the address of the node block. If you specify only the /NODEC qualifier, the node block for the current instance is displayed. /SUMMARY? Displays a one-page summary of the GMDB and all node blocks.& NOTE< The default action displays the contents of the Galaxy Management Database. 2 GSDD Displays information contained in the global section descriptors. Format6 SHOW GSD [/ADDRESS=n | /ALL | /DELETED | /GLXGRP, | /GLXSYS | /GROUP | /SYSTEM] 3 Qualifiers /ADDRESS /ADDRESS=nA Displays a specific global section descriptor entry, given its address. /ALLC Displays information in all the global section descriptors, thatA is, the system, group, and deleted global section descriptors,9 plus the Galaxy group and Galaxy system global section@ descriptors, if the system or dump being analyzed is a member> of an OpenVMS Galaxy system. This qualifier is the default. /DELETED@ Displays information in the deleted (that is, delete pending) global section descriptors. /GLXGRPD Displays information in the group global section descriptors of a Galaxy system. /GLXSYSC Displays information in the system global section descriptors of a Galaxy system. /GROUP@ Displays information in the group global section descriptors. /SYSTEM A Displays information in the system global section descriptors. 2 GST! See SHOW GLOBAL_SECTION_TABLE. 2 HEADER( Displays the header of the dump file. Format SHOW HEADER 2 IMAGEA Displays information about an image, regardless of the type of. image (executive, activated, or installed). Format SHOW IMAGE image-name 3 Parameters image-nameB Name of the image to be displayed. This is a required parameter that may include wildcards. 2 KFED Displays information about known file entries (installed images). Format9 SHOW KFE [image_name | /ADDRESS=kfe_address | /ALL]@ SHOW KNOWN_FILE_ENTRY [image_name | /ADDRESS=kfe_address |! /ALL] 3 Parameters image-nameA Name of the image to be displayed. This may include wildcards,6 but cannot include device or directory information. 3 Qualifiers /ADDRESS /ADDRESS=kfe_addressA Specifies the address of a single KFE of interest. The detailsD are displayed for this KFE with device/directory information from0 the corresponding KFD (Known File Directory). /ALL< Displays details for all KFEs, including device/directory@ information from the corresponding KFDs, with the contents of' the Known File Pointer Block (KFPB). 2 KNOWN_FILE_ENTRY See SHOW KFE. 2 LAN? Displays information contained in various local area network (LAN) data structures. Format! SHOW LAN [/qualifier[,...]] 3 Qualifiers /ATMB Specifies that asynchronous transfer mode (ATM) information for the LAN be displayed. /CLIENT /CLIENT=nameD Specifies that information be displayed for the specified client.? Valid client designators are SCA, DECNET, LAT, MOPRC, TCPIP,@ DIAG, ELN, BIOS, LAST, USER, ARP, MOPDL, LOOP, BRIDGE, DNAME,D ENCRY, DTIME, and LTM. The /CLIENT, /DEVICE, and /UNIT qualifiers) are synonymous and mutually exclusive. /COUNTERSD Specifies that the LAN station block (LSB) and unit control block (UCB) counters be displayed. /CSMACD> Specifies that Carrier Sense Multiple Access with Collision< Detect (CSMA/CD) information for the LAN be displayed. ByD default, both CSMA/CD and Fiber Distributed Data Interface (FDDI) information is displayed. /DEVICE /DEVICE=nameD Specifies that information be displayed for the specified device,@ unit, or client. For each LAN adapter on the system, there is@ one device and multiple users of that device called, units or@ clients. Device designators are specified in the format XXdn,C where XX is the type of device, d is the device letter, and n isC the unit number. The device letter and unit number are optional.A The first unit, which is always present, is the template unit.? These are specified as indicated in this example for a DEMNA called EX:5 /DEVICE=EX-display all EX devices on the system2 /DEVICE=EXA-display the first EX device only- /DEVICE=EXA0-display the first EXA unit" /DEVICE=SCA-display SCA unit# /DEVICE=LAT-display LAT units? Valid client names are listed in the /CLIENT=name qualifier.@ The /CLIENT, /DEVICE, and /UNIT qualifiers are synonymous and mutually exclusive. /ELANC Specifies information from an Emulated LAN (ELAN) that runs overC an asynchronous transfer mode (ATM) network. The /ELAN qualifierB displays the LAN Station Block (LSB) address, device state, and> the LSB fields pertinent to an ELAN for both the parent ATM? device and the ELAN pseudo-device drivers. It also specifiesA the name, description, parent device, state, and LAN emulation' client (LEC) attributes of the ELAN.5 The qualifier /ELAN used with the device qualifier; (/ELAN/DEVICE=ELA) will only display information for the% specified device or pseudo-device. /ERRORS> Specifies that the LSB and UCB error counters be displayed. /FDDI9 Specifies that Fiber Distributed Data Interface (FDDI)A information for the LAN be displayed. By default, both CSMA/CD% and FDDI information is displayed. /FULLA Specifies that all information from the LAN, LSB, and UCB data structures be displayed. /INTERNAL? Specifies internal counters of the drivers by displaying theA internal counters. If the /INTERNAL qualifier is used with theC /DEVICE qualifier, the /INTERNAL specifies the internal counters of a specific driver. /QUEUESC Specifies a listing of all queues, whether their status is valid= or invalid, and all elements of the queues. If the /QUEUES< qualifier is used with the /DEVICE qualifier, the /QUEUES specifies a specific queue. /SOURCEROUTING= Specifies that the information in the source routing table4 maintained by the Token Ring driver be displayed. /SUMMARY> Specifies that only a summary of LAN information (a list ofA flags, LSBs, UCBs, and base addresses) be printed. This is the default. /TIMESTAMPSD Specifies that time information (such as start and stop times andD error times) from the device and unit data structures be printed.0 SDA displays the data in chronological order. /TRB Specifies that Token Ring information for the LAN be displayed. /UNIT /UNIT=name< Specifies that information be displayed for the specified? unit. See the descriptions for /CLIENT=name and /DEVICE=name qualifiers. /VCID Specifies that information be displayed for the VMS Communication@ Interface Block (VCIB) for each LAN device with an active VCIB user. If you use the /VCI qualifier with the /DEVICE qualifier,7 the VCIB is only displayed for the specified device. 2 LOCKS> Displays information about all lock manag!ement locks in the% system, or about a specified lock. Format SHOW LOCKS [ lock-id | /ADDRESS=n | /ALL (d) | /BRIEF | /BLOCKING | /CACHED | /CONVERT | /GRANTED | /NAME=name* | /STATUS=(keyword[,...]) | /WAITING ] or# SHOW LOCKS {/POOL | /SUMMARY} 3 Param&eter lock-id Name of a specific lock. 3 Qualifiers /ADDRESS /ADDRESS=nA Displays a specific lock, given the address of the lock block. /ALL@ Lists all locks that exist in the system. This is the default& behavior of the SHOW LOCKS command. /BLOCKING@ Displays only the locks that have a blocking AST specified or attached. /BRIEF7 Displays a single line of information for each lock. /CACHED@ Displays locks that are no longer valid. The memory for these@ locks is saved so that later requests for locks can use them.C Cached locks are not displayed in the other SHOW LOCKS commands. /CONVERT< Displays only the locks that are on the conversion queue. /GRANTED9 Displays only the locks that are on the granted queue. /NAME /NAME=name@ Displays all locks on the specified resource. Name can be the= actual name of the resource, if it only contains uppe rcaseA letters, numerals, the underscore (_), dollar sign, colon (:),A and some other printable characters, as for example, /NAME=MY_= LOCK. If it contains other printable characters (includingD lowercase letters), you may need to enclose the name in quotationA marks (""), as for example, /NAME="My_Lock/47". If it contains@ nonprintable characters, you can specify the name as a comma-C separated list comprised of strings and hexadecimal numbers. ForD example, /NAME=("My_Lock",0C00,"/47") would specify the name "My_B Lock/47". The hexadecimal number can be no more than 8B digits (4 bytes) in length. Nonprintable sequences of more than? 4 bytes must be split into multiple hexadecimal numbers. The6 maximum length of a resource name is 32 characters. /POOLC Displays the lock manager's poolzone information, which contains3 the lock blocks (LKB) and resource blocks (RSB). /STATUS /STATUS=(keyword[,...])B Display s only the locks that have the specified status bits setB in the LKB$L_STATUS field. If you specify only one keyword, you< can omit the parentheses. Status keywords are as follows: Keyword Meaning; 2PC_IP Indicates a two-phase operation in progress7 2PC_PEND Indicates a two-phase operation pending0 ASYNC Completes request asynchronously( BLKASTFLG Specifies a blocking AST2 BLKASTQED Indicates a blocking AST is queued+ BRL Indicate s a byte range lock/ CACHED Indicates a lock block in cache5 CVTSUBRNG Indicates a sub-range convert request2 CVTTOSYS Converts back to system-owned lock' DBLKAST Delivers a blocking AST) DCPLAST Delivers a completion AST5 DPC Indicates a delete pending cache lock% FLOCK Indicates a fork lock% GRSUBRNG Grants sub-range lock. IP Indicates operation in process7 MSTCPY Indicates a lock block is a master copy 1 NEWSUBRNG Indicates a new sub-range request% NOQUOTA Does not charge quota7 PCACHED Indicates lock block needs to be cached* PROTECT Indicates a protected lock' RESEND Resends during failover) RM_RBRQD Requires remaster rebuild' RNGBLK Specifies a range block* RNGCHG Indicates a changing range8 TIMOUTQ Indicates lock block is on timeout queue9 VALBLKRD Indicates read access to lock value block: VALBLKWRT Indicates write access to lock value block/ WASSYSOWN Indicates was system-owned lock /SUMMARY2 Displays summary data and performance counters. /WAITING# Displays only the waiting locks. 2 MACHINE_CHECK@ Displays the contents of the stored machine check frame. ThisC command is valid for the DEC 4000 Alpha, DEC 7000 Alpha, and DEC 10000 Alpha computers only. Format* SHOW MACHINE_CHECK [/FULL] [cpu-id] 3 Parameter cpu-id=  Numeric value indicating the identity of the CPU for whichA context information is to be displayed. This parameter changesC the SDA current CPU (the default) to the CPU specified with cpu-C id. If you specify the 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 rangeB If you use the cpu-id parameter, the SHOW MACHINE_CHECK commandD performs an implicit SET CPU command, making the CPU indicated by6 cpu-id the current CPU for subsequent SDA commands. 3 Qualifier /FULL9 Specifies that a detailed version of the machine check? information be displayed. This is currently identical to the default summary display. 2 MEMORY; Displays the availability and usage of memory resources. Format9 SHOW MEMORY [/ALL][/BUFFER_OBJECTS][/CACHE][/FILES]> [/FULL][/GH_REGIONS][/PHYSICAL_P" AGES][/POOL]% [/RESERVED][/SLOTS] 3 Qualifiers /ALL; Displays all available information, that is, information) displayed by the following qualifiers: /BUFFER_OBJECTS /CACHE /FILES /GH_REGIONS /PHYSICAL_PAGES /POOL /RESERVED /SLOTS This is the default display. /BUFFER_OBJECTS= Displays information about system resources used by buffer objects. /CACHEC Displ ays information about either the Virtual I/O Cache facilityA or the Extended File Cache facility. The system parameter VCC_D FLAGS determines which is used. The cache facility information isB displayed as part of the SHOW MEMORY and SHOW MEMORY/CACHE/FULL commands. /FILESA Displays information about the use of each paging and swapping file currently installed. /FULL; When used with the /POOL and /CACHE qualifiers, displays? additional information. This qualifier is ignored otherwise.@ For /CACHE, the additional information is only displayed whenB the Virtual I/O Cache facility is in use (Alpha only); /FULL isD ignored if the Extended File Cache facility is in use. Additional? information on how memory is being used by the Extended FileC Cache facility can be obtained using the XFC extension described in Chapter 9. /GH_REGIONS: Displays information about the granularity hint regions? (GHR) that have been establis hed. For each of these regions,D information is displayed about the size of the region, the amountA of free memory, the amount of memory in use, and the amount ofC memory released to OpenVMS from the region. The granularity hintC regions information is also displayed as part of SHOW MEMORY and SHOW MEMORY/ALL commands. /PHYSICAL_PAGESC Displays information about the amount of physical memory and the% number of free and modified pages. /POOL> Displays  information about the usage of each dynamic memory? (pool) area, including the amount of free space and the size0 of the largest contiguous block in each area. /RESERVED2 Displays information about memory reservations. /SLOTSA Displays information about the availability of process control. block (PCB) vector slots and balance slots. 2 PAGE_TABLEC Displays a range of system page table entries, the entire system/ page table, or the entire global page table. Format6 SHOW PAGE_TABLE [range | /FREE [/HEADER=address], | /GLOBAL | /GPT | /PT. | /INVALID_PFN [=option]0 | /NONMEMORY_PFN [=option]7 | /PTE_ADDRESS | /SECTION_INDEX=n8 | /S0S1 (d) | /S2 | /SPTW | /ALL]+ [/L1 | /L2 | /L3 (d)] 3 Parameter range< Range of virtual addresses or PTE addresses for which SDA@ display s page table entries. If the qualifier /PTE_ADDRESS isB given, then the range is of PTE addresses; otherwise, the rangeC is of virtual addresses. The range given can be of process-space addresses.= If /PTE_ADDRESS is given, the range is expressed using the following syntax:9 m Displays the single page table entry at address mC m:n Displays the page table entries from address m to address nD m;n Displays n bytes of page table entries starting at address mB I f /PTE_ADDRESS is not given, then range is expressed using the following syntax:@ m Displays the single page table entry that corresponds to virtual address mD m:n Displays the page table entries that correspond to the range( of virtual addresses from m to nE m;n Displays the page table entries that correspond to a range of- n bytes starting at virtual address mA Note that OpenVMS Alpha and Integrity servers page protections are slightly different. 3 Qualifiers /FREED Causes the starting addresses and sizes of blocks of pages in theA free PTE list to be displayed. The qualifiers /S0S1 (default),C /S2, /GLOBAL, and /HEADER determine which free PTE list is to beB displayed. A range cannot be specified, and no other qualifiers can be combined with /FREE. /GLOBALC Lists the global page table. When used with the /FREE qualifier,7 /GLOBAL indicates the free PTE list to be displayed. /HEADER /HEADER=addressD When used with the /FREE qualifier, the /HEADER=address qualifierC displays the free PTE list for the specified private page table. /GPTA Specifies the portion of page table space that maps the global# page table as the address range. /INVALID_PFN /INVALID_PFN [=option]D The /INVALID_PFN qualifier, which is valid only on platforms thatB supply an I/O memory map, causes SDA to display only page table@ entries that ma p to PFNs that are not in the system's privateB memory or in Galaxy-shared memory, and which are not I/O access pages.D /INVALID_PFN has two optional keywords, READONLY and WRITABLE. IfB neither keyword is specified, all relevant pages are displayed.; If READONLY is specified, only pages marked for no write= access are displayed. If WRITABLE is specified, only pagesA that allow write access are displayed. For example, SHOW PAGE_@ TABLE/ALL/INVALID_PFN=WRITABLE would display all system pagesC whose protection allows write, but which map to PFNs that do not belong to this system. /L1 /L1 /L2 /L3 (D)= Specifies the level for which page table entries are to beA displayed for the specified portion of memory. You can specify& only one level. /L3 is the default. /L2A Displays only the Level 2 page table entries for the specified) portion of memory. /L3 is the default. /L3A Displays only the Level 3 page table entries for the specified) portion of memory. /L3 is the default. /NONMEMORY_PFN /NONMEMORY_PFN [=option]? The /NONMEMORY_PFN qualifier causes SDA to display only pageB table entries that are not in the system's private memory or in Galaxy-shared memory.C /NONMEMORY_PFN has two optional keywords, READONLY and WRITABLE.: If neither keyword is specified, all relevant pages are displayed.; If READONLY is specified, only pages marked for no write= access are displayed. If WRITABLE is specified, only pagesA that allow write access are displayed. For example, SHOW PAGE_B TABLE/ALL/NONMEMORY_PFN=WRITABLE would display all system pagesC whose protection allows write, but which map to PFNs that do not belong to this system. /PTB Specifies that the page table entries for the page table region' of system space are to be displayed. /PTE_ADDRESSD Specifies that the range given is of PTE addresses instead of the( virtual addresses mapped by the PTEs. /SECTION_INDEX /SECTION_INDEX=n? Displays the page table for the range of pages in the globalD section or pageable part of a loaded image. For pageable portionsD of loaded images, one of the qualifiers /L1, /L2, or /L3 can also be specified. /S0S1 /S0S1 (D) /S2: Specifies the region whose page table entries are to be? displayed. When used with the /FREE qualifier, indicates theD free PTE list to be displayed. By default, the page table entries3 or the free list for S0 & S1 space is displayed. /S2D Specifies S2 space as the address range. When used with the /FREE> qualifier, /S2 indicates the free PTE list to be displayed. /SPTW9 Displays the contents of the system page table window. /ALL: Displays the page table entries for all shared (system)? addresses. It is equivalent to specifying all of /S0S1, /S2, and /PT. 2 PARAMETER? Displays the name, location, and value of one or more SYSGENB parameters currently in use or at the time that the system dump was taken. Format' SHOW PARAMETER [sysgen_parameter]8 [/ACP] [/ALL] [/CLUSTER] [/DYNAMIC]< [/GALAXY] [/GEN] [/JOB] [/LGI] [/MAJOR]A [/MULTIPROCESSING] [/OBSOLETE] [/PQL] [/RMS]? [/SCS] [/SPECIAL] [/SYS] [/STARTUP] [/TTY] 3  Parameter sysgen_parameterA The name of a specific parameter to be displayed. The name canB include wildcards. However, a truncated name is not recognized,9 unlike with the equivalent SYSGEN and SYSMAN commands. 3 Qualifiers /ACP( Displays all Files-11 ACP parameters. /ALLC Displays the values of all parameters except the special control parameters. /CLUSTER0 Displays all parameters specific to clusters. /DYNAMICC Displ$ays all parameters that can be changed on a running system. /GALAXY6 Displays all parameters specific to Galaxy systems. /GEN# Displays all general parameters. /JOB* Displays all Job Controller parameters. /LGI2 Displays all LOGIN security control parameters. /MAJOR* Displays the most important parameters. /MULTIPROCESSING3 Displays parameters specific to multiprocessing. /OBSOLETEA Displays all obsolete system parameters. SDA displays obsoleteD parameters only if they are named explicitly (no wildcards) or if /OBSOLETE is given. /PQL> Displays the parameters for all default and minimum process quotas. /RMS@ Displays all parameters specific to OpenVMS Record Management Services (RMS). /SCS= Displays all parameters specific to OpenVMS Cluster System Communications Services. /SPECIAL+ Displays all special control parameters. /STARTUP!? Displays the name of the site-independent startup procedure. /SYS) Displays all active system parameters. /TTY0 Displays all parameters for terminal drivers. 2 PFN_DATAC Displays information that is contained in the page lists and PFN database. Format? SHOW PFN_DATA { [/qualifier] | pfn [{:end-pfn|;length}] } or SHOW PFN_DATA/MAP 3 Parameters pfn9 Page frame number (PFN) of the physical page for which" information is to be displayed. end-pfnD Last PFN to be displayed. When you specify the end-pfn parameter,= a range of PFNs is displayed. This range starts at the PFNA specified by the pfn parameter and ends with the PFN specified by the end-pfn parameter. length? Length of the PFN list to be displayed. When you specify theD length parameter, a range of PFNs is displayed. This range startsD at the PFN specified by the pfn parameter and contains the number0 of entries specified by the length parameter. 3 Qualifiers /ADDRESS /ADDRESS=PFN-entry-address@ Displays the PFN database entry at the address specified. The@ address specified is rounded to the nearest entry address, soA if you have an address that points to one of the fields of the9 entry, the correct database entry will still be found. /ALL Displays the following lists: Free page list Zeroed free page list Modifi ed page list Bad page list Untested page list Private page lists, if any: Per-color or per-RAD free and zeroed free page lists3 Entire database in order by page frame numberA This is the default behavior of the SHOW PFN_DATA command. SDAC precedes each list with a count of the pages it contains and its low and high limits. /BADD Displays the bad page list. SDA precedes the list with a count of< the pages it contains, its low limit, and i!ts high limit. /COLOR /COLOR [= {n|ALL} ]@ Displays data on page coloring. The following table shows the? command options available with the COLOR and RAD qualifiers,% which are functionally equivalent. Options MeaningD /COLOR with no Displays a summary of the lengths of the color? value page lists for both free pages and zeroed pages.A /COLOR=n where n Displays the data in the PFN lists (for the? " is a color number specified color) for both free and zeroed pages.A /COLOR=ALL Displays the data in the PFN lists (for allC colors), for both free and zeroed free pages.A /COLOR=n or Displays only the data in the PFN list (forD /COLOR=ALL with the specified color or all colors), for eitherC /FREE or /ZERO free or zeroed free pages as appropriate. TheD qualifiers /BAD and /MODIFIED are igno#red with. /COLOR=n and /COLOR=ALL.C /COLOR without an Displays the color summary in addition to the4 option specified display of the requested list. together with one or more of /FREE, /ZERO, /BAD, or /MODIFIED< For more information on page coloring, see OpenVMS System. Management Utilities Reference Manual: M-Z. /FREEB Displays the free page list. SDA precedes the list with a count? of the pages it contains, its low limit, and $its high limit. /MAP< Displays the contents of the PFN memory map. On platforms< that support it, the I/O space map is also displayed. YouA cannot combine the /MAP qualifier with any parameters or other qualifiers. /MODIFIED> Displays the modified page list. SDA precedes the list with@ a count of the pages it contains, its low limit, and its high limit. /PRIVATE /PRIVATE [=address]B Displays private PFN lists. If no address is given, a%ll private@ PFN lists are displayed; if an address is given, only the PFN8 list whose head is at the given address is displayed. /RAD /RAD [= {n|ALL} ]? Displays data on the disposition of pages among the Resource9 Affinity Domains (RADs) on applicable systems. /RAD isA functionally equivalent to /COLOR. See the table in the /COLOR? qualifier description for the command options available with /RAD. /SUMMARY /SUMMARY[=(option,...)]= By &default, displays a summary of all pages in the system,= totaling pages by page location (Free List, Modified List,@ Active, and so on) and by page type (Process, System, Global,C and so on). Also, provides a breakdown of active system pages by0 their virtual address (S0/S1, S2, and so on).A Additional information is displayed if one or more options areB given. If multiple options are given, they must be separated by= commas and enclosed in parentheses. Available options are': o /SUMMARY=PROCESSC Displays a breakdown of active process pages for each process? by virtual address (P0, P1, and so on), and of non-active% process pages by page location. o /SUMMARY=GLOBALC Displays a breakdown for each global section of its in-memory pages by page location. o /SUMMARY=RADA If RADs are enabled on the system, displays a breakdown for; each RAD of its in-memory pages by location and type. o /SUMMA(RY=ALL1 Equivalent to /SUMMARY=(PROCESS,GLOBAL,RAD); You cannot combine the /SUMMARY qualifier with any other+ qualifiers, but you can specify a range. /SYSTEMB Displays the entire PFN database in order by page frame number, starting at PFN 0000. /UNTESTEDB Displays the state of the untested PFN list that was set up for deferred memory testing. /ZERO6 Displays the contents of the zeroed free page list. 2 POOLB Displays the )contents of the nonpaged dynamic storage pool, theD bus-addressable pool, and the paged dynamic storage pool. You canB display part or all of each pool. If you do not specify a rangeC or qualifiers, the default is SHOW POOL/ALL. Optionally, you can< display the pool history ring buffer and pool statistics. Format= SHOW POOL [range | /ALL (d)| /BAP | /NONPAGED | /PAGED]5 [ /BRIEF | /CHECK | /FREE | /HEADER1 | /MAXIMUM_BYTES [=n] | /SU*MMARY; | /TYPE=packet-type | /SUBTYPE=packet-type | /UNUSED ]( [/RING_BUFFER[=address]]? [/STATISTICS [=ALL] [/NONPAGED | /BAP | /PAGED] 3 Parameter rangeA Range of virtual addresses in pool that SDA is to examine. You2 can express a range using the following syntax:6 m:n Range of virtual addresses in pool from m to n< m;n Range of virtual addresses in pool starting at m and contin+uing for n bytes 3 Qualifiers /ALLC Displays the entire contents of the dynamic storage pool, exceptD for those portions that are free (available). This is the default% behavior of the SHOW POOL command. /BAPD Displays the contents of the bus-addressable dynamic storage pool currently in use. /BRIEFC Displays only general information about the dynamic storage pool and its addresses. /CHECK= Checks all free packets for POOLCHECK,-style corruption, in> exactly the same way that the system does when generating a POOLCHECK crash dump. /FREE@ Displays the entire contents, both allocated and free, of theD specified region or regions of pool. Use the /FREE qualifier withD a range to show all of the used and free pool in the given range. /HEADERD Displays only the first 16 bytes of each data packet found within+ the specified region or regions of pool. /MAXIMUM_BYTES /MAXIM-UM_BYTES [=n]C Displays only the first n bytes of a pool packet; if you specify; /MAXIMUM_BYTES without a value, the default is 64 bytes. /NONPAGED= Displays the contents of the nonpaged dynamic storage pool currently in use. /PAGEDD Displays the contents of the paged dynamic storage pool currently in use. /RING_BUFFER /RING_BUFFER [=address]@ Displays the contents of the pool history ring buffer if pool> checking has been enabled. .Entries are displayed in reverseA chronological order, that is, most to least recent. If addressB is specified, the only entries in the ring buffer displayed are, for pool blocks that address lies within. /STATISTICS /STATISTICS [= ALL]> Displays usage statistics about each lookaside list and the@ variable free list. For each lookaside list, its queue header@ address, packet size, the number of packets, attempts, fails,B and deallocations are displayed. (If po /ol checking is disabled,A the attempts, fails, and deallocations are not displayed.) For? the variable free list, its queue header address, the number> of packets and the size of the smallest and largest packets> are displayed. You can further qualify /STATISTICS by using@ either /NONPAGED, /BAP, or /PAGED to display statistics for aB specified pool area. Paged pool only has lookaside lists if theC system parameter PAGED_LAL_SIZE has been set to a nonzero value;D therefore p0aged pool lookaside list statistics are only displayed( if there has been activity on a list.B If you specify /STATISTICS without the ALL keyword, only activeB lookaside lists are displayed. Use /STATISTICS = ALL to display all lookaside lists. /SUBTYPE /SUBTYPE=packet-typeA Displays the packets within the specified region or regions of. pool that are of the indicated packet-type. /SUMMARYC Displays only an allocation summary for each specified regi!1on of pool. /TYPE /TYPE=packet-typeA Displays the packets within the specified region or regions of. pool that are of the indicated packet-type. /UNUSEDB Displays only variable free packets and lookaside list packets, not used packets. 2 PORTSB Displays those portions of the port descriptor table (PDT) that are port independent. Format# SHOW PORTS [/qualifier[,...]] 3 Qualifiers /ADDRESS /ADDRESS=p 2dt-address> Displays the specified port descriptor table (PDT). You can? find the pdt-address for any active connection on the systemB in the PDT summary page display of the SHOW PORTS command. ThisD command also defines the symbol PE_PDT. The connection descriptor@ table (CDT) addresses are also stored in many individual data= structures related to System Communications Services (SCS)? connections, for instance, in the path block displays of the SHOW CLUSTER/SCS command. 3 /BUS /BUS=bus-address, Displays bus (LAN device) structure data. /CHANNEL /CHANNEL=channel-address Displays channel (CH) data. /DEVICE7 Displays the network path description for a channel. /MESSAGED Displays the message data associated with a virtual circuit (VC). /NODE /NODE=nodeD Shows only the virtual circuit block associated with the specificD node. When you use the /NODE qualifier, you must also specify4 the3 address of the PDT using the /ADDRESS qualifier. /VC /VC=vc-address% Displays the virtual circuit data. 2 PROCESSC Displays the software and hardware context of any process in theB system. If the process is suspended (ANALYZE/SYSTEM), then some@ displays may be incomplete or unavailable. If the process wasA outswapped at the time of the system crash, or not included inC a selective dump (ANALYZE/CRASH_DUMP), then some displays may be incom5plete or unavailable.C Please see descriptions of the individual qualifiers for details) not included in the syntax definition.& NOTE? The format of this command is included in online help for> completeness, but it is highly recommended that you view@ this complex command construction in the HP OpenVMS System Analysis Tools Manual. Format SHOW PROCESS" Select which process to show:/ [process-name |6 ALL | /ADDRESS=pcb_address, | /ID=nn | /INDEX=nn | /NEXT | /SYSTEM] ) Select what to show about a process:@ Entries in braces that are followed by a * are functionallyC equivalent. See the individual qualifier descriptions for more information.) [ [/ALL] | [/BUFFER_OBJECTS] | [/CHANNELS [/FID_ONLY]] | [/FANDLES] | [/IMAGES [= {name|ALL} ]] | [/LOCKS [/BRIEF]] | [{/PAGE_TABLES | /PPT} *! [=ALL | range [/PTE_ADD7RESS]8 | [[/P0 (D)] | [/P1] | [/P2] | [/PT]] | /GSTX=index | [/INVALID_PFN [=option]]! | [/NONMEMORY_PFN [=option]] | /SECTION_INDEX=n& | {/RDE [=id] | /REGIONS [=id]} * | [/L1 | /L2 | /L3 (D)] ] | [/PCB]3 | [/PERSONA [=address][/RIGHTS [/AUTHORIZED]]] | [/PHD]9 | [/POOL[{=P0 | =P1 | =IMGACT | =ALL (D)}] | [range]: [/BRIEF] | [/CHECK] | [{/FREE | /UNUSED}] | [/HEADER]A | [/MAXIMUM_BYTES [=n]] | [/RING_BUFFER[={ALL | address}]8] | [/STATISTICS]4 | [{/SUBTYPE=packet-type | /TYPE=packet-type} ] | [/SUMMARY] ]) | [{/PROCESS_SECTION_TABLE | /PST} *# [/FID_ONLY] [SECTION_INDEX=n]]( | [{/RDE [=id] | /REGIONS [=id]}] * | [/REGISTERS] | [/RMS [=(option[,...])]] | [/SEMAPHORE] | [/THREADS] | [/TQE [=ALL]]' | [/UNWIND_TABLE [= {name | ALL}]]0 | [{/WORKING_SET_LIST | /WSL}]* [=option] ] 3 Parameters ALLC Information is to be displa9yed about all processes that exist in the system. process-name@ Name of the process for which information is to be displayed.A Use of the process-name parameter or one of the /ADDRESS, /ID,? /INDEX, /NEXT, or /SYSTEM qualifiers causes the SHOW PROCESS= command to perform an implicit SET PROCESS command, making? the indicated process the current process for subsequent SDA commands.? When you analyze a crash dump from a multiprocessing system,B changing proc :ess context may require a switch of CPU context as@ well. When you issue a SET PROCESS command, SDA automaticallyC changes its CPU context to that of the CPU on which that processD is, or was most recently, current. You can determine the names ofA the processes in the system by issuing a SHOW SUMMARY command.; The process-name can contain up to 15 uppercase letters,B numerals, the underscore (_), dollar sign, colon (:), and someB other printable characters. If it contains an;y other characters= (including lowercase letters), you may need to enclose the) process-name in quotation marks (" "). 3 Qualifiers /ADDRESS /ADDRESS=pcb-addressD Specifies the process control block (PCB) address of a process in2 order to display information about the process. /ALL> Displays all information shown by the following qualifiers: /BUFFER_OBJECTS /CHANNELS /FANDLES /IMAGES=ALL /LOCKS /PAGE_TA<BLES=ALL /PCB /PERSONA/RIGHTS /PHD) /POOL/HEADER/RING_BUFFER/STATISTICS /PROCESS_SECTION_TABLE /REGIONS /REGISTERS /RMS /SEMAPHORE /THREADS /TQE- /UNWIND_TABLE (Integrity servers only.) /WORKING_SET_LIST /AUTHORIZED4 Used with the /PERSONA/RIGHTS qualifiers. See the< /PERSONA/RIGHTS/AUTHORIZED description for the use of the /AUTHORIZED qualifier. /BRIEFB When used with the /LOC=KS qualifier, causes SDA to display eachB lock owned by the current process in brief format, that is, oneA line for each lock. When used with the /POOL qualifier, causesA SDA to display only general information about process pool and its addresses. /BUFFER_OBJECTS> Displays all the buffer objects that a process has created. /CHANNELS> Displays information about the I/O channels assigned to the process. /CHECK; Checks all free process pool pack>ets for POOLCHECK-style? corruption in exactly the same way that the system does when% generating a POOLCHECK crash dump. /FANDLES6 Displays the data on the process' fast I/O handles. /FID_ONLYC When used with /CHANNEL or /PROCESS_SECTION_TABLE (/PST), causesC SDA to not attempt to translate the FID (File ID) to a file name$ when invoked with ANALYZE/SYSTEM. /FREE; When used with /POOL, displays the entire contents, bothB allocated and free, o?f the specified region or regions of pool.C Use the /FREE qualifier with a range to show all of the used and free pool in the given range. /GSTX /GSTX=index@ When used with the /PAGE_TABLES qualifier, displays only page1 table entries for the specific global section. /HEADERA When used with /POOL, displays only the first 16 bytes of eachD data packet found within the specified region or regions of pool. /IMAGES /IMAGES [= {name|ALL} @]A For all images in use by this process, displays the address of> the image control block, the start and end addresses of theA image, the activation code, the protected and shareable flags,@ the image name, and the major and minor IDs of the image. TheC /IMAGES=ALL qualifier also displays the base, end, image offset,= section type, and global pointer for all images (IntegrityB servers) or for all installed resident images (Alpha) in use byD this process. The /IMAGE=nameA qualifier displays this information= for just the specified images; name may contain wildcards.@ See the OpenVMS Linker Utility Manual and the Install utility? chapter in the OpenVMS System Management Utilities Reference< Manual for more information on images installed using the /RESIDENT qualifier. /ID@ See the /INDEX qualifier, which is functionally equivalent to /ID. /INDEXA Specifies the process for which information is to be displayedB by it Bs index into the system's list of software process control@ blocks (PCBs), or by its process identification (ID). /ID andC /INDEX can be used interchangeably. You can supply the following values for nn: o The process index itself.@ o The process identification (PID) or extended PID longword,D from which SDA extracts the correct index. You can specify theB PID or extended PID of any thread of a process with multiple@ kernel threads. Any thread-specific data dCisplayed by SHOW+ PROCESS will be for the given thread.> To obtain these values for any given process, issue the SDA command SHOW SUMMARY/THREADS. /INVALID_PFN /INVALID_PFN [=option]D The /INVALID_PFN qualifier, which is valid only on platforms thatB supply an I/O memory map, causes SDA to display only page table@ entries that map to PFNs that are not in the system's privateB memory or in Galaxy-shared memory, and which are not I/O access3 pages. Use of D /INVALID_PFN implies /PAGE_TABLES.D The /INVALID_PFN qualifier allows two optional keywords, READONLY@ and WRITABLE. If neither keyword is given, all relevant pagesC are displayed. If you specify READONLY, only pages marked for noB write access are displayed. If you specify WRITABLE, only pagesC that allow write access are displayed. For example, SHOW PROCESSD ALL/PAGE_TABLE=ALL/INVALID_PFN=WRITABLE would display all process? pages (for all processes) whose protection allowsE write, but7 which map to PFNs that do not belong to this system. /L1 /L1 /L2 /L3 (D)@ Used with the /PAGE_TABLES qualifier to specify the level for@ which page table entries are to be displayed. You can specify& only one level. /L3 is the default. /L2A When used with the /PAGE_TABLES qualifier, specifies that onlyB the the Level 2 page table entries are to be displayed. Level 3 is the default. /L3A When used with the F/PAGE_TABLES qualifier, specifies that onlyB the the Level 3 page table entries are to be displayed. This is the default. /LOCKS /LOCKS [/BRIEF]C Displays the lock management locks owned by the current process.C When specified with /BRIEF, produces a display similar in formatA to that produced by the SHOW LOCKS command; that is, it causesA SDA to display each lock owned by the current process in brief& format with one line for each lock. /MAXIMUMG_BYTES /MAXIMUM_BYTES [=n]= When used with /POOL, displays only the first n bytes of aB pool packet; if you specify /MAXIMUM_BYTES without a value, the default is 64 bytes. /NEXTB Locates the next valid process in the system's process list andC selects that process. If there are no further valid processes in3 the system's process list, SDA returns an error. /NONMEMORY_PFN /NONMEMORY_PFN [=option]? The /NONMEMORY_PFN qualifier causes SDA H to display only page@ table entries that are in neither the system's private memory= nor in Galaxy-shared memory. Use of /NONMEMORY_PFN implies /PAGE_TABLES.= The /NONMEMORY_PFN qualifier allows two optional keywords,C READONLY and WRITABLE. If neither keyword is given, all relevantB pages are displayed. If you specify READONLY, only pages markedC for no write access are displayed. If you specify WRITABLE, onlyA pages that allow write access are displayed. For example,I SHOWB PROCESS ALL/PAGE_TABLE=ALL/NONMEMORY_PFN=WRITABLE would display@ all process pages (for all processes) whose protection allows@ write, but which map to PFNs that are in neither the system's+ private memory nor Galaxy-shared memory. /P0 /P0 (D) /P1 /P2 /PTD When used with the /PAGE_TABLES qualifier, /P0, /P1, /P2, and /PTB specify one or more regions for which page table entries shouldA be displayed. You can specify any or none oJf these values. The default is /P0. /P1> When used with the /PAGE_TABLES qualifier, /P1 displays the@ page table entries for P1 space. By default, only P0 space is displayed. /P2> When used with the /PAGE_TABLES qualifier, /P2 displays the@ page table entries for P2 space. By default, only P0 space is displayed. /PAGE_TABLES; Displays the page tables of the process P0 (process), P1A (control), P2, or PT (page table) region, or, optionally, K page= table entries for a range of addresses. You can use /PAGE_C TABLES=ALL to display page tables of all four regions. With /Ln,D the page table entries at the level specified by /L1, /L2, or /L3 (the default) are displayed.@ With /RDE=id or /REGIONS=id, SDA displays the page tables forA the address range of the specified address region. When you do? not specify an ID, the page tables are displayed for all the. process-permanent and user-defined regions.= If /P LTE_ADDRESS is given, the range is expressed using the following syntax:9 m Displays the single page table entry at address mC m:n Displays the page table entries from address m to address nD m;n Displays n bytes of page table entries starting at address mB If /PTE_ADDRESS is not given, then range is expressed using the following syntax:@ m Displays the single page table entry that corresponds to virtual address mD m:n Displays the page table entrieMs that correspond to the range( of virtual addresses from m to nE m;n Displays the page table entries that correspond to a range of- n bytes starting at virtual address m@ The /GSTX=index qualifier causes SDA to display only the page? table entries for the pages in the specified global section.< The /SECTION_INDEX=n qualifier causes SDA to display only@ the page table entries for the pages in the specified process section. /PCBB Displays the infoNrmation contained in the process control blockC (PCB). This is the default behavior of the SHOW PROCESS command. /PERSONA /PERSONA [=address]B Displays all persona security blocks (PSBs) held in the PERSONA< ARRAY of the process, and then lists selected informationC contained in each initially listed PSB. The selected information? includes the contents of the following cells inside the PSB: Flags Reference count Execution mode Audit Ostatus Account name UIC Privileges Rights enabled maskA If you specify a PSB address, this information is provided for that specific PSB only.B If you also specify /RIGHTS, SDA expands the display to provide@ additional selected information, including all the rights and> their attributes currently held and active for each persona> security block (PSB) specified with the /PERSONA qualifier.B If you specify /RIGHTS/AUTHORIZED, SDA also displays Padditional; selected information, including all the rights and their> attributes authorized for each persona security block (PSB)) specified with the /PERSONA qualifier. /PHD> Lists the information included in the process header (PHD). /POOL4 /POOL [= {P0 | P1 | IMGACT | ALL (D)} | range]A Displays the dynamic storage pool in the process' P0 (process)< region, the P1 (control) region, or the image activator'sC reserved pages, or optionally, a range ofQ addresses. The default2 action is to display all dynamic storage pools.6 You can express a range using the following syntax:C m:n Displays the process pool in the range of virtual addresses from m to n.@ m;n Displays process pool in a range of n bytes, starting at virtual address m. /PPT= See the description of /PAGE_TABLES, which is functionally equivalent to /PPT. /PROCESS_SECTION_TABLE? Lists the information contained in the procesRs section table= (PST). The /SECTION_INDEX=id qualifier used with /PROCESS_A SECTION_TABLE displays the process section table entry for the specified section. Format: /PROCESS_SECTION_TABLE [/SECTION_INDEX=id][/FID_ONLY] /PST+ Is a synonym for /PROCESS_SECTION_TABLE. /PT? When used with the /PAGE_TABLES qualifier, displays the page< table entries for the page table space of the process. By" default, P0 space is displayed. /PTE_ADDRESSS@ When used with the /PAGE_TABLES qualifier, specifies that theD range is of PTE addresses instead of the virtual addresses mapped by the PTE. /RDE /RDE [=id]: See the description of the /REGIONS qualifier, which is# functionally equivalent to /RDE. /REGIONS /REGIONS [=id]B Lists the information contained in the process region table forC the specified region. If you do not specify a region, the entireD table is displayed, including the pTrocess-permanent regions. /RDEB and /REGIONS are functionally equivalent. When used with /PAGE_C TABLES, this qualifier causes SDA to display the page tables for= only the specified region or, by default, for all regions. /REGISTERSA Lists the hardware context of the process, as reflected in theD process registers stored in the hardware privileged context block: (HWPCB), in its kernel stack, and possibly, in its PHD. /RIGHTS< Used with the /PERSONA qualifier.U See the /PERSONA/RIGHTS0 description for use of the /RIGHTS qualifier. /RING_BUFFER% /RING_BUFFER [={ALL | address}]A Displays the contents of the process-pool history ring buffer.= Entries are displayed in reverse chronological order (most? recent to least recent). If you specify /RING_BUFFER withoutD the ALL keyword or an address, SDA displays all unmatched currentA allocations and deallocations. Use /RING_BUFFER=ALL to displayD matched allocations and deaVllocations and any non-current entries= not yet overwritten. Use /RING_BUFFER=address to limit the? display to only allocations and deallocations of blocks that? contain the given address (including matched allocations and deallocations). /RMS /RMS [= (option[,...]) ]D Displays certain specified RMS data structures for each image I/OA or process-permanent I/O file the process has open. To displayC RMS data structures for process-permanent files, specify the WPIOA option to this qualifier. Other guidelines for specifying this# qualifier include the following:C o If you specify only one option, you can omit the parentheses.? o You can add additional structures to those already set byB the SET RMS command by beginning the list of options with an asterisk (*).? o You can exclude a structure from those set by the SET RMSB command by specifying its keyword option preceded by NO (for example, NOPIO).D X SDA determines the structures to be displayed according to either of the following methods:A o If you provide the name of a structure or structures in theB option parameter, SHOW PROCESS/RMS displays information fromD only the specified structures. Type HELP SET RMS for a list of/ keywords that can be supplied as options.D o If you do not specify an option, SHOW PROCESS/RMS displays theB current list of options as shown by the SHOW RMS command and! set Yby the SET RMS command. /SECTION_INDEX /SECTION_INDEX=n? When used with the /PAGE_TABLES qualifier, displays the pageA table for the range of pages in the specified process section.? You can also specify one of the qualifiers /L1, /L2, or /L3.D When used with the /PROCESS_SECTION_TABLE qualifier, displays the) PST for the specified process section.B The /SECTION_INDEX=n qualifier is ignored if you do not specifyC either the /PAGE_TABLES or the /PROCESS_SZECTION_TABLE qualifier. /SEMAPHOREA Displays the Inner Mode Semaphore for a multithreaded process. /STATISTICSC When used with /POOL, displays statistics on the free list(s) in process pool. /SUBTYPE /SUBTYPE=packet-type? When used with /POOL, displays only packets of the specifiedC subtype. Pool packet types found in the process pool can includeC logical names (LNM) and image control blocks (IMCB). /SUBTYPE is$ functionally equivalent t[o /TYPE. /SUMMARY@ When used with /POOL, displays only an allocation summary for each packet type. /SYSTEMB Displays the system's process control block. The system PCB andB process header (PHD) parallel the data structures that describeA processes. They contain the system working set, global section7 table, global page table, and other systemwide data. /THREADS@ Displays the software and hardware context of all the threads' associated with the cur\rent process. /TQE /TQE [=ALL]? Displays all timer queue entries associated with the currentB process. If specified as /TQE, a one-line summary is output forA each TQE. If specified as /TQE=ALL, a detailed display of each TQE is output. /TYPE /TYPE=packet-type? When used with /POOL, displays only packets of the specified@ type. Pool packet types found in the process pool can include@ logical names (LNM) and image control blocks (IMCB). ]/TYPE is' functionally equivalent to /SUBTYPE. /UNUSED4 When used with /POOL, displays only free packets. /UNWIND_TABLE% /UNWIND_TABLE [= {ALL | name} ], Valid for Intergrity server systems only.C If specified without a keyword, displays the master unwind table@ for the process. SHOW PROCESS/UNWIND=ALL displays the details? of every process unwind descriptor. SHOW PROCESS/UNWIND=name@ displays the details of every unwind descriptor for the namedD ^ image or images implied by a wildcard. To look at unwind data for; a specific PC in process space, use SHOW UNWIND address.A If some or all unwind data for an image is not included in theD system dump (for example, if it was not in the working set of theB process at the time of the system crash), a SHOW PROCESS/UNWINDA command can fail with a %SDA-W-NOREAD error because the unwind= data is inaccessible. Collecting unwind data using the SDAB commands COLLECT and COPY/COLLE_CT will not correct this becauseD the collected unwind data is used only by SHOW UNWIND address and SHOW CALL. /WORKING_SET_LISTA /WORKING_SET_LIST [={PPT|PROCESS|LOCKED|GLOBAL|MODIFIED|n}]@ Displays the contents of the requested entries of the working= set list for the process. If you do not specify an option,@ all working set list entries are displayed. This qualifier is# functionally equivalent to /WSL.< The following table shows the options available w `ith SHOW PROCESS/WORKING_SET_LIST. Options Results/ PPT Displays process page table pages, PROCESS Displays process-private pagesA LOCKED Displays pages locked into the process' working setC GLOBAL Displays global pages currently in the working set of the process? MODIFIED Displays working set list entries marked modifiedA n Displays a specific working set list entry, where nB is the working set list indeax (WSLX) of the entry of interest /WSLC See /WORKING_SET_LIST, which is functionally equivalent to /WSL. 2 RADC Displays the settings and explanations of the RAD_SUPPORT systemA parameter fields, and the assignment of CPUs and memory to the@ Resource Affinity Domains (RADs). This command is only usefulC on platforms that support RADs. By default, the SHOW RAD commandD displays the settings of the RAD_SUPPORT system parameter fields. Formatb& SHOW RAD [number | /ALL | /PXML] 3 Parameter numberA Displays information on CPUs and memory for the specified RAD. 3 Qualifier /ALLD Displays settings of the RAD_SUPPORT parameter fields and the CPU' and memory assignments for all RADs. /PXML$ /PXML (Integrity servers only)@ SDA displays the proximity database derived from the AdvancedA Configuration and Power Interface (ACPI) tables. The proximity6 database is used to scet up the RAD data structures. 2 RESOURCESD Displays information about all resources in the system or about a, resource associated with a specific lock. Format! SHOW RESOURCES [ /ADDRESS=n | /ALL (d) | /BRIEF | /CACHED0 | /CONTENTION [=ALL][/FULL]& | /LOCKID=lock-id | /LIST! | /NAME=name d | /OWNED0 | /STATUS=(keyword[,...]) ] 3 Qualifiers /ADDRESS /ADDRESS=n@ Displays information from the resource block at the specified address. /ALL> Displays information from all resource blocks (RSBs) in the= system. This is the default behavior of the SHOW RESOURCES command. /BRIEF; Displays a single line of information for each resource. /CACHEDD Displays resource blocks that are no longere valid. The memory forD these resources is saved so that later requests for resources can use them. /CONTENTION /CONTENTION [=ALL]D Displays only resources that have at least one lock on either theC waiting or conversion queue. Unless you specify the ALL keyword,D resources with locks on the waiting or conversion queues that areA not participating in deadlock searches are ignored. (Locks notC participating in deadlock searches are requested with either theAf LCK$M_NODLCKWT or LCK$M_NODLCKBLK flags.) By default, a singleD line summary is displayed for each resource, followed by a singleD line summary for each lock on the resource. Use /FULL to obtain a< detailed display for each resource that is in contention. /FULLC When used with /CONTENTION [=ALL], causes SDA to display detailsB of each resource that is in contention instead of a single line summary. /LIST@ Displays summary information for each resource, fgollowed by a2 list of all locks associated with the resource. /LOCKID /LOCKID=lock-id@ Displays information on the resource associated with the lock with the specified lock-id. /NAME /NAME=name@ Displays information about the specific resource. Name may beA the actual name of the resource, if it only contains uppercaseA letters, numerals, the underscore (_), dollar sign, colon (:),A and some other printable characters, as for example, /NAM hE=MY_= LOCK. If it contains other printable characters (includingD lowercase letters), you may need to enclose the name in quotationA marks (""), as for example, /NAME="My_Lock/47". If it containsA nonprintable characters, the name may be specified as a comma-B separated list comprised of strings and hexadecimal numbers, asC for example, /NAME=("My_Lock",0C00,"/47") would specify the name? "My_Lock/47". The hexadecimal number can be no moreD than 8 digits (4 byteis) in length. Nonprintable sequences or moreD than 4 bytes must be split into multiple hexadecimal numbers. The6 maximum length of a resource name is 32 characters. /OWNED! Displays only owned resources. /STATUS /STATUS=(keyword[,...])B Displays only resources that have the specified status bits setB in the RSB$L_STATUS field. If you specify only one keyword, you< can omit the parentheses. Status keywords are as follows: Keyword MeaningC j 2PC_IP Indicates a two-phase convert operation in progress- BRL Indicates byte range resource( CHK_BTR Checks for better master> CVTFULRNG Indicates full-range requests in convert queue= CVTSUBRNG Indicates sub-range requests in convert queue9 DIRENTRY Indicates directory entry during failover' DIR_IP Creates directory entry2 DIR_RQD Indicates directory entry required3 INVPEND Checks for value block invalidation; RBLD_ACT k Indicates lock rebuild active for this tree7 RBLD_IP Indicates rebuild operation in progressA RBLD_RQD Indicates rebuild required for this resource tree" RM_ACCEPT Accepts new master( RM_DEFLECT Deflects remote interest RM_FORCE Forces tree move1 RM_FREEZE Freeze resource tree on this node9 RM_INTEREST Remaster due to master having no interest7 RM_IP Indicates resource remaster in progress? RM_PEND Indicates a pending resource rem laster operation9 RM_RBLD Indicates to always rebuild resource tree% RM_WAIT Blocks local activity0 VALCUR Indicates value block is current- VALINVLD Indicates value block invalid; WTFULRNG Indicates full-range requests in wait queue< WTSUBRNG Indicates a sub-range requests in wait queue9 XVAL_VALID Indicates last value block was long block 2 RMD8 Displays information contained in the reserved memoryD descriptors. Reserved memory ism used within the system by memory- resident global sections. Format SHOW RMD [/qualifiers] 3 Qualifiers /ADDRESS /ADDRESS=nB Displays a specific reserved memory descriptor entry, given its address. /ALLD Displays information in all the reserved memory descriptors. This qualifier is the default. 2 RMSC Displays the RMS data structures selected by the SET RMS command@ to be included in the default display of the SHOW PnROCESS/RMS command. Format SHOW RMS 2 RSPIDA Displays information about response IDs (RSPIDs) of all SystemD Communications Services (SCS) connections or, optionally, about a specific SCS connection. Format* SHOW RSPID [/CONNECTION=cdt-address] 3 Qualifier /CONNECTION /CONNECTION=cdt-address= Displays RSPID information for the specific SCS connection> whose connection descriptor table (CDT) address is provided> o in cdt-address. You can find the cdt-address for any activeB connection on the system in the CDT summary page display of theB SHOW CONNECTIONS command. CDT addresses are also stored in manyD individual data structures related to SCS connections. These dataC structures include class driver request packets (CDRPs) and unitC control blocks (UCBs) for class drivers that use SCS and cluster3 system blocks (CSBs) for the connection manager. 2 SHM_CPP? Displays information pabout the shared memory common property= partitions (CPPs). The default display shows a single-page4 summary that includes a single line for each CPP. Format SHOW SHM_CPP [/qualifiers] 3 Qualifiers /ADDRESS /ADDRESS=n> Displays a detailed page of information about an individual@ shared memory CPP given the address of the SHM_CPP structure. /ALLC Displays a detailed page of information about each shared memory CPP. /IDENTq /IDENT=n> Displays a detailed page of information about an individual shared memory CPP. /PFN# /PFN [=(option[,option,...])]B Displays PFN data in addition to the basic SHM_CPP. The default> is to display all lists (free, bad, untested), plus the PFN< database pages and the complete range of PFNs in the CPP.? You can limit which lists are displayed by specifying one orB more keywords from the following table. If you specify multipleC keywords, r enclose them in parentheses and separate keywords with a comma.B ALL_FRAGMENTS Displays the complete range of PFNs in the CPP.3 BAD Displays only the bad page list.4 FREE Displays only the free page list.A PFNDB Displays the PFNs containing the PFN database.8 UNTESTED Displays only the untested page list.D If you specify /PFN without /ALL, /IDENT, or /ADDRESS, the systemC displays the PFN lists from the last shared memory CPP saccessed. 2 SHM_REG@ Displays information about shared memory regions. The defaultB display shows a single page summary that includes a single line for each region. Format' SHOW SHM_REG [/qualifiers] [name] 3 Parameter name7 Detailed page of information about the named region. 3 Qualifiers /ADDRESS /ADDRESS=n> Displays a detailed page of information about an individual5 region given the address of the SHM_REG strtucture. /ALL= Displays a detailed page of information about each region. /IDENT /IDENT=n> Displays a detailed page of information about the specified region. 2 SPINLOCKS@ Displays the multiprocessing synchronization data structures. FormatC SHOW SPINLOCKS {[name]|/ADDRESS=expression|/INDEX=expression}1 [{/BRIEF | /COUNTS | /FULL}]A [/CACHED_PCB | /DEVICE | /DYNAMIC | /MAILBOX= u | /MISCELLANEOUS | /OWNED | /PCB | /PORT* | /PSHARED | /STATIC] 3 Parameter name> Name of the spinlock to be displayed. Device spinlock names> are of the form node$lock, where node indicates the OpenVMSA Cluster node name and lock indicates the device and controllerC identification (for example, HAETAR$DUA). If there is no OpenVMS> Cluster node name, the dollar sign ($) is also skipped (for example, DUA). 3 Qualifiersv /ADDRESS /ADDRESS=expression@ Displays the spinlock at the address specified in expression.C You can use the /ADDRESS qualifier to display a specific device,A mailbox, PCB, cached PCB, or process-shared spinlock; however,= the name of the spinlock may be listed as "Unknown" in the display. /BRIEF; Produces a condensed display of the spinlock information@ displayed by default by the SHOW SPINLOCKS command, including? the following: address, spinlwock name or device name, IPL or= device IPL, rank, ownership depth, and CPU ID of the owner= CPU. If the system under analysis was executing with full-@ checking multiprocessing enabled (according to the setting ofB the MULTIPROCESSING or SYSTEM_CHECK system parameter), then theB number of waiting CPUs and interlock status are also displayed. /CACHED_PCB> Displays all PCB-specific spinlocks associated with PCBs of deleted processes. /COUNTS@ Produces a xdisplay of Spin, Wait, and Acquire counts for each? spinlock (only if full-checking multiprocessing is enabled). /DEVICE1 Displays information for all device spinlocks. /DYNAMIC? Displays information for all dynamic spinlocks in the system? (device, port, mailbox, PCB, cached PCB, process-shared, and miscellaneous spinlocks). /FULL@ Displays full descriptive and diagnostic information for each displayed spinlock. /INDEX /INDEX=expyression; Displays the static spinlock whose index is specified inA expression. You can only use the /INDEX qualifier to display a named static spinlock. /MAILBOX+ Displays all mailbox-specific spinlocks. /MISCELLANEOUSA Display all spinlocks that are not included in existing groups= such as mailbox and PCB spinlocks. Miscellaneous spinlocksB include the XFC, PEDRIVER, TCP/IP, and various other spinlocks.D The list of miscellaneous spinlocks varies fr zom system to system. /OWNED? Displays information for all spinlocks owned by a CPU. If noD processors own any spinlocks, SDA displays the following message:9 %SDA-I-NOSPLOWNED, all requested spinlocks are unowned /PCB' Displays all PCB-specific spinlocks. /PORT Displays all port spinlocks. /PSHARED4 Displays all process-shared (Pthreads) spinlocks. /STATIC? Displays information for all static spinlocks in the system. 2 { STACKC Displays the location and contents of the process stacks (of the- SDA current process) and the system stack. Format: SHOW STACK {range | /ALL | [/EXECUTIVE | /INTERRUPTA | /KERNEL | /PHYSICAL | /SUMMARY | /SUPERVISOR$ | /SYSTEM | /USER]}$ {/LONG | /QUAD (d)} 3 Parameter rangeA Range of memory locations you want to display in stack format.6 You can express a range using the following syn|tax:& m:n Range of addresses from m to nC m;n Range of addresses starting at m and continuing for n bytes 3 Qualifiers /ALLA Displays the locations and contents of the four process stacks4 for the SDA current process and the system stack. /EXECUTIVE9 Shows the executive stack for the SDA current process. /INTERRUPT@ Shows the system stack and is retained for compatibility withC OpenVMS VAX. The interrupt stack does not exist on OpenVMS Al}pha! and OpenVMS Integrity servers. /KERNEL6 Shows the kernel stack for the SDA current process. /LONG= Displays longword width stacks. If you do not specify this< qualifier, SDA by default displays quadword width stacks. /PHYSICALD Treats the start and end addresses in the given range as physical= addresses. This qualifier is only relevant when a range is? specified. By default, SDA treats range addresses as virtual addresses. /QUAD~7 Displays quadword width stacks. This is the default. /SUMMARYB Displays a list of all known stack ranges and the current stack pointer for each range. /SUPERVISOR: Shows the supervisor stack for the SDA current process. /SYSTEM Shows the system stack. /USER4 Shows the user stack for the SDA current process. 2 SUMMARY@ Displays a list of all active processes and the values of the> parameters used in swapping and scheduling these processes. Format@ SHOW SUMMARY [/IMAGE | /PAGES | /PROCESS_NAME=process_name8 | /TOTALS | /THREAD | /USER=username] 3 Qualifiers /IMAGEB Causes SDA to display, if possible, the name of the image being executed within each process. /PAGES> Outputs an additional line for each process, displaying theA number of process-private pages and the number of global pages in the process's working set. /PROCESS_NAME  /PROCESS_NAME=process_nameC Displays only processes with the specified process name. You can@ use wildcards in process_name, in which case SDA displays allD matching processes. The default action is for SDA to display data1 for all processes, regardless of process name. /TOTALSB At the end of the list of active processes, SDA will output two sets of totals:A o The total number of process-private and global pages in the@ working sets of all processes. The totals for resident and6 non-resident processes are displayed separately.= o The total number of processes (or, if /THREADS was also< specified, the total number of kernel threads) in each@ scheduling state. The totals for resident and non-resident; processes or kernel threads are displayed separately. /THREADA Displays information on all the kernel threads associated with the current process. /USER /USER=usernameA Displays only the processes of the specified user. You can useA wildcards in username, in which case SDA displays processes ofD all matching users. The default action is for SDA to display data. for all processes, regardless of user name. 2 SWIS. This command is for Integrity servers only.A Displays the SWIS (SoftWare Interrupt Services) data structure% addresses or the SWIS ring buffer. Format/ SHOW SWIS [/RING_BUFFER [/CPU=(m,n,...)]] 3 Qualifiers /CPU /CPU=(m,n,...)A When used with /RING_BUFFER, displays only the entries for the@ specified CPUs. If you specify only one CPU, you can omit the parentheses. /RING_BUFFERC Displays the SWIS ring buffer (also known as the SWIS log), with> the most recent entry first, and assigns meaning to certainA values, such as trap type and system service invoked. For bestD results, execute READ/EXEC or READ/IMAGE SYS$PUBLIC_VECTORS first3 so that the system service codes are recognized. 2 SYMBOLB 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 [/ALPHA|/VALUE]] [/BASE_ADDRESS=n] symbol-name 3 Parameter symbol-nameA Name of the symbol to be displayed. You must provide a symbol-D name, unless you specify the /ALL qualifier. Symbols that includeA lowercase letters must be enclosed in quotation marks. symbol-< name may include wildcards unless /ALL is also specified. 3 Qualifiers /ALLA Displays information on all symbols whose names begin with theC characters specified in symbol-name. If no symbol name is given, all symbols are displayed. /ALPHAA When used with the /ALL qualifier, displays the symbols sortedD only in alphabetical order. The default is to display the symbols2 twice, sorted alphabetically and then by value.A When used with a wildcard symbol name, displays the symbols in2 alphabetical order. This is the default action. /BASE_ADDRESS /BASE_ADDRESS=nB The given address is added to the value of each matching symbolC to construct the address used when obtaining the contents of theB symbol's location. By default, SDA uses the actual value of the@ symbol as the address to be used. See the description of SHOW SYMBOL for more information. /VALUEA When used with the /ALL qualifier, displays the symbols sortedD only in value order. The default is to display the symbols twice,+ sorted alphabetically and then by value.A When used with a wildcard symbol name, displays the symbols in value order. 2 TQE> Displays the entries in the timer queue. The default output< is a summary display of all timer queue entries (TQEs) in chronological order. FormatD SHOW TQE [/ADDRESS=n] [/ALL] [/BACKLINK] [/PID=n] [/ROUTINE=n] 3 Qualifiers /ADDRESS /ADDRESS=nB Outputs a detailed display of the TQE at the specified address. /ALL* Outputs a detailed display of all TQEs. /BACKLINK? Outputs the display of TQEs, either detailed (/ALL) or briefC (default), in reverse order, starting at the entry furthest into the future. /PID /PID=nB Limits the display to the TQEs that affect the process with the@ specified internal PID. The PID format required is the entireB internal PID, including both the process index and the sequenceC number, and not the extended PID or process index alone, as usedD elsewhere in SDA. You can also display TQEs specific to a process using SHOW PROCESS/TQE. /ROUTINE /ROUTINE=nD Limits the display to the TQEs for which the specified address is the fork PC. 2 TQEIDX@ Displays the contents of the timer queue entry index (TQEIDX)= structures. The default display is a summary of all TQEIDX structures. Format+ SHOW TQEIDX [/ADDRESS=address | /ALL] 3 Qualifiers /ADDRESS /ADDRESS=addressA Causes SDA to output a detailed display of the contents of theB TQEIDX at the specified address. Cannot be specified with /ALL. /ALLA Causes SDA to output a detailed display of the contents of all8 TQEIDX structures. Cannot be specified with /ADDRESS. 2 UNWIND. This command is for Integrity servers only.D Displays the master unwind table for system space (by default) or for a specified target. Format0 SHOW UNWIND [address | /ALL | /IMAGE=name] 3 Parameter addressA Address of the program counter (PC) (IIP) whose unwind data isA to be displayed. The address can be in system space or process space. 3 Qualifier /ALL: Displays the details of every system unwind descriptor. /IMAGED Displays the details of every unwind descriptor for the specified% system images (wildcards allowed). 2 VHPT. This command is for Integrity servers only.2 Displays data from the Virtual Hash Page Table. Format/ SHOW VHPT [ /CPU = {n|*} [/ALL] [range] ] 3 Parameters rangeA The entry or range of entries to be displayed, expressed using the following syntax:! m Displays the VHPT entry m- m:n Displays the VHPT entries from m to n- m;n Displays n VHPT entries starting at mA A range can be provided only if a single CPU is specified with the /CPU qualifier. 3 Qualifiers /CPU /CPU = {n|*}B Indicates that the detailed contents of the VHPT for one or allB CPUs is to be displayed. The default action is for a summary of$ VHPT information to be displayed. /ALL@ Displays all VHPTs for the specified CPUs. Without /ALL, only/ entries that have a valid tag are displayed. 2 WORKING_SET_LISTD Displays the system working set list without changing the currentA process context. You can specify SHOW WORKING_SET_LIST or SHOW( WSL. The two commands are equivalent. Format8 SHOW WORKING_SET_LIST [/ALL (d) | /ENTRY=n | /GPT< | /LOCKED | /MODIFIED | /SYSTEM]+ SHOW WSL [/ALL (d) | /ENTRY=n | /GPT/ | /LOCKED | /MODIFIED | /SYSTEM] 2 WSL See SHOW WORKING_SET_LIST. ww9(@91 SPAWN= Creates a subprocess of the process currently running SDA,D copying the context of the current process to the subprocess and,C optionally, executing a specified command within the subprocess. Format( SPAWN [/qualifier[,...]] [command] 2 Parameter command? Name of the command that you want the subprocess to execute. 2 Qualifiers /INPUT /INPUT=filespecD Specifies an input file containing one or more command strings toB be executed by the spawned subprocess. If you specify a commandD string with an input file, the command string is processed beforeC the commands in the input file. When processing is complete, the subprocess is terminated. /NOLOGICAL_NAMESA Specifies that the logical names of the parent process are notC to be copied to the subprocess. The default behavior is that theD 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. /NOTIFYA Specifies that a message is to be broadcast to SYS$OUTPUT whenD the subprocess either completes processing or aborts. The default= behavior is that such a message is not sent to SYS$OUTPUT. /NOWAIT@ Specifies that the system is not to wait until the subprocessA is completed before allowing more commands to be entered. ThisC qualifier allows you to input new SDA commands while the spawned@ subprocess is running. If you specify /NOWAIT, 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 SDA commands to be entered. /OUTPUT /OUTPUT=filespec= Specifies an output file to which the results of the SPAWN< operation are written. To prevent output from the spawned? subprocess from being displayed while you are specifying newA commands, specify an output other than SYS$OUTPUT whenever you@ specify /NOWAIT. If you omit the /OUTPUT qualifier, output is, written to the current SYS$OUTPUT device. /PROCESS /PROCESS=process-nameB Specifies the name of the subprocess to be created. The default> name of the subprocess is USERNAME_n, where USERNAME is theA user name of the parent process. The variable n represents the subprocess number. ww9(@9 1 UNDEFINE8 Removes the specified symbol from SDA's symbol table. Format UNDEFINE symbol 2 Parameter symbolB The name of the symbol to be deleted from SDA's symbol table. AB symbol name is required. Symbols that include lowercase letters' must be enclosed in quotation marks. ww9(@9 1 VALIDATE? Validates the specified item (process, queue, and so forth). 2 PFN_LIST7 Validates that the page counts on lists are correct. Format@ VALIDATE PFN_LIST {/ALL (d) | [/BAD | /FREE | /MODIFIED |6 /PRIVATE | /UNTESTED | /ZERO]} 3 Qualifiers /ALL> Validates all the PFN lists: bad, free, modified, untested,( zeroed free pages, and private pages. /BAD Validates the bad page list. /FREE  Validates the free page list. /MODIFIED$ Validates the modified page list. /PRIVATE$ Validates all private page lists. /UNTESTED@ Validates the untested page list that was set up for deferred memory testing. /ZERO' Validates the zeroed free page list. 2 POOL? Checks all free pool packets for POOLCHECK-style corruption,B using the same algorithm as the system pool allocation routines8 when generating a POOLCHECK bugcheck and sy stem dump. Format< VALIDATE POOL { /ALL (d) | /BAP | /NONPAGED | /PAGED }> [ /HEADER | /MAXIMUM_BYTES [=n] /SUMMARY ] 3 Qualifiers /ALL? Checks free packets for all pool types (nonpaged pool, paged8 pool, and bus addressable pool). This is the default. /BAP/ Checks free packets in bus addressable pool. /HEADERA Displays only the first 16 bytes of any corrupted free packets found. /MAXIMUM_BYTES  /MAXIMUM_BYTES[=n]@ Displays only the first n bytes of any corrupted free packetsD found. If you specify /MAXIMUM_BYTES without a value, the default is 64 bytes. /NONPAGED( Checks free packets in nonpaged pool. /PAGED% Checks free packets in paged pool. /SUMMARY; Displays only a summary of corrupted pool packets found. 2 PROCESSA Performs validation of process data structures. Currently, theB only validation available is to check free process pool packets> for POOLCHECK-style corruption, using the same algorithm asB the system pool allocation routines when generating a POOLCHECK bugcheck and system dump. Format= VALIDATE PROCESS/POOL [= {P0 | P1 | IMGACT | ALL (d)} ]@ [/ADDRESS=pcb-address | process-name@ | ALL | /ID=nn | /INDEX=nn | /NEXT& | /SYSTEM]; [/HEADER | /MAXIMUM_BYTES[=n] |% /SUMMARY] 3 Parameters ALLB Indicates that all processes in the system are to be validated. process nameD Name of the process to be validated. The process name can contain? up to 15 uppercase letters, numerals, underscore (_), dollarB sign ($), colon (:), and some other printable characters. If itC contains any other characters (including lowercase letters), youC might need to enclose the process name in quotation marks (" "). 3 Qualifiers /ADDRESS /ADDRESS = pcb addressC Specifies the process control block (PCB) address of the process to be validated. /HEADERA Displays only the first 16 bytes of any corrupted free packets found. /ID /ID = nn /INDEX = nn> Specifies the process to be validated by its index into theA system's list of software process control blocks (PCBs), or byB its process identification. You can supply the fo llowing values for nn: o The process index itself.C o A process identification (PID) or extended PID longword, fromC which SDA extracts the correct index. The PID or extended PIDA of any thread of a process with multiple kernel threads canA be specified. Any thread-specific data displayed by further' commands is for the given thread.> To obtain these values for any given process, issue the SDAD command SHOW SUMMARY/THREADS. The /ID=nn and /INDEX=nn qualifiers can be used interchangeably. /MAXIMUM_BYTES /MAXIMUM_BYTES[=n]@ Displays only the first n bytes of any corrupted free packetsD found. If you specify /MAXIMUM_BYTES without a value, the default is 64 bytes. /NEXT@ Causes SDA to locate the next process in the process list andB validate that process. If there are no further processes in the& process list, SDA returns an error. /POOL- /POOL [= {P0 | P1 | IMGACT | ALL (d)} ]D (Required) Causes process pool validation to be performed. Use ofD a keyword on the /POOL qualifier allows the user to specify whichD process pool is to be validated (P0, P1, Image Activator Pool, or ALL). Default: ALL /SUMMARY? Displays only a summary of the corrupted pool packets found. /SYSTEM8 This qualifier is provided for compatibility with SET; PROCESS/SYSTEM and SHOW PROCESS/SYSTEM. There is no pool@ associated with the system process that can be validated. SDA= sets its current process context to the system process and outputs the text:+ Options ignored for System process: POOL 2 QUEUEA Validates the integrity of the specified queue by checking the pointers in the queue. Format VALIDATE QUEUE [address]3 [/BACKLINK | /LIST | /PHYSICALC | /QUADWORD | /SELF_RELATIVE | /SINGLY_LINKED] 3 Parameter address$ Address of an element i n a queue.C If you specify the period (.) as the address, SDA uses the last7 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 3 Qualifiers /BACKLINKB Allows doubly linked lists to be validated from the tail of theD queue. If the queue is found to be broken when validated from theA head of the queue, you can use /BACKLINK to narrow the list of corrupted entries. /LIST5 Displays the address of each element in the queue. /PHYSICALB Allows validation of queues whose header and links are physical addresses. /QUADWORD? Allows the validate operation to occur on queues with linked lists of quadword addresses. /SELF_RELATIVE> Specifies that the selected queue is a self-relative queue. /SINGLY_LINKED> Allows validation of queues that have no backward pointers. 2 SHM_CPPD Validates all the shared memory common property partitions (CPPs)A and the counts and ranges of attached PFNs; optionally, it can6 validate the contents of the database for each PFN. Format$ VALIDATE SHM_CPP [/qualifiers] 3 Qualifiers /ADDRESS /ADDRESS=nA Validates the counts and ranges for a single shared memory CPP. given the address of the SHM_CPP structure. /ALL= Validates all the shared memory CPPs. This is the default. /IDENT /IDENT=nB Validates the counts and ranges for a single shared memory CPP. /PFNA Validates the PFN database contents for each attached PFN. TheC default is all lists (free, bad, untested) plus the PFN databas e3 pages and the complete range of PFNs in the CPP.? You can limit which lists are validated by specifying one orB more keywords from the following table. If you specify multipleC keywords, enclose them in parentheses and separate keywords with a comma.C ALL_FRAGMENTS Validates the complete range of PFNs in the CPP.4 BAD Validates only the bad page list.5 FREE Validates only the free page list.B PFNDB Validates the PFNs containing the PFN database.9 UNTESTED Validates only the untested page list.A If you specify the /PFN without /ALL, /IDENT, or /ADDRESS, theB system validates the PFN lists from the last shared memory CPP. 2 TQEIDX@ Validates all the data structures associated with timer queue# entry index (TQEIDX) structures. Format VALIDATE TQEIDX wwI'(@91 WAIT7 Causes SDA to wait for the specified length of time. Format WAIT [wait-time] 2 Parameters wait-timeB The wait time is given as a delta time: [[hh:]mm:]ss[.t[h]]. If0 omitted, the default wait time is one second. wwYN(@91 Extension_Routines> The following help topics describe how to write, debug, and invoke an SDA Extension.A Select the Routines subtopic to access descriptions of all the* routines available to an SDA extension. 2 Introduction< When analysis of a dump file or a running sys tem requires> intimate knowledge of data structures that are not known to< the System Dump Analyzer, the functionality of SDA can beD extended by the addition of new commands into which the necessaryD knowledge has been built. Note that in this description, whenever? a reference is made to accessing a dump file (ANALYZE/CRASH_C DUMP), this also includes accessing memory in the running system (ANALYZE/SYSTEM).? For example, a user-written device driver allocates nonpagedC  pool and records additional data about the device there (logging= different types of I/O, perhaps), and a pointer to the newB structure is saved in the device-specific extension of the UCB.B After a system crash, the only way to look at the data from SDA is to do the following:? o Invoke the SDA command DEFINE to define a new symbol (forD example, UCB$L_FOOBAR) whose value is the offset in the UCB of' the pointer to the new structure.@ o Invoke the SDA comma nds "SHOW DEVICE " and "FORMAT@ UCB" to obtain the address of the nonpaged pool structure.D o Invoke the SDA command "EXAMINE
;" to displayD the contents of the data in the new nonpaged pool structure as( a series of hexadecimal longwords.B o Decode manually the contents of the data structure from this hexadecimal dump.> An SDA extension that knows the layout of the nonpaged poolC structure, and where to find the pointer to it in t he UCB, couldA output the data in a formatted display that alerts the user to unexpected data patterns. 2 Description? The following discussion uses an example of an SDA extension@ that invokes the MBX command to output a formatted display ofD the status of the mailbox devices in the system. The source file,* MBX$SDA.C, is provided in SYS$EXAMPLES.? An SDA extension consists of a shareable image, in this case> MBX$SDA.EXE, either located in the directory SYS$LIBR ARY orA found by translating the logical name MBX$SDA. It contains twoB universal symbols: SDA$EXTEND, the entry point; and SDA$EXTEND_B VERSION, the address of a longword that contains the version ofA the interface used (in the format of major/minor ident), whichA allows SDA to confirm it has activated a compatible extension.> The image contains at least two modules: MBX$SDA, the user-? written module that defines the two symbols and provides theC code and data necessary t o produce the desired formatted output;? and SDA_EXTEND_VECTOR, which provides jackets for all of theC callable SDA routines, and is found in SYS$LIBRARY:VMS$VOLATILE_@ PRIVATE_INTERFACES.OLB. The user-written portion can be split into multiple modules.B Whenever SDA receives an unrecognized command, like "SDA> MBX",= it attempts to activate the shareable image MBX$SDA at theD SDA$EXTEND entry point. If you choose a command name that matches@ the abbreviation of an exis ting command, SDA can be forced toA activate the extension using the "DO" command. For example, ifB you had an SDA extension called VAL$SDA, you could not activate@ it with a command like "SDA> VAL" as SDA would interpret thatA as an abbreviation of its VALIDATE command. But VAL$SDA can be& activated by issuing "SDA> DO VAL".@ With or without the "DO" prefix, the rest of the command lineA is passed to the extension; it is up to the extension to parseB it. The example exten sion MBX$SDA includes support for commands= of the form "SDA> MBX SUMMARY" and "SDA> MBX
" toC demonstrate this. If the extension is invoked with no arguments,C it should do no more than display a simple announcement message,< or prompt for input. This assists in the debugging of the5 extension, as described in Debugging an Extension.C Compiling and Linking an SDA Extension describes how to compile,? link, and invoke an SDA extension, and describes what an SDA  extension should contain. )3 Compiling_and_Linking_an_SDA_Extension? The user-written module is only supported when written in HP@ C (minimum Version 5.2), following the pattern of the example? extension, MBX$SDA.C. It should be compiled and linked using" commands of the following form:/ $cc mbx$sda + sys$library:sys$lib_c /library $link /share -! mbx$sda.obj, -J sys$library:vms$volatile_private_interfaces /library, -$  sys$input /option1 symbol_vector = (sda$extend=procedure)4 symbol_vector = (sda$extend_version=data)& NOTEB 1. You can include the qualifier /INSTRUCTION=NOFLOAT on theA compile command line if floating-point instructions are not needed.B 2. The + SYS$LIBRARY:SYS$LIB_C /LIBRARY is not needed on the@ compile command line if the logical name DECC$TEXT_LIBRARY= is defined and translates to SYS$LIBRARY:SYS$LIB_C.TLB.: 3. If the user-written extension needs to signal SDA= condition codes, or output their text with $PUTMSG, you? should add the qualifier /INCLUDE=SDAMSG to the parameter; SYS$LIBRARY:VMS$VOLATILE_PRIVATE_INTERFACES /LIBRARY. 3 Invoking_an_SDA_Extension/ You can invoke the SDA extension as follows:% $define mbx$sda sys$disk:[]mbx$sda $analyze /system SDA>mbx summary SDA>mbx
 3 Contents_of_an_SDA_Extension6 At a minimum, the user-written module must contain:: o #include statements for DESCRIP.H and SDA_ROUTINES.H< o The global variable SDA$EXTEND_VERSION, initialized as follows:; int sda$extend_version = SDA_FLAGS$K_VERSION;0 o The routine SDA$EXTEND (prototype follows); Optionally, the user-written module may also contain the statement: #define __NEW_STARLETB You should use this option because it provides type checking of@  function arguments and gives consistency in casing and naming conventions.= The entry point in the user-written module, SDA$EXTEND, is@ called as a routine with three arguments and no return value.! The declaration is as follows: void sda$extend (' int *transfer_table,5 struct dsc$descriptor_s *cmd_line,' SDA_FLAGS sda_flags)B The arguments in this code example have the following meanings:! Table 3-1  SDA$EXTEND Arguments Line of Code MeaningA transfer_ Address of the vector table in the base image. The@ table user-written routine SDA$EXTEND must copy this toC SDA$VECTOR_TABLE (declared in SDA_ROUTINES.H) before. any SDA routines can be called.? cmd_line Address of the descriptor of the command line asC entered by the user, less the name of the extension.@ So, if you enter "SDA> MBX" or "SDA> DO  MBX", theA command line is a zero length string. If you enterC the command "SDA> MBX 80102030", the command line isB " 80102030" (the separating space is not stripped).= sda_flags Definition for the following four bits in this structure:) Bit MeaningB sda_flags.sda_ Indicates SDA has been activated9 flags$v_override with the ANALYZE/CRASH_7  DUMP/OVERRIDE commandB sda_flags.sda_ Indicates SDA has been activatedD flags$v_current with the ANALYZE/SYSTEM command orD was invoked from the kept debugger7 during an SCD session@ sda_flags.sda_ Indicates that SDA was invoked? flags$v_target from the kept debugger during? an SCD or SDD session or when:  analyzing a process dumpB sda_flags.sda_ Indicates SDA was activated withC flags$v_process the ANALYZE/CRASH_DUMP command to8 analyze a process dumpD sda_flags.sda_ Indicates that SDA is analyzing anA flags$v_ia64 Integrity server system or dumpB None of the above Indicates SDA was activated withC bits set the ANALYZE/CRAS H_DUMP command to> analyze an Alpha system dump? Other bits Reserved to HP:may be nonzero@ The first executable statement of the routine must be to copy@ TRANSFER_TABLE to SDA$VECTOR_TABLE (which is declared in SDA_ ROUTINES.H):- sda$vector_table = transfer_table;; If this is not done, you cannot call any of the routines? described below. Any attempts to call the routines receive aA status return of SDA$ _VECNOTINIT. (For routines defined not toA return a status, this value can be found only by examining the return value directly.)< The next statement should be one to establish a condition< handler, as it is often difficult to track down errors in@ extensions such as access violations because the extension is> activated dynamically with LIB$FIND_IMAGE_SYMBOL. A default@ condition handler, SDA$COND_HANDLER, is provided that outputs6 the following information in the event of an error: o The error condition o The VMS version< o A list of activated images, with start and end virtual addresses( o The signal array and register dump" o The current call frame chain7 You can establish this condition handler as follows:, lib$establish (sda$cond_handler);& NOTE> The error condition, signal array, and register dump areA output directly to SYS$OUTPUT and/or SYS$ERROR, and are not@ affected by the use of the SDA commands SET OUTPUT and SET LOG.& Thus, a minimal extension would be:" #define __NEW_STARLET 1 #include $ #include 8 int sda$extend_version = SDA_FLAGS$K_VERSION;0 void sda$extend (int *transfer_table,> struct dsc$descriptor_s *cmd_line,0 SDA_FLAGS sda_flags) {/ sda$vector_table = transfer_table;. lib$establish (sda$cond_handler);( sda$print ("hello, world"); return; } 3 Debugging_an_Extension> In addition to the "after-the-fact" information provided by@ the condition handler, you can debug SDA extensions using theC OpenVMS Debugger. A second copy of the SDA image, SDA_DEBUG.EXE,A is provided in SYS$SYSTEM. By defining the logical name SDA toA reference this image, you can debug SDA extensions as follows:? o Compile your extension /DEBUG/NOOPT and link it /DEBUG or /DSF.@ o Define logical names for SDA and the extension, and invoke SDA.D o Type SET BREAK START_EXTENSION at the initial DBG> prompt, and then type GO.. o Invoke the extension at the SDA> prompt.9 o When Debug prompts again, use Debug commands to set@ breakpoints, and so on, in the extension and then type GO.> o Invoke the extension, providing the necessary arguments.3 An example of the preceding steps is as follows:F $ cc /debug /noopt mbx$sda + sys$library:sys$lib_c /library! $ link /debug /share -! mbx$sda.obj, -J sys$library:vms$volatile_private_interfaces /library, -$ sys$input /option1 symbol_vector = (sda$extend=procedure)4 symbol_vector = (sda$extend_version=data) $ !. $ define mbx$sda sys$disk:[]mbx$sda!  $ define sda sda_debug $ analyze /system ...) DBG> set break start_extension DBG> go ... SDA> mbx1 break at routine START\START_EXTENSION ...! DBG> set image mbx$sda DBG> set language c$ DBG> set break /exception DBG> go: MBX commands: 'MBX SUMMARY' and 'MBX
' SDA> mbx summary ... SDA> mbx  ...5 %DEBUG-I-DYNMODSET, setting module MBX$SDA- %SYSTEM-E-INVARG, invalid argument ... DBG> 2 Callable_Routines_OverviewC The user-written routine may call SDA routines to accomplish any of the following tasks:8 o Read the contents of memory locations in the dump.A o Translate symbol names to values and vice-versa, define new+ symbols, and read symbol table files.C o Map an address to the activated image or executive image that contains that address.C o Output text to the terminal, with page breaks, page headings,C and so on (or output to a file if the SDA commands SET OUTPUT! or SET LOG have been used).- o Allocate and deallocate dynamic memory. o Validate queues/lists. o Format data structures. o Issue any SDA command.? Note the following points before using the callable routines described here:C o The following thre e routines are used to read the contents of# memory locations in the dump:A - SDA$TRYMEM is called from both SDA$GETMEM and SDA$REQMEM@ as the lower-level routine that actually does the work.B SDA$TRYMEM returns success/failure status in R0, but doesD not signal any errors. Use it directly when you expect thatB the location being read might be inaccessible. The callerD of SDA$TRYMEM handles this situation by checking the status r eturned by SDA$TRYMEM.> - SDA$GETMEM signals a warning when any error status isA returned from SDA$TRYMEM. Signaling a warning prints outA a warning message, but does not abort the SDA command inB progress. You should use this routine when you expect the@ location to be read to be accessible. This routine does> not prevent the command currently being executed fromA continuing. The caller of SDA$GETMEM must allow for this7 by ch ecking the status returned by SDA$GETMEM.= - SDA$REQMEM signals an error when any error status is@ returned from SDA$TRYMEM. Signaling an error prints outB an error message, aborts the SDA command in progress, andB returns to the "SDA>" prompt. You should use this routineB when you expect the location to be read to be accessible.C This routine prevents the command currently being executedB from continuing. The caller of SDA$REQMEM does not resume if an error occurs.? o You should use only the routines provided to output text.? Do not use printf() or any other standard routine. If youB do, the SDA commands SET OUTPUT and SET LOG will not produce@ the expected results. Do not include control characters in@ output (except tab); in particular, avoid , ,,D and the FAO directives that create them. Use the FAO directive@ !AF when contents of memory returned by SDA$TRYMEM, an d so@ on, are being displayed directly, because embedded control= characters will cause undesirable results. For example,= displaying process names or resource names that contain@ particular control characters or escape sequences can lock up the terminal.? o You should use only the routines provided to allocate and@ deallocate dynamic memory. Do not use malloc() and free().B Where possible, allocate dynamic memory once, the first timeD the exte nsion is activated, and deallocate it only if it needsA to be replaced by a larger allocation. Because SDA commandsB can be interrupted by invoking another command at the "Press> return for more" prompt, it is very easy to cause memory leaks.A o Some routines expect 32-bit pointers, and others expect 64-? bit pointers. At first this not may appear to be logical,> but in fact it is. All code and data used by SDA and anyC extensions must be in P0 or P1 space, as SDA does not need toB (and does not) use P2 space for local data storage. However,B addresses in the system dump (or running system, in the caseC of ANALYZE/SYSTEM) are 64-bit addresses, and SDA must provide* access to all locations in the dump.= So, for example, the first two arguments to the routine SDA$TRYMEM are:2 VOID_PQ start /* 64-bit pointer */2 void *dest /* 32-bit pointer */> They specify the  address of interest in the dump and the@ address in local storage to which the dump contents are to be copied.; o Common Bitmask Block (CBB) routines, SDA$CBB_xxx, areC designed for use with local copies of the CBB structures thatB describe the CPUs in use in a system. The CBB structures are@ assumed to be at least CBB$K_STATIC_BLOCK bytes in length.< The definitions of the various CBB constants and field> names used by these routines can be found in CBBDEF.H in SYS$LIBRARY:SYS$LIB_C.TLB.A The set of routines is not intended to be an exhaustive setC of all possible CBB-related operations, but it provides thoseC operations known to be needed. The routines might not work asB expected with CBB structures that are set up for any purpose" other than to describe CPUs. 2 Routines> The following subtopics describe the SDA extension callable routines. 3 SDA$ADD_SYMBOL- Adds a symbol to SDA's local symbol table. FormatB void sda$add_symbol (char *symbol_name, uint64 symbol_value); 4 Arguments symbol_name OpenVMS usage char_string! type character string access read only mechanism by reference3 Address of symbol name string (zero-terminated). symbol_value" OpenVMS usage quadword_unsigned$ type quadword (unsigned) access read only mechanism by value The symbol value. 3 SDA$ALLOCATE Allocates dynamic memory. Format7 void sda$allocate (uint32 size, void **ptr_block); 4 Arguments size" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value( Size of block to allocate (in bytes). ptr_block OpenVMS usage address$ type longword (unsigned) access write only mechanism by reference3 Address of longword to receive address of block. 4 Condition_Values_Returned None? If no memory is available, the error is signaled and the SDA session aborted. 3 SDA$CBB_BOOLEAN_OPER2 Performs a Boolean operation on a pair of CBBs. FormatD int sda$cbb_boolean_oper (CBB_PQ input_cbb, CBB_PQ output_cbb,. int operation); 4 Arguments input_cbb OpenVMS usage address type CBB structure access read only mechanism by reference2 The address of the first (input) CBB structure. output_cbb OpenVMS usage address type CBB structure access read/write mechanism by reference4 The address of the second (output) CBB structure. operation OpenVMS usage longword$ type longword (unsigned) access read only mechanism by value1 The desired operation from the following list:C CBB$C_OR The logical sum of the two CBBs is performed and the? result (B = A | B) is written to the output CBB.B CBB$C_BIC The logical product with complement of the two CBBsB is performed and the result (B = B & ~A) is written! to the output CBB. 4 Condition_Values_Returned? SS$_BADPARAM The number of valid bits in the input and/ output CBBs is different.> SS$_WASCLR All bits in the resulting output CBB are  clear.B SS$_WASSET At least one bit in the resulting output CBB is set. 3 SDA$CBB_CLEAR_BIT% Clears the specified bit in a CBB. Format2 int sda$cbb_clear_bit (CBB_PQ cbb, int bit); 4 Arguments cbb OpenVMS usage address type CBB structure access read/write mechanism by reference3 The address of the CBB structure to be modified. bit OpenVMS usage longword$ type longword (unsigned) access read only mechanism by valueD The bit in the CBB to be cleared. If the bit number is -1, clears all bits. 4 Condition_Values_Returned+ SS$NORMAL Successful completion4 SS$BADPARAM The bit number is out of range 3 SDA$CBB_COPY- Copies the contents of one CBB to another. Format= int sda$cbb_copy (CBB_PQ input_cbb, CBB_PQ output_cbb); 4 Arguments input_cbb OpenVMS usage address type CBB structure access read only mechanism by reference1 The address of the CBB structure to be copied. output_cbb OpenVMS usage address type CBB structure access write only mechanism by reference8 The address of the CBB structure to receive the copy. 3 SDA$CBB_FFC( Locates the first clear bit in a CBB. Format2 int sda$cbb_ffc (CBB_PQ cbb, int start_bit); 4 Arguments cbb OpenVMS usage address type CBB structure access read only mechanism by reference3 The address of the CBB structure to be searched. start_bit OpenVMS usage longword$ type longword (unsigned) access read only mechanism by value* The first bit in the CBB to be checked. 4 Condition_Values_Returned= bit_number If a clear bit is found, its bit number@  is returned. If no clear bit is found (allB bits from start_bit to cbb->cbb$l_valid_bits@ are set), then the number of valid bits is returned. 3 SDA$CBB_FFS& Locates the first set bit in a CBB. Format2 int sda$cbb_ffs (CBB_PQ cbb, int start_bit); 4 Arguments cbb OpenVMS usage address type CBB structure access read only mechanism by reference3 The address of the CBB structure to be searched. start_bit OpenVMS usage longword$ type longword (unsigned) access read only mechanism by value* The first bit in the CBB to be checked. 4 Condition_Values_Returned> bit_number If a set bit is found, its bit number is@ returned. If no set bit is found (all bitsA from start_bit to cbb->cbb$l_valid_bits are> clear), then the number of valid bits is returned. 3 SDA$CBB_INIT0 Initializes a CBB structure to a known state. Format% void sda$cbb_init (CBB_PQ cbb); 4 Argument cbb OpenVMS usage address type CBB structure access read only mechanism by reference6 The address of the CBB structure to be initialized. 3 SDA$CBB_SET_BIT# Sets the specified bit in a CBB. Format/ int sda$cbb_set_bit (CBB_PQ cbb,int bit); 4 Arguments cbb OpenVMS usage address type CBB structure access read/write mechanism by reference3 The address of the CBB structure to be modified. bit OpenVMS usage longword$ type longword (unsigned) access read only mechanism by valueA The bit in the CBB to be set. If the bit number is -1, set all bits. 4 Condition_Values_Returned, SS$NORMAL  Successful completion.5 SS$BADPARAM The bit number is out of range. 3 SDA$CBB_TEST_BIT$ Tests the specified bit in a CBB. Format0 int sda$cbb_test_bit (CBB_PQ cbb,int bit); 4 Arguments cbb OpenVMS usage address type CBB structure access read only mechanism by reference1 The address of the CBB structure to be tested. bit OpenVMS usage longword$ type longword (unsigned)  access read only mechanism by value# The bit in the CBB to be tested. 4 Condition_Values_Returned0 SS$_WASSET The specified bit was set.2 SS$_WASCLR The specified bit was clear.5 SS$_BADPARAM The bit number is out of range. 3 SDA$DEALLOCATE( Deallocates and frees dynamic memory. Format8 void sda$deallocate (void *ptr_block, uint32 size); 4 Arguments ptr_block OpenVMS usage address$ type  longword (unsigned) access read only mechanism by value) Starting address of block to be freed. size" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value* Size of block to deallocate (in bytes). 4 Condition_Values_Returned NoneB If an error occurs, it is signaled and the SDA session aborted. 3 SDA$DELETE_PREFIX1 Deletes all symbols with the specified pr"efix. Format, void sda$delete_prefix (char *prefix); 4 Argument prefix OpenVMS usage char_string! type character string access read only mechanism by reference$ The address of the prefix string. 3 SDA$DISPLAY_HELP Displays online help. FormatB void sda$display_help (char *library_desc, char *topic_desc); 4 Arguments library OpenVMS usage char_string! type character string access read only mechanism by reference@ Address of library filespec. Specify as zero-terminated ASCII string. topic OpenVMS usage char_string! type character string access read only mechanism by referenceB Address of topic name. Specify as zero-terminated ASCII string. 3 SDA$ENSURE7 Ensures sufficient space on the current output page. Format$ void sda$ensure (uint32 lines); 4 Argument lines" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value$ Number of lines to fit on a page. 3 SDA$FAO Formats data into a buffer. Format> char * sda$fao (char * ctrstr, char * buffer, int buflen, __optional_params); 4 Arguments ctrstr OpenVMS usage char_string, type character-coded text string access read only mechanism by reference2 Addess of a zero-terminated FAO control string. buffer OpenVMS usage char_string! type character string access write only mechanism by reference? Address of a string buffer into which to store the formatted string. buflen" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value% Maximum size of the string buffer. prmlst OpenVMS usage varying_arg. type quadword (signed or unsigned) access read only mechanism by valueA Optional FAO parameters. All arguments after buflen are copied7 into a quadword parameter list, as used by $FAOL_64. 4 Condition_Values_ReturnedD Address of SDA$FAO returns the address of the terminating< terminating zero zero in the output buffer. This allowsD successive calls to SDA$FAO to append strings. 3 SDA$FID_TO_NAMEB Translates a file identification (FID) into the equivalent file name. Format@ int sda$fid_to_name (char *devptr, unsigned short *fidptr,5 char *bufptr, int buflen ); 4 Arguments devptr OpenVMS usage char_string! type character string access read only mechanism by referenceA The address of the device name string. The device name must beC supplied in allocation-class device name (ALLDEVNAM) format, but8 any leading underscore or trailing colon are ignored. fidptr OpenVMS usage address$ type file identification access read only mechanism by reference5 The address of the three-word file identification. bufptr OpenVMS usage char_string! type character string access write only mechanism by referenceC The address of a string buffer into which to store the file name string. buflen OpenVMS usage longword$ type longword (unsigned) access read only mechanism by value+ The maximum length of the string buffer. 4 Condition_Values_ReturnedB SDA$_SUCCESS File identification successfully translated.A SDA$_NOCOLLECT No collection available for the system, theA specified disk, or the file identification.@ Others An error occurred when LIB$FID_TO_NAME was called. 4 Example int status; char buffer [132]; char *device = $1$DKA0;$ unsigned short fid [3] = {1, 1, 0};: status = sda$fid_to_name (device, &fid [0], buffer, 132); if (status & 1)+ sda$print ("Filename is !AZ", buffer); else3 sda$print ("File ID could not be translated");= This example shows the translation of file ID (1,1,0) on5 $1$DKA0:, which is $1$DKA0:[000000]INDEXF.SYS;1. 3 SDA$FORMAT7 Displays the formatted contents of a data structure. Format> void sda$format (VOID_PQ struct_addr, __optional_params); 4 Arguments struct_addr OpenVMS usage address$ type quadword (unsigned) access read only mechanism by value= The address in the system dump of the data structure to be formatted. options OpenVMS usage mask_longword$ type longword (unsigned) access read only mechanism by value6 The following provides more information on options:" Option Meaning> None Uses structure type from the xxx$B_A TYPE and/or xxx$B_SUBTYPE field of the: structure. This is the default.C SDA_OPT$M_FORMAT_TYPE Uses the structure type given in struct_" prefix.C SDA_OPT$M_FORMAT_ Indicates that struct_addr is a physical@ PHYSICAL address instead of a virtual address. struct_prefix OpenVMS usage char_string! type character string access read only mechanism by reference6 Address of structure name string (zero-terminated). 3 SDA$FORMAT_HEADING Formats a new page heading. Format? void sda$format_heading (char *ctrstr, __optional_params); 4 Arguments ctrstr OpenVMS usage char_string, type character-coded text string access read only mechanism by reference< Address of control string (zero-terminated ASCII string). prmlst OpenVMS usage varying_arg. type quadword (signed or unsigned) access read only mechanism by valueD FAO parameters that are optional. All arguments after the control> string are copied into a quadword parameter list as used by $FAOL_64. 4 Condition_Values_Returned None? If the $FAOL_64 call issued by SDA$FORMAT_HEADING fails, the. control string is used as the page heading. 3 SDA$GET_ADDRESS9 Gets the address value of the current memory location. Format- void sda$get_address (VOID_PQ *address); 4 Argument address" OpenVMS usage quadword_unsigned$ type quadword (unsigned) access write only mechanism by reference7 Location to store the current 64-bit memory address. 3 SDA$GET_BLOCK_NAMEB Returns the name of a structure, given its type and/or subtype.  Format7 void sda$get_block_name (uint32 block_type, uint32 block_subtype,* char *buffer_ptr, uint32 buffer_len); 4 Arguments block_type" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by valueA Block type in range 0 - 255 (usually extracted from xxx$b_type field). block_subtype" OpenVMS usage longword_unsigned$ type longword (unsigned) access  read only mechanism by valueB Block subtype in range 0 - 255 (ignored if the given block type has no subtypes). buffer_ptr OpenVMS usage char_string! type character string access write only mechanism by reference? Address of buffer to save block name, which is returned as a zero-terminated string. buffer_len" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value* Length of buffer to receive block name. 3 SDA$GET_BUGCHECK_MSG1 Gets the text associated with a bugcheck code. Format: void sda$get_bugcheck_msg (uint32 bugcheck_code, char& *buffer_ptr, uint32 buffer_size); 4 Arguments bugcheck_code" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value The bugcheck code to look up. buffer_ptr OpenVMS usage char_string! type character string access write only mechanism by reference. Address of buffer to save bugcheck message. buffer_len" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value' Length of buffer to receive message. 3 SDA$GET_CURRENT_CPU? Gets the CPU database address of the currently selected CPU. Format, void sda$get_current_cpu (CPU **cpudb ); 4 Arguments cpudb OpenVMS usage address$ type longword (unsigned) access write only mechanism by reference= Location to which the address of the CPU database is to be returned. 3 SDA$GET_CURRENT_PCB> Gets the PCB address of the "SDA current process" currently selected. Format- void sda$get_current_pcb (PCB **pcbadr); 4 Argument pcbadr" OpenVMS usage quadword_unsigned$ type quadword (unsigned) access write only mechanism by reference6 Location in which to store the current PCB address. 3 SDA$GET_DEVICE_NAME= Gets the device name, given the UCB address of the device. FormatC int sda$get_device_name (VOID_PQ ucb_addr, char *name_buf, int name_len); 4 Arguments ucb_addr OpenVMS usage address$ type quadword (unsigned) access read only mechanism by value: System address of the Unit Control Block of the device. name_buf OpenVMS usage char_string! type character string access write only mechanism by reference, Address of buffer to receive device name. name_len" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value+ Length of buffer to receive device name. 4 Condition_Values_Returned+ SDA$_SUCCESS Successful completionC SDA$_NOTAUCB The address given is not the address of a UCB> SDA$_NOREAD The data is inaccessible for some reason> Others The data is inaccessible for some reason 3 SDA$GET_FLAGS@ Obtain environment flags that indicate how SDA is being used. Format. int sda$get_flags (SDA_FLAGS *flagaddr); 4 Argument flagaddr OpenVMS usage address$ type SDA_FLAGS structure access write only mechanism by referenceD The address of the location where the environment flags are to be returned. 4 Examples 1.SDA_FLAGS flags; sda$get_flags (&flags);# if (flags.sda_flags$v_current)2 sda$print (Analyzing the current system);1 This example shows the use of SDA$GET_FLAGS. 3 SDA$GET_HEADER? Returns pointers to local copies of the dump file header and= the error log buffer together with the sizes of those dataB structures; optionally returns pointers and sizes for the crash* error log entry and trap data (if any). FormatD void sda$get_header (DMP **dmp_header, uint32 *dmp_header_size,C void **errlog_buf, uint32 *errlog_buf_size,__optional_params); 4 Arguments dmp_header OpenVMS usage address$ type longword (unsigned) access write only mechanism by referenceA Location in which to store the address of the copy of the dump file header held by SDA. dmp_header_size" OpenVMS usage longword_unsigned$ type longword (unsigned) access write only mechanism by reference? Location in which to store the size of the dump file header. errlog_buf OpenVMS usage address$ type longword (unsigned) access write only mechanism by referenceB Location in which to store the address of the copy of the error log buffer held by SDA. errlog_buf_size"  OpenVMS usage longword_unsigned$ type longword (unsigned) access write only mechanism by reference? Location in which to store the size of the error log buffer. crasherl_buf OpenVMS usage address$ type longword (unsigned) access write only mechanism by referenceB Location in which to store the address of the copy of the crash error log entry held by SDA. crasherl_buf_size" OpenVMS usage longword_unsigned$ type longword (unsigned) access write only mechanism by referenceD Location in which to store the size of the crash error log entry. trapinfo_buf OpenVMS usage address$ type longword (unsigned) access write only mechanism by referenceA Location in which to store the address of the copy of the trap info, if any, held by SDA. trapinfo_buf_size" OpenVMS usage longword_unsigned$ type  longword (unsigned) access write only mechanism by reference@ Location in which to store the size of the trap data, if any. 3 SDA$GET_HW_NAMED Returns the full name of the hardware platform where the dump was written. Format@ void sda$get_hw_name (char *buffer_ptr, uint32 buffer_len); 4 Arguments buffer_ptr OpenVMS usage char_string! type character string access write only mechanism by reference% Address of buffer to save HW name. buffer_len" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value' Length of buffer to receive HW name. 3 SDA$GET_IMAGE_OFFSET9 Maps a given virtual address onto an image or execlet. Format3 COMP_IMG_OFF sda$get_image_offset (VOID_PQ va,< VOID_PQ img_info, VOID_PQ subimg_info, VOID_PQ offset); 4 Arguments va OpenVMS usage address$ type quadword (unsigned) access read only mechanism by value Virtual address of interest. img_info OpenVMS usage address$ type quadword (unsigned) access write only mechanism by reference2 Pointer to return addr of LDRIMG or IMCB block. subimg_info OpenVMS usage address$ type quadword (unsigned) access write only mechanism by reference3 Pointer to return addr of ISD_OVERLAY or KFERES. offset" OpenVMS usage quadword_unsigned$ type quadword (unsigned) access write only mechanism by reference2 Pointer to address to return offset from image. 4 Condition_Values_Returned2 SDA_CIO$V_VALID Set if image offset is found8 SDA_CIO$V_PROCESS Set if image is an activated image0 SDA_CIO$V_SLICED Set if the image is sliced@ SDA_CIO$V_ Set if activated image contains compressed# C OMPRESSED data sectionsA SDA_CIO$V_ISD_ Index into ISD_LABELS table (on Alpha, only* INDEX for LDRIMG execlets)A The status returned indicates the type of image if a match was found.? SDA_CIO$V_xxx flags set: img_info type: subimg_info type:1 VALID LDRIMG n/a9 VALID && SLICED LDRIMG ISD_OVERLAY1 VALID && PROCESS IMCB n/a< VALID && PROCESS && IMCB  KFERES_SECTION SLICEDD On Integrity servers, SDA_CIO$V_SLICED will always be set if SDA_ CIO$V_VALID is set.? The following table describes the ISD_LABELS index on Alpha:) Index Name Meaning4 0 SDA_CIO$K_NPRO Nonpaged read only5 1 SDA_CIO$K_NPRW Nonpaged read/write1 2 SDA_CIO$K_PRO Paged read only2 3 SDA_CIO$K_PRW Paged read/write' 4 SDA_CIO$K_FIX Fixup0 5  SDA_CIO$K_INIT Initialization?The following table describes the ISD_LABELS index on Integrityservers:) Index Name Meaning' 0 SDA_CIO$K_FIX Fixup0 1 SDA_CIO$K_PROMO_CODE Promote (code)0 2 SDA_CIO$K_PROMO_DATA Promote (data)7 3 SDA_CIO$K_INIT_CODE Initialization (code)7 4 SDA_CIO$K_INIT_DATA Initialization (data)& 5 SDA_CIO$K_CODE Code9 6 SDA_CIO$K_SHORT_RW Short data (read/write)8 7 SDA_CIO$K_SHORT_RO Short data (read only)3 8 SDA_CIO$K_RW Data (read/write)2 9 SDA_CIO$K_RO Data (read only): 10 SDA_CIO$K_SHORT_DZ Short data (demand zero)C 11 SDA_CIO$K_SHORT_TDZ Short data (trailing demand zero)- 12 SDA_CIO$K_DZERO Demand zero6 13 SDA_CIO$K_TR_DZERO Trailing demand zero 3 SDA$GET_INPUT Reads input commands. FormatC int sda$get_input (char *prompt, char *buffer, uint32 buflen); 4 Arguments prompt OpenVMS usage char_string! type character string access read only mechanism by reference; Address of prompt string (zero-terminated ASCII string). buffer OpenVMS usage char_string! type character string access write only mechanism by reference& Address of buffer to store command. buflen" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value Maximum length of buffer. 4 Condition_Values_Returned, SS$_NORMAL Successful completion.+ RMS$_EOF User pressed  3 SDA$GET_LINE_COUNT? Obtains the number of lines currently printed on the current page. Format2 void sda$get_line_count (uint32 *line_count); 4 Argument line_count" OpenVMS usage longword_unsigned$ type longword (unsigned) access write only mechanism by reference/ The number of lines printed on current page. 3 SDA$GETMEM7 Reads dump or system memory and signals a warning if inaccessible. Format; int sda$getmem (VOID_PQ start, void *dest, int length, __optional_params); 4 Arguments start OpenVMS usage address$ type quadword (unsigned) access read only mechanism by value. Starting virtual address in dump or system. dest OpenVMS usage address type varies access write only mechanism by reference Return buffer address. length" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value Length of transfer. physical" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value8 0: is a virtual address. This is the default.$ 1: is a physical address. 4 Condition_Values_Returned+ SDA$_SUCCESS Successful completion? SDA$_NOREAD The data is inaccessible for some reason.? SDA$_NOTINPHYS The data is inaccessible for some reason.? Others The data is inaccessible for some reason.< If a failure status code is returned, it has already been signaled as a warning. 3 SDA$INSTRUCTION_DECODE? Translates one machine instruction into the assembler string equivalent. FormatA int sda$instruction_decode (void *istream_ptr, char *buffer,& uint32 buflen,__optional_params); 4 Arguments istream_ptr OpenVMS usage address$ type longword (unsigned) access read/write mechanism by referenceD Address of the pointer that points to a copy of the i-stream in a local buffer. buffer OpenVMS usage char_string! type character string access write only mechanism by reference< Address of a string buffer into which to store the output assembler string. buflen" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value% Maximum size of the string buffer. template_buffer OpenVMS usage char_string! type character string access write only mechanism by referenceB (Integrity servers only.) Address of a string buffer into which to store the template string. template_buflen" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by valueA (Integrity servers only.) Maximum size of the template buffer. 4 Condition_Values_Returned, SS$_NORMAL Successful completion.4 SS$_BADPARAM Any of the following failures:-  Output buffer too small& Invalid register1 Invalid opcode class/format5 Could not translate instruction 3 SDA$NEW_PAGE Begins a new page of output. Format void sda$new_page (); 3 SDA$PARSE_COMMAND+ Parses and executes an SDA command line. Format@ void sda$parse_command (char *cmd_line, __optional_params); 4 Arguments cmd_line OpenVMS usage char_string! type character string access read only mechanism by reference9 Address of a valid SDA command line (zero-terminated). options" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value1 The options argument has the following values:! Value MeaningD SDA_OPT$K_PARSE_ Indicates "do not save this command." This) DONT_SAVE is the default.D SDA_OPT$K_PARSE_SAVE Indicates "save this command." That is, it= can be recalled with KP0 or REPEAT. 3 SDA$PRINT$ Formats and prints a single line. Format5 int sda$print (char *ctrstr, __optional_params); 4 Arguments ctrstr OpenVMS usage char_string, type character-coded text string access read only mechanism by reference3 Address of a zero-terminated FAO control string.  prmlst OpenVMS usage varying_arg. type quadword (signed or unsigned) access read only mechanism by valueB Optional FAO parameters. All arguments after the control stringB are copied into a quadword parameter list, as used by $FAOL_64. 4 Condition_Values_Returned8 SDA$_SUCCESS Indicates a successful completion.? SDA$_CNFLTARGS Indicates more than twenty FAO parameters given.D Other Return s from the $PUT issued by SDA$PRINT (theC error is also signaled). If the $FAOL_64 callC issued by SDA$PRINT fails, the control string is output. 3 SDA$READ_SYMFILE# Reads symbols from a given file. Format: int sda$read_symfile (char *filespec, uint32 options, __optional_params); 4 Arguments filespec OpenVMS usage char_string! type character string access   read only mechanism by referenceD Address of file or directory specification from which to read the* symbols (zero-terminated ASCII string). options" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value; Indicates type of symbol file and flags, as shown in the following: Flags Effect+ SDA_OPT$M_READ_FORCE read/force + SDA_OPT$M_READ_IMAGE read/image < file>+ SDA_OPT$M_READ_SYMVA read/symva * SDA_OPT$M_READ_RELO read/relo + SDA_OPT$M_READ_EXEC read/exec []@ SDA_OPT$M_READ_NOLOG /nolog, suppress count of symbols read/ SDA_OPT$M_READ_ or given FILESPECA SDA_OPT$M_READ_ return status, without signaling errors NOSIGNAL relocate_base OpenVMS usage address$ type longword (unsigned) access read only mechanism by value0 Bas e address for symbols (nonsliced symbols). symvect_va OpenVMS usage address$ type longword (unsigned) access read only mechanism by valueA The symbol vector address (symbols are offsets into the symbol vector). symvect_size" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value Size of symbol vector. loaded_img_info OpenVMS usage address$ type  longword (unsigned) access read only mechanism by referenceB The address of $LDRIMG data structure with execlet information. 4 Condition_Values_Returned, SDA$_SUCCESS Successful completion.C SDA$_CNFLTARGS No filename given and SDA_OPT$M_READ_EXEC not set.C Other errors are signaled and/or returned, exactly as though theB equivalent SDA READ command had been used. Use HELP/MESSAGE for explanations. 3  SDA$REQMEMD Reads dump or system memory and signals an error if inaccessible. Format; int sda$reqmem (VOID_PQ start, void *dest, int length, __optional_params); 4 Arguments start OpenVMS usage address$ type quadword (unsigned) access read only mechanism by value. Starting virtual address in dump or system. dest OpenVMS usage address type varies access write only mechanism  by reference Return buffer address. length" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value Length of transfer. physical" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value8 0: is a virtual address. This is the default.$ 1: is a physical address. 4 Condition_Values_Returned, SDA$_SUCCESS Successful completion.> Any failure is signaled as an error and the current command aborts. 3 SDA$SET_ADDRESSB Stores a new address value as the current memory address ("."). Format, void sda$set_address (VOID_PQ address); 4 Argument address" OpenVMS usage quadword_unsigned$ type quadword (unsigned) access read only mechanism by value5 Address value to store in current memory location. 3 SDA$SET_CPU Sets a new SDA CPU context. Format" int sda$set_cpu (int cpu_id); 4 Arguments cpu_id" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value The desired CPU ID. 4 Condition_Values_Returned, SDA$_SUCCESS Successful completion.> Any failure is signaled as an error and the current command aborts. 3 SDA$SET_HEADING_ROUTINE@ Sets the current heading routine to be called after each page break. Format; void sda$set_heading_routine (void (*heading_rtn) ()); 4 Argument heading_rtn OpenVMS usage procedure type procedure value access read only mechanism by value7 Address of routine to be called after each new page. 3 SDA$SET_LINE_COUNT? Sets the number of lines printed so far on the current page. Format1 void sda$set_line_count (uint32 line_coun!t); 4 Argument line_count" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value/ The number of lines printed on current page. 3 SDA$SET_PROCESS" Sets a new SDA process context. FormatD int sda$set_process (const char *proc_name, int proc_index, int proc_addr); 4 Arguments proc_name! OpenVMS usage character_string! type character string access read only mechanism by reference8 Address of the process name string (zero-terminated). proc_index" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value$ The index of the desired process. proc_addr OpenVMS usage address$ type longword (unsigned) access read only mechanism by value2 The address of the PCB for the desired process. 4  Condition_Values_Returned, SDA$_SUCCESS Successful completion.> Any failure is signaled as an error and the current command aborts. 3 SDA$SKIP_LINES: This routine outputs a specified number of blank lines. Format( void sda$skip_lines (uint32 lines); 4 Argument lines" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value Number of lines to skip. 3 SDA$SYMBOL_VALUE2 Obtains the 64-bit value of a specified symbol. Format@ int sda$symbol_value (char *symb_name, uint64 *symb_value); 4 Arguments symb_name OpenVMS usage char_string! type character string access read only mechanism by reference1 Zero-terminated string containing symbol name. symb_value" OpenVMS usage quadword_unsigned$ type quadword (unsigned) access write only mechanism  by reference# Address to receive symbol value. 4 Condition_Values_Returned# SDA$_SUCCESS Symbol found.' SDA$_BADSYM Symbol not found. 3 SDA$SYMBOLIZE0 Converts a value to a symbol name and offset. Format> int sda$symbolize (uint64 value, char *symbol_buf, uint32 symbol_len); 4 Arguments value" OpenVMS usage quadword_unsigned$ type quadword (unsigned) access read only mechanism by value Value to be translated. symbol_buf OpenVMS usage char_string! type character string access write only mechanism by reference/ Address of buffer to which to return string. symbol_len" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value# Maximum length of string buffer. 4 Condition_Values_Returned, SS$_NORMAL Successful completion.9 SS$_BUFFEROVF Buffer too small, string truncated.B SS$_NOTRAN No symbolization for this value (null string returned). 3 SDA$TRYMEMD Reads dump or system memory and returns the error status (without signaling) if inaccessible. Format; int sda$trymem (VOID_PQ start, void *dest, int length, __optional_params); 4 Arguments start OpenVMS usage address$ type quadword (unsigned) access  read only mechanism by value. Starting virtual address in dump or system. dest OpenVMS usage address type varies access write only mechanism by reference Return buffer address. length" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value Length of transfer. physical" OpenVMS usage longword_unsigned$ type longword (unsigned) access read only mechanism by value8 0: is a virtual address. This is the default.$ 1: is a physical address. 4 Condition_Values_Returned, SDA$_SUCCESS Successful completion.? SDA$_NOREAD The data is inaccessible for some reason.? SDA$_NOTINPHYS The data is inaccessible for some reason.? Others The data is inaccessible for some reason. 3 SDA$TYPE1 Formats and types a single line to SYS$OUTPUT. Format4 int sda$type (char *ctrstr, __optional_params); 4 Arguments ctrstr OpenVMS usage char_string, type character-coded text string access read only mechanism by reference3 Address of a zero-terminated FAO control string. prmlst OpenVMS usage varying_arg. type quadword (signed or unsigned) access read only mechanism by valueB Optional FAO parameters. All arguments after the cont rol stringB are copied into a quadword parameter list, as used by $FAOL_64. 4 Condition_Values_Returned8 SDA$_SUCCESS Indicates a successful completion.? SDA$_CNFLTARGS Indicates more than twenty FAO parameters given.C Other Returns from the $PUT issued by SDA$TYPE (theC error is also signaled). If the $FAOL_64 callB issued by SDA$TYPE fails, the control string is output. 3 SDA$VALIDATE_QUEUE Validates queue structures. Format3 void sda$validate_queue (VOID_PQ queue_header, __optional_params); 4 Arguments queue_header OpenVMS usage address$ type quadword (unsigned) access read only mechanism by value& Address from which to start search. options OpenVMS usage mask_longword$ type longword (unsigned) access read only mechanism by value@ The following table shows the flags that indicate the type of queue:& Flag MeaningA None Defaults to doubly-linked longword$ queueC SDA_OPT$M_QUEUE_BACKLINK Validates the integrity of a doubly-@ linked queue using the back links; instead of the forward linksD SDA_OPT$M_QUEUE_LISTQUEUE Displays queue elements for debugging9 ! SDA_OPT$M_QUEUE_QUADLINK Indicates a quadword queue> SDA_OPT$M_QUEUE_SELF Indicates a self-relative queue> SDA_OPT$M_QUEUE_SINGLINK Indicates a singly-linked queue 4 Condition_Values_Returned None< If an error occurs, it is signaled by SDA$VALIDATE_QUEUE. ww)@91 CLUE_Extension@ The SDA CLUE command invokes the Crash Log Utility Extractor,B which captures specific crash dump information and, upon systemC reboot, preserves it "in a file with the following naming scheme:% CLUE$nodename_ddmmyy_hhmm.LISD You enter CLUE extension commands at the SDA prompt. For example: SDA> CLUE CONFIGB You can get full help on CLUE by entering HELP CLUE at the SDA> prompt. 2 Overview? SDA CLUE (Crash Log Utility Extractor) commands automate the> analysis of crash dumps and maintain a history of all fatalB bugchecks on either a standalone or cluster system. You can useB SDA CLUE comman#ds in conjunction with SDA to collect and decodeB additional dump file information not readily accessible throughC standard SDA commands. SDA CLUE extension commands can summarizeD information provided by certain standard SDA commands and provideA additional detail for some SDA commands. For example, SDA CLUE? extension commands can quickly provide detailed extended QIO@ processor (XQP) summaries. You can also use SDA CLUE commandsA interactively on a running system to help ide $ntify performance problems.@ You can use all CLUE commands when analyzing crash dumps; theC only CLUE commands that are not allowed when analyzing a runningD system are CLUE CRASH, CLUE ERRLOG, CLUE HISTORY, and CLUE STACK.9 When you reboot the system after a system failure, youB automatically invoke SDA by default. To facilitate better crash= dump analysis, SDA CLUE commands automatically capture and@ archive summary dump file information in a CLUE listing file.= % A startup command procedure initiates commands that do the following: o Invoke SDA' o Issue an SDA CLUE HISTORY command@ o Create a listing file called CLUE$nodename_ddmmyy_hhmm.LIS> The CLUE HISTORY command adds a one-line summary entry to a< history file and saves the following output from SDA CLUE commands in the listing file:$ o Crash dump summary information o System configuration o Stack decoder o Page and swap files" o Me&mory management statistics o Process DCL recall buffer o Active XQP processes o XQP cache headerD The contents of this CLUE list file can help you analyze a systemC failure. If these files accumulate more space than the threshold@ allows (default is 5000 blocks), the oldest files are deletedD until the threshold limit is reached. You can also customize this4 threshold using the CLUE$MAX_BLOCKS logical name.A It is important to remember that CLUE$nodename_dd 'mmyy_hhmm.LISB contains only an overview of the crash dump and does not alwaysB contain enough information to determine the cause of the crash.? To inhibit the running of CLUE at system startup, define the@ logical CLUE$INHIBIT in the SYLOGICALS.COM file as /SYS TRUE. 2 Using_CLUE_with_DOSDB DOSD (Dump Off System Disk) allows you to write the system dump? file to a device other than the system disk. For SDA CLUE toA be able to correctly find the dump file to be analy (zed after a9 system crash, you need to perform the following steps:> 1. Modify the command procedure SYS$MANAGER:SYCONFIG.COM to> add the system logical name CLUE$DOSD_DEVICE to point to@ the device where the dump file resides. You need to supply= only the physical or logical device name without a file specification.D 2. Modify the command procedure SYS$MANAGER:SYCONFIG.COM to mountC systemwide the device where the dump file resides. Otherwise,7 SD)A CLUE cannot access and analyze the dump file.= In the following example, the dump file has been placed on@ device $3$DUA25, which has the label DMP$DEV. You need to add6 the following commands to SYS$MANAGER:SYCONFIG.COM:4 $ MOUNT/SYSTEM/NOASSIST $3$DUA25: DMP$DEV DMP$DEV+ $ DEFINE/SYSTEM CLUE$DOSD_DEVICE DMP$DEV 2 CALL_FRAME Valid for Alpha only.C Displays key information, such as the PC of the caller, from the/ active call frames at the time of the crash*. Format( CLUE CALL_FRAME [/CPU [cpu-id|ALL]3 |/PROCESS [/ADDRESS=n|INDEX=n; |/IDENTIFICATION=n|process-name|ALL]] 3 Parameters ALLA When used with /CPU, it requests information about all CPUs in? the system. When used with /PROCESS, it requests information0 about all processes that exist in the system. cpu-id@ When used with /CPU, it gives the number of the CPU for which> information is to b +e displayed. Use of the cpu-id parameterD causes the CLUE CALL_FRAME command to perform an implicit SET CPUC command, making the indicated CPU the current CPU for subsequent SDA commands. process-name@ When used with /PROCESS, it gives the name of the process for@ which information is to be displayed. Use of the process-nameB parameter, the /ADDRESS qualifier, the /INDEX qualifier, or theB /IDENTIFICATION qualifier causes the CLUE CALL_FRAME command to@ perform an im,plicit SET PROCESS command, making the indicatedC process the current process for subsequent SDA commands. You canB determine the names of the processes in the system by issuing a SHOW SUMMARY command.> The process-name can contain up to 15 letters and numerals,D including the underscore (_) and dollar sign ($). If it contains= any other characters, you must enclose the process-name in quotation marks (" "). 3 Qualifiers /ADDRESS /ADDRESS=nB S-pecifies the PCB address of the desired process when used with CLUE CALL_FRAME/PROCESS. /CPU /CPU [cpu-id|ALL]C Indicates that the call frame for a CPU is required. Specify the5 CPU by its number or use ALL to indicate all CPUs. /IDENTIFICATION /IDENTIFICATION=n@ Specifies the identification of the desired process when used with CLUE CALL_FRAME/PROCESS. /INDEX /INDEX=nA Specifies the index of the desired process when used .with CLUE CALL_FRAME/PROCESS. /PROCESS! /PROCESS [process-name|ALL]? Indicates that the call frame for a process is required. The@ process should be specified with either one of the qualifiersD /ADDRESS, /IDENTIFICATION, or /INDEX, or by its name, or by using! ALL to indicate all processes. 2 CLEANUPB Performs housekeeping operations to conserve disk space. If theC CLUE$COLLECT:CLUE$*.LIS files occupy more space than the logicalC CLUE$MAX_BLOCKS a/llows (the default is 5,000 blocks), the oldest4 files are deleted until the threshold is reached. Format CLUE CLEANUP 2 CONFIG: Displays the system, memory, and device configurations. : Note: To obtain the complete CPU information, you must 9 have PFNMAP privilege. Otherwise, the following error  message is displayed:5 %CLUE-W-NOSYMBIOS, cannot access SYMBIOS table Format CLUE CONFIG 3 Qualifiers /ADAPTERC D0isplays only the part of the system configuration that contains< information about the adapters and devices on the system. /CPUC Displays only the part of the system configuration that contains information about the CPUs. /MEMORYC Displays only the part of the system configuration that contains3 information about the layout of physical memory. 2 CRASH> Displays a crash dump summary, which includes the following items: o Bugcheck type 1 o Current process and image o Failing PC and PS- o Executive image section name and offset o General registers o Failing instructionsA o Exception frame, signal and mechanism arrays (if available)= o CPU state information (spinlock related bugchecks only)> Upon system startup after a system failure, this summary is? automatically captured and stored in the file CLUE$nodename_< ddmmyy_hhmm.LIS. Begin your analysis of the crash dump by exami2ning this summary. Format CLUE CRASH 2 ERRLOGD Extracts the error log buffers from the dump file and places them/ into the binary file called CLUE$ERRLOG.SYS. Format CLUE ERRLOG [/OLD] 3 Qualifier /OLD@ Dumps the errorlog buffers into a file using the old errorlogC format. The default action, if /OLD is not specified, is to dump: the errorlog buffers in the common event header format. 3 DescriptionD CLUE ERRLOG extra 3cts the error log buffers from the dump file and; places them into the binary file called CLUE$ERRLOG.SYS.B These buffers contain messages not yet written to the error logA file at the time of the failure. When you analyze a failure on> the same system on which it occurred, you can run the Error> Log utility on the actual error log file to see these errorB log messages. When analyzing a failure from another system, useB the CLUE ERRLOG command to create a file containing the f 4ailing@ system's error log messages just prior to the failure. SystemD failures are often triggered by hardware problems, so determiningB what, if any, hardware errors occurred prior to the failure can# help you troubleshoot a failure.C You can define the logical CLUE$ERRLOG to any file specificationA if you want error log information written to a file other than CLUE$ERRLOG.SYS.& NOTE? You need at least DECevent V2.9 to analyze t5he new common@ event header (CEH) format file. The old format file can be; analyzed by ANALYZE/ERROR or any version of DECevent. 2 FRU? Outputs the Field Replacement Unit (FRU) table to a file for display by DECevent. Format CLUE FRU 2 HISTORY@ Updates history file and generates crash dump summary output. Format CLUE HISTORY [/qualifier] 3 Qualifier /OVERRIDE= Allows execution of this command even if the du%6mp file has1 already been analyzed (DMP$V_OLDDUMP bit set). 2 MCHK This command is obsolete. Format CLUE MCHK 2 MEMORY1 Displays memory- and pool-related information. Format$ CLUE MEMORY [/qualifier[,...]] 3 Qualifiers /FILES7 Displays information about page and swap file usage. /FREEB Validates and displays dynamic nonpaged free packet list queue. (See also /FULL.) /FULLD Ignored except wh7en used with /FREE or /GH. When used with /FREE,> the first 16 bytes of each entry on the free packet list is? displayed. When used with /GH, a list of the images that use- each granularity hint region is displayed. /GH@ Displays information about the granularity hint regions. (See also /FULL.) /LAYOUT@ Decodes and displays much of the system virtual address space layout. /LOOKASIDEC Validates the lookaside list queue heads and counts the eleme8nts for each list. /STATISTIC@ Displays systemwide performance data such as page fault, I/O,3 pool, lock manager, MSCP, and file system cache. 2 PROCESS@ Displays process-related information from the current process context. Format% CLUE PROCESS [/qualifier[,...]] 3 Qualifiers /ALLB Ignored except when specified with /BUFFER. Displays the bufferD objects for all processes (that is, all existing buffer objects). /BUFFE9RA Displays the buffer objects for the current process or for all" processes if /ALL is specified. /LAYOUT8 Displays the process P1 virtual address space layout. /LOGICALD Displays the process logical names and equivalence names, if they can be accessed. /RECALL9 Displays the DCL recall buffer, if it can be accessed. 2 REGISTER? Displays the active register set for the crash CPU. The CLUE= REGISTER command is valid only when analyzi:ng crash dumps. Format& CLUE REGISTER [/CPU [cpu-id|ALL]1 |/PROCESS [/ADDRESS=n|INDEX=n9 |/IDENTIFICATION=n|process-name|ALL]] 3 Parameters ALLA When used with /CPU, it requests information about all CPUs in? the system. When used with /PROCESS, it requests information0 about all processes that exist in the system. cpu-id@ When used with /CPU, it gives the number of the CPU for which> information ; is to be displayed. Use of the cpu-id parameterB causes the CLUE REGISTER command to perform an implicit SET CPUC command, making the indicated CPU the current CPU for subsequent SDA commands. process-name@ When used with /PROCESS, it gives the name of the process for@ which information is to be displayed. Use of the process-nameB parameter, the /ADDRESS qualifier, the /INDEX qualifier, or the@ /IDENTIFICATION qualifier causes the CLUE REGISTER command to@ perform a<n implicit SET PROCESS command, making the indicatedC process the current process for subsequent SDA commands. You canB determine the names of the processes in the system by issuing a SHOW SUMMARY command.> The process-name can contain up to 15 letters and numerals,D including the underscore (_) and dollar sign ($). If it contains= any other characters, you must enclose the process-name in quotation marks (" "). 3 Qualifiers /ADDRESS /ADDRESS=nB= Specifies the PCB address of the desired process when used with CLUE REGISTER/PROCESS. /CPU /CPU [cpu-id|ALL]C Indicates that the registers for a CPU are required. Specify the5 CPU by its number or use ALL to indicate all CPUs. /IDENTIFICATION /IDENTIFICATION=n@ Specifies the identification of the desired process when used with CLUE REGISTER/PROCESS. /INDEX /INDEX=nA Specifies the index of the desired process when used >with CLUE REGISTER/PROCESS. /PROCESS! /PROCESS [process-name|ALL]? Indicates that the registers for a process are required. The@ process should be specified with either one of the qualifiersD /ADDRESS, /IDENTIFICATION, or /INDEX, or by its name, or by using! ALL to indicate all processes. 2 SCSI: Displays information related to SCSI and Fibre Channel. Format< CLUE SCSI {/CONNECTION=n |/PORT=n|/REQUEST=n|/SUMMARY} 3 Qualifiers ? /CONNECTION /CONNECTION=scdt-address> Displays information about SCSI connections and decodes theC SCSI connection descriptor data structure identified by the SCDT address. /PORT /PORT=spdt-addressD Displays all or a specific port descriptor identified by its SPDT address. /REQUEST /REQUEST=scdrp-address@ Displays information about SCSI requests and decodes the SCSI? class driver request packet identified by the SCDRP addre@ss. /SUMMARYD Displays a summary of all SCSI and FC ports and devices and their type and revisions. 2 SG# Displays the scatter-gather map. Format CLUE SG [/CRAB=address] 3 Qualifier /CRAB /CRAB=address= Displays the ringbuffer for the specified Counted Resource@ Allocation Block (CRAB). The default action is to display the ringbuffer for all CRABs. 2 STACKB On Alpha, CLUE STACK identifies and displays the Acurrent stack.? On Integrity servers, CLUE STACK only identifies the current stack without displaying it.B In the case of a FATALEXCPT, INVEXCEPTN, SSRVEXCEPT, UNXSIGNAL,= or PGFIPLHI bugcheck, CLUE STACK tries to decode the wholeD stack. Use the SDA command SHOW STACK on both Alpha and IntegrityD servers to display and decode the whole stack for the more common bugcheck types. Format CLUE STACK 2 SYSTEMA Displays the contents of the shared logic#Bal name tables in the system. Format CLUE SYSTEM /LOGICAL 3 Qualifier /LOGICAL) Displays all the shared logical names. 2 VCC2 Displays virtual I/O cache-related information.& NOTE; If extended file cache (XFC) is enabled, the CLUE VCC command is disabled. Format! CLUE VCC [/qualifier[,...]] 3 Qualifiers /CACHEB Decodes and displays the cache lines that are used Cto correlateA the file virtual block numbers (VBNs) with the memory used forC caching. Note that the cache itself is not dumped in a selectiveA dump. Use of this qualifier with a selective dump produces the following message:J %CLUE-I-VCCNOCAC, Cache space not dumped because DUMPSTYLE is selective /LIMBO9 Walks through the limbo queue (LRU order) and displays@ information for the cached file header control blocks (FCBs). /STATISTICB Displays statistica Dl and performance information related to the virtual I/O cache. /VOLUME? Decodes and displays the cache volume control blocks (CVCB). 2 XQP; Displays XQP-related information. XQP is part of the I/O subsystem. Format! CLUE XQP [/qualifier[,...]] 3 Qualifiers /ACTIVE7 Displays all active XQP processes. (See also /FULL.) /AQBA Displays any current I/O request packets (IRPs) waiting at the interlocked queue. E/BFRD /BFRD=index@ Displays the buffer descriptor (BFRD) referenced by the index7 specified. The index is identical to the hash value. /BFRL /BFRL=indexA Displays the buffer lock block descriptor (BFRL) referenced byA the index specified. The index is identical to the hash value. /BUFFER /BUFFER=(n,m)A Displays the BFRDs for a given pool. Specify either 0, 1, 2 or@ 3, or a combination of these in the parameter list. (See alsoF /FULL.) /CACHE_HEADER* Displays the block buffer cache header. /FCB /FCB=address@ Displays all file header control blocks (FCBs) with a nonzero> DIRINDX for a given volume. If no address is specified, theC current volume of the current process is used. (See also /FULL.)B The address specified can also be either a valid volume controlA block (VCB), unit control block (UCB), or window control block (WCB) address. /FILE /FILE=adGdressB Decodes and displays file header (FCB), window (WCB), and cache> information for a given file. The file can be identified by! either its FCB or WCB address. /FULL? Ignored except when used with certain other qualifiers. When@ used with /ACTIVE, CLUE displays additional data on the XQP's@ caller (for Alpha only). When used with /BUFFER or /VALIDATE,@ CLUE displays additional data on each buffer descriptor. WhenA used with /FCB, CLUE displays all FCBs, incluHding any that are unused. /GLOBAL4 Displays the global XQP area for a given process. /LBN_HASH /LBN_HASH=lbnC Calculates and displays the hash value for a given logical block number (LBN). /LIMBO@ Searches through the limbo queue and displays FCB information+ from available, but unused file headers. /LOCK /LOCK=lockbasisA Displays all file system serialization, arbitration, and cache+ locks found for the specifiedI lockbasis. /THREAD /THREAD=nB Displays the XQP thread area for a given process. The specified= thread number is checked for validity. If no thread number? is specified, the current thread is displayed. If no currentA thread, but only one single thread is in use, then that threadD is displayed. If more than one thread exists or an invalid thread@ number is specified, then a list of currently used threads is displayed. /VALIDATE /VALIDATE=J(n,m)B Performs certain validation checks on the block buffer cache toC detect corruption. Specify 1, 2, 3, 4, or a combination of theseA in the parameter list. If an inconsistency is found, a minimal0 error message is displayed. (See also /FULL.) ww#*@91 FLT_Extension? The Alignment Fault Utility (FLT) finds alignment faults andB records them in a ring buffer, which can be sized when startingC alignment fault tracing. The summary screen displays thKe results@ sorted by the program counter (PC) that has incurred the most= alignment faults. The detailed trace output also shows the> process identification (PID) of the process that caused the? alignment fault, with the virtual address that triggered the fault.< Output can be directed to a file using the SDA SET OUTPUT command.B When entered by itself with no command keyword, the FLT command! lists the FLT command options. SDA> FLT@ You can get f!Lull help on FLT by entering HELP FLT at the SDA> prompt.D FLT can be started and stopped as required without the need for a system reboot. 2 LOADA Loads the FLT$DEBUG execlet. Do this before starting alignment fault tracing. Format FLT LOAD 2 SHOW 3 TRACE# Displays detail about the trace. Format FLT SHOW TRACE [/SUMMARY] 4 Qualifier /SUMMARYC Displays the results sorted by the program counter (PC)!M that has& incurred the most alignment faults. 2 START 3 TRACEB Starts alignment fault tracing. By default, all PCs are traced. Format7 START TRACE [/BUFFER=pages] [/BEGIN=pc_range_low]0 [/CALLER] [/END=pc_range_high]0 [/INDEX=pid] [MODE=(mode,...)] 4 Qualifiers /BUFFER /BUFFER=pagesC The number of pages to size the trace buffer. The default is 128 pages or 1MB. /BEGIN /BNEGIN=pc_range_low" Start of range of PCs to trace. /CALLERA For each alignment fault, in addition to recording the PC thatB incurred the fault, FLT also records the PCs of the caller, the7 callers caller, and so on, for up to 10 call frames. /END /END=pc_range_high End of range of PCs to trace. /INDEX /INDEX=pidA Only trace alignment faults for the specified process. You canB specify the process index itself, or the process iden OtificationC or extended process identification, from which the process index is extracted. /MODE /MODE=(mode,...)A Only trace alignment faults that occur in the specified modes.A Allowed modes are KERNEL, EXEC, SUPER and USER. If you specify/ only one mode, you can omit the parentheses. 2 STOP 3 TRACE Stops tracing. Format FLT STOP TRACE 2 UNLOAD! Unloads the FLT$DEBUG execlet. Format FLT UNLOADP ww#*@91 OCLA_Extension? The Alpha EV7 On-Chip Logic Analyzer (OCLA) utility collectsC Program Counter (PC) traces in a portion of the Alpha EV7 cache.C This data enables the user to tell which instructions each Alpha& EV7 CPU on the system has executed.C When entered by itself with no command keyword, the OCLA command" lists the OCLA command options. SDA> OCLAB You can get full help on OCLA by entering HELP OCLA at the SDA> prompt.Q& NOTE? When you use the ANALYZE/CRASH command to analyze a crash< dump, the only OCLA commands you can use are OCLA SHOW! STATUS and OCLA SHOW TRACE. 2 OverviewB OCLA enables the user to tell which instructions each Alpha EV7A CPU has executed by setting aside one seventh of the Alpha EV7A cache as acquisition memory which stores the virtual addressesA of instructions executed by the Alpha EV7 CPU. The acquisitionC m Remory in the cache can later be analyzed with an SDA extension.= The acquisition of instructions can be enabled or disabled@ while the system is running, thereby allowing the acquisition@ of instruction streams for a given period of time without the need to restart the system.C If the OCLA is enabled and started, and your system subsequently: fails due to a crash, the current acquisition memory is@ automatically saved to the system dump file. The instructions? executed Sby each CPU prior to the system failure can then beA analyzed with SDA. Upon restart of the system, the acquisitionA memory in the EV7 is still there and can be copied into system7 memory using the OCLA ENABLE and OCLA DUMP commands.@ If the STOP/CPU command is issued on a CPU for which OCLA has= been enabled, OCLA is automatically disabled if the CPU isB allowed to leave the active set. When a CPU is started with theC START/CPU command, OCLA is not automatically enabled; rTather, it must be enabled using SDA. 2 DISABLED Disables the OCLA and returns the cache set to the Alpha EV7 CPU. Format OCLA DISABLE [/CPU=n] 3 Qualifier /CPU /CPU=n> Specifies the CPU on which OCLA should be disabled. If this= qualifier is omitted, OCLA is disabled on every CPU in the system. 2 DUMPC Copies the acquisition memory in the Alpha EV7 cache to a region- in system space for later analysis by SDA.: U When a system fails, data collected in the EV7 cache is? automatically saved in the system dump file for each enabled? CPU. (See the OCLA SHOW TRACE command for more information.) Format OCLA DUMP [/CPU=n] 3 Qualifier /CPU /CPU=nA Specifies the CPU for which to dump the acquisition memory. IfB this qualifier is omitted, the acquisition memory is dumped for all CPUs. 2 ENABLE= Enables the OCLA. Reserves one-seventh of the EV7 cacVhe as' acquisition memory for instructions. Format# OCLA ENABLE [/CPU=n] [/RESET] 3 Qualifiers /CPU /CPU=nB Specifies the CPU on which to enable OCLA. If this qualifier is7 omitted, OCLA is enabled on every CPU in the system. /RESET* Initializes the OCLA to default values.A Under certain circumstances, the OCLA might not be initializedD properly when the system is powered on. For more information, see" the OCLA SHOW REGISTEWR command.A If you wish to reset only certain registers to default values,+ use the OCLA SET REGISTER/RESET command. 2 HELP) Provides online help on OCLA commands. Format OCLA HELP 2 LOADD Loads the OCLA$PCTRACE execlet. This must be done before enabling any OCLA. Format OCLA LOAD 2 SET 3 REGISTER9 Resets a specified OCLA register to its default value.7 The /RESET qualifier is required for this operation.X Format& OCLA SET REGISTER /RESET keyword 4 Parameter keywordC Specifies which OCLA register to reset to its default value. The! valid keywords are as follows:, MISC OCLA 1 miscellaneous register& OCLA1_CTL OCLA 1 control register) PC_CTL OCLA 1 PC control register* SMASK OCLA 1 select mask register+ SMATCH OCLA 1 select match register+ TMASK OCLA 1 trigger mask register, TMATCH OCLA 1 trigger match reYgister& NOTE> You cannot reset all registers using a single command if@ OCLA has already been enabled. You must first disable OCLA@ using the OCLA DISABLE command. You can then reset all the; registers by performing an OCLA ENABLE/RESET command. 4 Qualifier /RESETD This qualifier is required to reset the specified register to its default value. 2 SHOW 3 REGISTER6 Displays detailed information a#Zbout OCLA registers. Format! OCLA SHOW REGISTER [/CPU=n] 4 Qualifier /CPU /CPU=n< Specifies the CPU for which to display registers. If this> qualifier is omitted, registers are displayed for all CPUs. 3 STATUS" Displays the status of an OCLA. Format OCLA SHOW STATUS [/CPU=n] 4 Qualifier /CPU /CPU=n; Specifies the CPU for which to show OCLA status. If this: qualifier is omitted, status is displ[ayed for all CPUs. 3 TRACEB Decodes the acquired compressed instruction stream and displays it. FormatP OCLA SHOW TRACE [/CPU=n] [/LAST=n][/NOPAL][/REVERSE][/SUMMARY][/SYMBOLIZE] 4 Qualifiers /CPU /CPU=nA Specifies the CPU for which to show data. If this qualifier is1 omitted, trace data is displayed for all CPUs. /LAST /LAST=nB Displays the last n instructions. If this qualifier is omitted,0 trace data is displ'\ayed for all instructions. /NOPAL8 Do not include PAL code when displaying instructions. /REVERSE. Displays the instructions in reverse order. /SUMMARY% Displays the last 42 instructions. /SYMBOLIZE* Attempts to symbolize each instruction. 2 STARTB Starts the acquisition of instructions into acquisition memory. Format OCLA START [/CPU=n] 3 Qualifier /CPU /CPU=n= The CPU on which to start instructi]on acquisition. If thisB qualifier is omitted, instruction acquisition is started on all CPUs. 2 STOP) Stops the acquisition of instructions. Format OCLA STOP [/CPU=n] 3 Qualifier /CPU /CPU=nD Specifies the CPU on which to stop acquisition. If this qualifier2 is omitted, acquisition is stopped on all CPUs. 2 UNLOAD? Unloads the OCLA$PCTRACE execlet and returns the acquisition buffers to the system. Format^ OCLA UNLOAD ww)J*@91 SPL_Extension= The Spinlock Tracing Utility (SPL) is an extension to SDA.B When entered by itself with no command keyword, the SPL command! lists the SPL command options. SDA> SPL@ You can get full help on SPL by entering HELP SPL at the SDA> prompt. 2 OverviewB To synchronize access to data structures, the OpenVMS operating= system uses a set of static and dynamic spinlocks, such as> IOLOCK8 and SCH _ED. The operating system acquires a spinlock@ to synchronize data, and at the end of the critical code path@ the spinlock is then released. If a CPU attempts to acquire aB spinlock while another CPU is holding it, the CPU attempting toB acquire the spinlock has to spin, waiting until the spinlock is@ released. Any lost CPU cycles within such a spinwait loop are charged as MPsynch time.< By using the MONITOR utility, you can monitor the time in@ process modes, for example, w `ith the command $ MONITOR MODES.= A high rate of MP synchronization indicates contention for? spinlocks. However, until the implementation of the Spinlock? Tracing utility, there was no way to tell which spinlock wasB heavily used, and who was acquiring and releasing the contendedD spinlocks. The Spinlock Tracing utility allows a characterization@ of spinlock usage. It can also collect performance data for a% given spinlock on a per-CPU basis.@ This tracing ability is bui alt into the system synchronization@ execlet, which contains the spinlock code, and can be enabled? or disabled while the system is running. There is no need toD reboot the system to load a separate debug image. The images that9 provide spinlock tracing functionality are as follows:' SYS$LOADABLE_IMAGES:SPL$DEBUG.EXE SYS$SHARE:SPL$SDA.EXED The SDA> prompt provides the command interface. From this command@ interface, you can load and unload the spinlock debug execl bet= using SPL LOAD and SPL UNLOAD, and start, stop and display@ spinlock trace data. This allows you to collect spinlock data? for a given period of time without system interruption. Once@ information is collected, the trace buffer can be deallocatedC and the execlet can be unloaded to free up system resources. TheA spinlock trace buffer is allocated from S2 space and pages are! taken from the free page list.A Should the system crash while spinlock tracing is enabled, thce? trace buffer is dumped into the system dump file, and it canC later be analyzed using the spinlock trace utility. This is very9 useful in tracking down CPUSPINWAIT bugcheck problems.A Note that by enabling spinlock tracing, there is a performance< impact. The amount of the impact depends on the amount of spinlock usage. 2 Using_SPL: The following steps will enable you to collect spinlock1 statistics using the Spinlock Tracing Utility.0 1. Load the Spinldock Tracing Utility execlet. SDA> SPL LOAD0 2. Allocate a trace buffer and start tracing. SDA> SPL START TRACED 3. Wait a few seconds to allow some tracing to be done, then findA out which spinlocks are incurring the most acquisitions and the most spinwaits.! SDA> SPL SHOW TRACE/SUMMARY= For example, you might see contention for the SCHED and9 IOLOCK8 spinlocks (a high acquisition count, with a@ significant proportion of the ac equisitions being forced to wait).< 4. Look to see if the spinlocks with a high proportion of@ spinwaits caused a significant delay in the acquisition ofD the spinlock. You must now collect more detailed statistics on a specific spinlock.+ SDA> SPL START COLLECT/SPINLOCK=SCHED@ This command accumulates additional data for the specifiedB spinlock. As long as tracing is not stopped, collection willB continue to accumulate spinlock-specific data ffrom the trace buffer.= 5. Display the additional data collected for the specified spinlock. SDA> SPL SHOW COLLECTA This display includes the average hold time of the spinlockA and the average spinwait time while acquiring the spinlock.C 6. Repeat steps 4 and 5 for each spinlock that has contention. A4 START COLLECT cancels the previous collection.> 7. Disable spinlock tracing when you have collected all the@ needed spinlock statisgtics and release all the memory usedB by the Spinlock Tracing utility with the following commands. SDA> SPL STOP COLLECT SDA> SPL STOP TRACE SDA> SPL UNLOAD 2 Collecting_SPL_StatisticsC The following example shows a command procedure that can be used% for gathering spinlock statistics: $ analyze/system spl load spl start trace/buffer=1000 wait 00:00:15 spl stop trace read/executive/nolog set output spl_trace.hlis spl analyze spl show trace/summary! spl start collect/spin=sched wait 00:00:05 spl show collect# spl start collect/spin=iolock8 wait 00:00:05 spl show collect" spl start collect/spin=lckmgr wait 00:00:05 spl show collect spl start collect/spin=mmg wait 00:00:05 spl show collect! spl start collect/spin=timer wait 00:00:05 spl show collect# spl start collect/spin=mailbox wait 00:0i0:05 spl show collect# spl start collect/spin=perfmon wait 00:00:05 spl show collect spl stop collect spl unload exit $ exit0 A more comprehensive procedure is provided as SYS$EXAMPLES:SPL.COM. 2 ANALYZEB Analyzes collected spinlock data and presents the most relevant data. Format7 SPL ANALYZE [/[NO]CPU_STATISTICS |/[NO]PLATFORM |4 /[NO]HOLD_TIMES=n/[NO]WAIT_TIMES=n8 |/[N"jO]USAGE=(HOLD=n,SPIN=n,TOP_PCS=n)] 3 Qualifiers /CPU_STATISTICS /CPU_STATISTICS (default) /NOCPU_STATISTICS Displays per-CPU statistics. /HOLD_TIMES /HOLD_TIMES=n /NOHOLD_TIMES=n7 Displays occurrences of spinlocks held longer than n2 microseconds. The default is 1000 microseconds. /PLATFORM /PLATFORM (default) /NOPLATFORM( Displays system platform information. /USAGE' /USAGE=(HOLD k=n,SPIN=n, TOP_PCS=n)A Specifies thresholds for displaying information on a spinlock.; If the percentage of time a spinlock is held exceeds the> value of HOLD=n, where n is a value from 0 to 100, displays> the information on the spinlock. The default is 10%. If theA percentage of time a spinlock is spinning exceeds the value ofC SPIN=n, displays the information on the spinlock. The default isD 10%. If either the HOLD or SPIN thresholds are exceeded, displaysD informationl on a spinlock. The TOP_PCS=n keyword displays the topA n unique callers to lock a spinlock. The default is to display the top five unique callers.? By specifying either /USAGE=(HOLD=0) or /USAGE=(SPIN=0), SPLD displays information on all spinlock usage from the trace buffer. /WAIT_TIMES /WAIT_TIMES=n /NOWAIT_TIMES=n7 Displays occurrences of spinlocks held longer than n2 microseconds. The default is 1000 microseconds. 2 LOADC Loads the S#mPL$DEBUG execlet. This must be done prior to starting spinlock tracing. Format SPL LOAD 2 SHOW 3 COLLECT( Displays the collected spinlock data. Format' SPL SHOW COLLECT [/RATES|/TOTALS] 4 Qualifiers /RATES@ Reports activity as a rate per second and hold/spin time as a+ percentage of time. This is the default. /TOTALS< Reports activity as a count and hold/spin time as cycles. 3 TRACE) Displays spinnlock tracing information. Format, SPL SHOW TRACE [ /[NO]ACQUIRE | /CPU=n= | /[NO]FORKLOCK=forklock | /[NO]FRKDSPTH: | /[NO]FRKEND | /RATES | /[NO]RELEASE8 | /[NO]SPINLOCK=spinlock | /SUMMARY5 | /TOP=n | /TOTALS | /[NO]WAIT ] 4 Qualifiers /ACQUIRE /ACQUIRE /NOACQUIRE= The /ACQUIRE qualifier displays any spinlock acquisitions.> The /NOACQUIRE qualifier oignores any spinlock acquisitions. /CPU /CPU=nD Specifies the display of information for a specific CPU only, forA example, /CPU=5 or /CPU=PRIMARY. By default, all trace entries for all CPUs are displayed. /FORKLOCK /FORKLOCK=forklock /NOFORKLOCK< The /FORKLOCK=forklock qualifier specifies the display of9 a specific forklock, for example, /FORKLOCK=IOLOCK8 or /FORKLOCK=IPL8.= The /NOFORKLOCK qualifier specifies that no forklock trpace? information be displayed. By default, all fork trace entries are decoded and displayed. /FRKDSPTH /FRKDSPTH /NOFRKDSPTHD The /FRKDSPTH qualifier displays all invocations of fork routines3 within the fork dispatcher. This is the default.A The /NOFRKDSPTH qualifier ignores all of the operations of the /FRKDSPTH qualifier. /FRKEND /FRKEND /NOFRKEND@ The /FRKEND qualifier displays all returns from fork routines3 q within the fork dispatcher. This is the default.@ The /NOFRKEND qualifier ignores all operations of the /FRKEND qualifier. /RATES@ Reports activity as a rate per second and hold/spin time as a+ percentage of time. This is the default. /RELEASE /RELEASE /NORELEASE9 The /RELEASE qualifier displays any spinlock releases.: The /NORELEASE qualifier ignores any spinlock releases. /SPINLOCK /SPINLOCK=spinlock /NOSPINLOCKr@ The /SPINLOCK=n qualifier specifies the display of a specific> spinlock, for example, /SPINLOCK=LCKMGR or /SPINLOCK=SCHED.> /NOSPINLOCK specifies that no spinlock trace information be@ displayed. By default, all spinlock trace entries are decoded and displayed. /SUMMARYB Steps through the entire trace buffer and displays a summary ofC all spinlock and forklock activity. It also displays the top ten callers. /TOP /TOP=n@ Displays a differenst number other than the top ten callers orB fork PCs. By default, the top ten are displayed. This qualifier1 is useful only when you also specify /SUMMARY. /TOTALS< Reports activity as a count and hold/spin time as cycles. /WAIT /WAIT /NOWAIT8 The /WAIT qualifier displays any spinwait operations.9 The /NOWAIT qualifier ignores any spinwait operations. 2 START 3 COLLECTA Starts to collect spinlock information a longer period of t time' than will fit into the trace buffer. Format7 SPL START COLLECT [/SPINLOCK=spinlock|/ADDRESS=n] 4 Qualifiers /ADDRESS /ADDRESS=n; Specifies the tracing of a specific spinlock by address. /SPINLOCK /SPINLOCK=spinlock= Specifies the tracing of a specific spinlock, for example,' /SPINLOCK=LCKMGR or /SPINLOCK=SCHED. 3 TRACE Enables spinlock tracing. Format= SPL START TRACE [ /[NO]ACQUIRE | /BUFFuER=pages | /CPU=n> | /[NO]FORKLOCK=forklock | /[NO]FRKDSPTH2 | /[NO]FRKEND | /[NO]RELEASE< | /[NO]SPINLOCK=spinlock | /[NO]WAIT ] 4 Qualifiers /ACQUIRE /ACQUIRE /NOACQUIREC The /ACQUIRE qualifier traces any spinlock acquisitions. This is the default.> The /NOACQUIRE qualifier ignores any spinlock acquisitions. /BUFFER /BUFFER=pages= Specifies the size of the tvrace buffer (in page units). ItA defaults to 128 pages, which is equivalent to 1MB, if omitted. /CPU /CPU=nD Specifies the tracing of a specific CPU only, for example, /CPU=54 or /CPU=PRIMARY. By default, all CPUs are traced. /FORKLOCK /FORKLOCK=forklock /NOFORKLOCK< The /FORKLOCK=forklock qualifier specifies the tracing of9 a specific forklock, for example, /FORKLOCK=IOLOCK8 or /FORKLOCK=IPL8.C The /NOFORKLOCK qualifier disables wforklock tracing and does not? collect any forklock data. By default, all forks are traced. /FRKDSPTH /FRKDSPTH /NOFRKDSPTHB The /FRKDSPTH qualifier traces all invocations of fork routines3 within the fork dispatcher. This is the default.9 The /NOFRKDSPTH qualifier ignores all of the /FRKDSPTH operations. /FRKEND /FRKEND /NOFRKEND> The /FRKEND qualifier traces all returns from fork routines3 within the fork dispatcher.x This is the default.? The /NOFRKEND qualifier ignores all of the operations of the /FRKEND qualifier. /RELEASE /RELEASE /NORELEASEC The /RELEASE qualifier traces any spinlock releases. This is the default.: The /NORELEASE qualifier ignores any spinlock releases. /SPINLOCK /SPINLOCK=spinlock /NOSPINLOCK9 The /SPINLOCK=spinlock qualifier specifies the tracing; of a specific spinlock, for example, /SPINLOCK=LCKMGR ory /SPINLOCK=SCHED.C The /NOSPINLOCK qualifier disables spinlock tracing and does notC collect any spinlock data. By default, all spinlocks are traced. /WAIT /WAIT /NOWAITB The /WAIT qualifier traces any spinwait operations. This is the default.9 The /NOWAIT qualifier ignores any spinwait operations. 2 STOP 3 COLLECT< Stops the spinlock collection, but does not stop spinlock tracing. Format SPL STOP COLLECTz 3 TRACEB Disables spinlock tracing, but it does not deallocate the trace buffer. Format SPL STOP TRACE 2 UNLOADA Unloads the SPL$DEBUG execlet and performs cleanup. Tracing is; automatically disabled and the trace buffer deallocated. Format SPL UNLOAD wwI*@91 XFC_ExtensionB The SDA extension commands for Extended File Cache (XFC) enable? you to display the following information in a convenient and reada{ble format:! o Various XFC data structures; o Statistics that aid in tuning the extended file cache@ You can also control the types of events that are recorded by XFC's tracing feature.A You can enter XFC commands at the SDA prompt or you can access online help, as follows: SDA> XFC HELP 2 SET 3 TRACE= Controls the types of events to be recorded by XFC's trace> facility and initializes the trace structures (to eliminate+ events that h|ave already been recorded). Format2 XFC SET TRACE [/SELECT=LEVEL:level] [/RESET] 4 Qualifiers /SELECT /SELECT=LEVEL:level> Specifies the level of tracing in XFC on a live system. The, possible values for level are as follows:4 1 (Default) Traces only major, unusual events.= 2 Traces file access, deacess, truncate, read start andB complete, and write start and complete operations. Results@ are displayed using the SHOW TRA}CE command. Setting this8 trace level has only a minor performance impact.E 3 Performs more detailed tracing, which can be viewed using the< SHOW TRACE/RAW command. Has some performance impact.D 4 Performs very detailed tracing with a noticeable performance impact. /RESETA Initializes the trace buffer to eliminate all events that have already been traced. 2 SHOW 3 CONTEXT7 Displays the contents of an XFC context block (CTX). ~ Format8 XFC SHOW CONTEXT [address][/STALLING|/FULL|/BRIEF] 4 Parameter addressB The address of the CTX. If no address is supplied, then all the$ context structures are displayed. 4 Qualifiers /BRIEFB Displays a brief summary for each context; for example, the I/O= type, start virtual block number (VBN), and length of I/O. /FULL@ Displays the complete context structure. This is the default. /STALLINGD Displays only contexts that are stalling; for example, those that7 have a stall reason code other than estrNotStalling. 3 EXTENT: Displays the contents of an extent control block (ECB). Format XFC SHOW EXTENT address 4 Parameter address The address of the ECB. 3 FILE7 Displays the contents of the cache file block (CFB). Format3 XFC SHOW FILE [address] [/EXTENTS|/ID=file-idC |/CVB=address |/OPEN|/CLOSED|/STATISTICS |/FULL |/BRIEF] 4 Parameter address? The address of the CFB. The /OPEN and /CLOSED qualifiers, if@ present, are ignored. If no address is supplied, then all the CFBs are displayed. 4 Qualifiers /BRIEFA Displays the following summary information for each cache file> block (CFB): CFB address, cache volume block (CVB) address,/ access count, active I/O count, and file ID.@ /BRIEF is incompatible with /EXTENTS, / FULL, and /STATISTICS.B If the file specification is available in LIB$FID_TO_NAME(), it5 is displayed; otherwise, the file ID is displayed.& NOTE> Because the volume is accessed through its logical name,; if two volumes are mounted that have the same logical< name (for example, one mounted /SYSTEM and one mounted> privately, which results in the same logical name in two? different access-mode logical name tables), the incorrect, file specification might be displayed. /CLOSED1 Displays only CFBs whose access count is zero. /CVB /CVB=address? Displays information only for files matching the given cache volume block address. /DISPLAY_NAME /DISPLAY_NAME (default) /NODISPLAY_NAME8 Controls whether the file specification is displayed. /EXTENTSD Displays the cache extents held in cache for any displayed files.@ This shows the primary and secondary cache extents along withD their data state, virtual block numbers (VBNs), and logical blockD numbers (LBNs). It also shows a summary of memory usage (pageletsA used and pagelets valid) for any displayed files. The /EXTENTS7 qualifier is incompatible with the /BRIEF qualifier. /FULL= Displays all fields for each cache file block. This is the default.B If the file specification is available in LIB$FID_TO_NAME(), it5 is displayed; otherwise, the file ID is displayed.& NOTE> Because the volume is accessed through its logical name,; if two volumes are mounted that have the same logical< name (for example, one mounted /SYSTEM and one mounted> privately, which results in the same logical name in two? different access-mode logical name tables), the incorrect, file specification might be displayed. /ID /ID=file-id? Displays only information about any files matching the given> file-identification (FID). The file identification (FID) isB the hexadecimal file number component in a format file ID (file4 number, sequence number, relative volume number). /OPEN> Displays only CFBs whose access count is greater than zero. /STATISTICS9 Displays more statistics about the specified file. TheC /STATISTICS qualifier is incompatible with the /BRIEF qualifier. 3 HISTORYA Displays approximately three days of XFC acti!vity in 10-minute intervals. Format XFC SHOW HISTORY 3 IRPD Displays a subset of the fields of an I/O Request Packet that has relevance for XFC debugging. Format XFC SHOW IRP address 4 Parameters addressC The address of the IRP structure whose relevant fields are to be decoded and displayed. 3 MEMORY7 Displays information about memory used by the cache. Format$ XFC SHOW MEMORY [/BRIEF|/FULL]" 4 Qualifiers /BRIEF1 Displays summary statistics on XFC memory use. /FULLC Displays full statistics on XFC memory use. This is the default. 3 SUMMARY> Displays general information about the Extended File Cache. Format$ XFC SHOW SUMMARY [/STATISTICS] 4 Qualifier /STATISTICSA Additionally, displays read and write activity arranged by I/O size. 3 TABLESD Displays both the extent hash table (EHT) and the fil"e hash table (FHT). Format6 XFC SHOW TABLES [/ALL][/EXTENT][/FILE][/SUMMARY] 4 Qualifiers /ALL@ Displays the contents of the extent hash table (EHT) and file) hash table (FHT). This is the default. /EXTENT) Displays only the contents of the EHT. /FILE) Displays only the contents of the FHT. /SUMMARY2 Displays summary information about EHT and FHT. 3 TRACE= Displays all or selected portions of the XFC trace buffer,C starting with the most recent entry and moving backward in time. Format: XFC SHOW TRACE [/ALL]/CONTAINING=value |/CPU=cpu-num, |/LINENUMBER=linenumber: |/MATCH [=[AND|OR]] |/Px=value |/RAW] 4 Qualifiers /ALL9 Displays the entire trace buffer. This is the default. /CONTAINING /CONTAINING=valueD Displays only records where any of the traced parameters is equal to value. /CPU /CPU=cpu-num? Displays only records from threads executing on CPU cpu-num. /LINENUMBER /LINENUMBER=linenumberC Displays only records from tracepoints at line linenumber in the relevant source files. /MATCH /MATCH [= AND|OR]@ Alters the sense of the match condition when more than one of> the filter qualifiers /CPU, /LINENUMBER, /FILENAME, /Px, or /CONTAINING are specified. /Px /Px=valueC Displays only records where one of the traced parameters P1, P2, P3, or P4 is equal to value. /RAWC Displays contents of trace records in hexadecimal format without@ interpretation. By default, the values are displayed in human" readable format with filenames. 3 VOLUME7 Displays the contents of a cache volume block (CVB). Format, XFC SHOW VOLUME [address]/BRIEF|/FULL|: /NAME=DISK$volume_label| /STATISTICS 4 Parameter addressD The address of a CVB. If no address is supplied, then all volumes are displayed. 4 Qualifiers /BRIEF0 Displays summary information for each volume. /FULLB Displays a complete list of information about each volume. This is the default. /NAME /NAME=DISK$volume_label? Displays information for the volume with the specified name. /STATISTICS@ Displays the read and write I/O activity for this volume. TheC /STATISTICS qualifier is incompatible with the /BRIEF qualifier.ww