Digital PDFs
Documents
Guest
Register
Log In
AA-J526A-TE
March 1980
95 pages
Original
3.8MB
view
download
Document:
VAX/VMS System Dump Analyzer Reference Manual
Order Number:
AA-J526A-TE
Revision:
000
Pages:
95
Original Filename:
OCR Text
VAX/VMS System Dump Analyzer Reference Manual Order No. AA-J526A-TE March 1980 This document describes how the VAX/VMS System Dump Analyzer works and how to use it. VAX/VMS System Dump Analyzer Reference Manual Order No. AA-J526A-TE SUPERSESSION/UPDATE INFORMATION: This is a new document for this release. OPERATING SYSTEM AND VERSION: VAX/VMS V02 SOFTWARE VERSION: VAX/VMS V02 To order additional copies of this document, contact the Software Distribution Center, Digital Equipment Corporation, Maynard, Massachusetts 01754 digital equipment corporation . maynard, massachusetts First Printing, March 1980 The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document. The software described in this document is furnished under a license and may only be used or copied in accordance with the terms of such license. No responsibility is assumed for the use or reliability of software on equipment that is not supplied by DIGITAL or its affiliated companies. Copyright @ 1980 by Digital Equipment Corporation The postage prepaid READER'S COMMENTS form on the last page of this document requests the user's critical evaluation to assist us in preparing future documentation. The following are trademarks of Digital Equipment Corporation: DIGITAL DEC PDP DECUS UNIBUS COMPUTER LABS COMTEX DDT DEC COMM ASSIST-11 VAX DECnet DATATRIEVE DECsystem-10 DECtape DIBOL EDUSYSTEM FLIP CHIP FOCAL INDAC LAB-8 DECSYSTEM-20 RTS-8 VMS IAS TRAX MASSBUS OMNIBUS OS/8 PHA RSTS RSX TYPESET-8 TYPESET-11 TMS-11 ITPS-10 SBI PDT CONTENTS Page v PREFACE CHAPTER 1 INTRODUCTION TO SDA 1-1 CHAPTER 2 THE SYSTEM DUMP FILE 2-1 2.1 2.2 SETTING THE SYSTEM DUMP FILE SIZE SAVING SYSTEM DUMP FILES 2-1 2-2 3 RUNNING SDA 3-1 3.1 3.2 3.3 3.4 3.5 3.6 INVOKING SDA WITH THE RUN COMMAND INVOKING SDA AS A FOREIGN COMMAND EXAMINING THE RUNNING SYSTEM READING THE SYSTEM DUMP FILE BUILDING THE SDA SYMBOL TABLE INVOKING SDA IN THE SITE-SPECIFIC START-UP PROCEDURE 3-1 3-2 3-2 3-2 3-3 4 SDA COMMAND STRINGS 4-1 4.l GENERAL FORMAT EXPRESSIONS 4-1 4-2 4-2 4-2 4-3 4-3 4-3 CHAPTER CHAPTER 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 CHAPTER 5 Radix Operators Unary Operators Binary Operators Special Operators Symbols 3-3 5-1 5-2 5-3 5-5 5-6 5-10 5-11 5-14 5-15 5-17 5-18 5-19 5-21 5-24 5-29 5-33 5-3n 5-39 5-46 5-49 5-51 SDA COMMANDS COPY DEFINE EVALUATE EXAMINE EXIT FORMAT HELP READ REPEAT SET OUTPUT SET PROCESS SHOW CRASH SHOW DEVICE SHOW PAGE TABLE SHOW PFN DATA SHOW POOL SHOW .PROCESS SHOW STACK SHOW SUMMARY SHOW SYMBOL iii CONTENTS Page CHAPTER CHAPTER 6 ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES 6-1 6.1 6.2 6.2.1 6.2.2 6.3 6.3.1 6.3.2 6.3.3 6.3.3.1 6.3.3.2 6.3.4 6.3.4.1 6.3.4.2 6.3.4.3 6.4 GENERAL PROCEDURE FOR SOLVING SYSTEM FAILURES FATAL BUGCHECK CONDITIONS Fatal Exceptions Illegal Page Faults DEBUGGING A SYSTEM FAILURE AN EXAMPLE Identifying the Bugcheck Identifying the Exception Locating the Source of the Exception Finding the Driver Using the DPT List Calculating the Offset into the Driver Finding the Problem within the Routine Stepping through the Routine Checking the Values of Key Variables Identifying and Fixing the Defective Code INDUCING A SYSTEM FAILURE 6-1 6-2 6-2 6-5 6-6 6-6 6-6 6-9 n-9 6-10 6-10 6-12 6-12 6-13 6-15 7 SDA ERROR MESSAGES 7-1 7.1 7.2 INITIALIZATION ERROR MESSAGES OPERATIONAL ERROR MESSAGES 7-1 7-1 INDEX Index-1 FIGURES Figure 5-1 5-2 5-3 5-4 5-5 5-6 5-7 5-8 5-9 5-10 5-11 5-12 5-13 5-14 5-15 6-1 6-2 6-3 6-4 6-5 System Region Memory System Crash Information Device Data Block List for Dn Devices Controller Data Structures for DB Devices Device Unit Data Structures for Device DBAl System Page Table PFN Data Base Paged Dynamic Storage Pool Process Information Working Set List Process Section Table Program Region Memory Current Operating Stack (Kernel) Summary of Active Processes Global Symbols Interrupt Stack and Vectors Page Table Display Showing Invalid Location 80069EOO Linked List of Driver Prologue Tables Location of Instruction in Driver Routine Location of Defective Code in Driver Routine 5-9 5-23 5-27 5-27 5-28 5-32 5-35 5-38 5-42 5-43 5-44 5-45 5-48 5-50 5-52 n-6 6-8 6-9 n-11 6-14 TABLES Table 5-1 Summary of SDA Commands iv 5-1 PREFACE MANUAL OBJECTIVES The VAX/VMS System Dump Analyzer Reference Manual contains information useful in determining the cause of a VAX/VMS operating system failure. INTENDED AUDIENCE This reference manual is intended for users who possess extensive knowledge of VAX/VMS data structures. It assumes that the audience for this manual includes VAX/VMS developers and DIGITAL Software Support Specialists, as well as DIGITAL customers familiar with VAX/VMS internal design. In addition, system programmers who are writing device drivers may need to use SDA. The system manager should also become familiar with SDA, usually to produce SDA listings after each crash and, more importantly, to save the system dump file for later analysis. STRUCTURE OF THIS DOCUMENT This reference manual consists of seven chapters: • Chapter 1 provides an introduction to SDA and operations. • Chapter 2 describes the system dump file that SDA analyzes. • Chapter 3 explains how to run SDA to analyze a examine the running system. • Chapter 4 details the SDA command format. • Chapter 5 describes the SDA commands, in alphabetical order. • Chapter n gives guidelines for analyzing system steps through a sample system crash. • Chapter 7 lists and operation. explains v the messages summarizes dump file failures related SDA to or and SDA ASSOCIATED DOCUMENTS This document has the following prerequisites: VAX-11/780 Hardware Handbook VAX/VMS S~-~marx_P~-5-~E_!pt~_?.~~-and Glossa The following documents are associated with this manual: VAX-11 Run-Time Library Reference Manual VAX/VMS Guide to Writing a Device Driver VAX/VMS system Manager 'sGliTae··----VAX/vMs sys~m-~er-~ce=~~=~~:ference Manual For a complete list of all VAX-11 documents, including brief descriptions of each, see the VAX-11 Information Dir_:_ec_~~¥. ..-~~9 ___!_nd~~· CONVENTIONS USED IN THIS DOCUMENT The following conventions are used in this document. Convention Meaning SHOW CRASH Uppercase words and letters, used in examples, indicate that you should type the word or letter exactly as shown. symbol-name Lowercase words and letters, used in format examples, indicate that you are to substitute a word or value of your choice. SET PROCESS l name /INDEX = nn /SYSTEM ! Square brackets indicate that the enclosed argument is optional, except for brackets used in directory specifications. Braces are from which chosen. used to enclose lists one element is to be A vertical ellipsis indicates that not all of the statements in an example or figure are shown. SHOW SYMBOL TEN TEN :::: 000000:1.0 In examples of commands you enter and SDA responses, all output lines and prompting characters that SDA prints or displays are shown in black letters. All the lines you type are shown in red letters. A symbol with a 1- to 3-character abbreviation indicates that you press a key on the terminal. vi CHAPTER 1 INTRODUCTION TO SDA The System Dump Analyzer (SDA) is a VAX/VMS utility determining the cause of an operating system failure. that aids in When an internal error occurs that interferes with normal operations, the operating system writes information concerning its status at the time of the system failure to a predefined system dump file. SDA examines and formats the contents of this file. With the help of the SDA commands, you can display parts of the formatted system dump file on a video display terminal, or you can create hard copy listings. SDA performs the following operations: • Assigns a value to a symbol • Examines memory of any process • Formats block of data • Displays device data structures • Displays memory management structures • Displays a summary of all processes on the system • Displays the SDA symbol table • Copies the system dump file • Sends output to a file or device • Reads symbols from any object module In addition to analyzing the system dump file, SDA can perform the operations listed above on a running system without interrupting that system's operation. While SDA provides a great deal of information, it does not analyze all the various control blocks and data contained in memory. Therefore, in the event of system failure, it is extremely important that customers send a copy of the system dump file to DIGITAL along with a Software Performance Report (SPR). 1-1 CHAPTER 2 THE SYSTEM DUMP FILE Before the VAX/VMS operating system can write information to the system dump file, the system parameter DUMPBUG must be set. Normally, this parameter is enabled by default; to reset DUMPBUG, as well as other system parameters, consult the VAX/VMS System Manager's Guide. If the DUMPBUG parameter is set and the operating system fails, the system writes the contents of the ~rror log buffers, processor registers, and physical memory to the contiguous file SYSDUMP.DMP. SDA analyzes this file and produces formatted displays of its contents. SYSDUMP.DMP is furnished as an empty file in the VAX/VMS software distribution kit. It is located in the system directory [SYSEXE] and its file size is initially small. 2.1 SETTING THE SYSTEM DUMP FILE SIZE To preserve the continuity of the error log file and save all of physical memory, it is important to make sure that the dump file's size in blocks matches the individual system configuration. To change the size of SYSDUMP.DMP, the system manager (or a user with similar privileges) runs a command procedure in the directory [SYSUPD] called SWAPFILES.COM. The command line is: S @[SYSUPDJSWAPFILES The command procedure prompts you for paging, swapping, and dump file sizes. You can enter a new file size or simply press ~ • If you enter a new file size, the command procedure creates a new system dump file. This new file will not be used by the operating system until after a system reboot. To calculate the correct dump file size for the formula: blocks your configuration, use = physical-memory-size-in-pages + 4 The four additional blocks store hardware context and error log buffers. You can also use the table provided in the VAX/VMS System Manager's Guide to find the correct size. This table lists recommended sizes for the three files affected by the SWAPFILES command procedure. The system manager's guide also gives detailed information on SWAPFILES.COM and on changing dump file size. 2-1 THE SYSTEM DUMP FILE 2.2 SAVING SYSTEM DUMP FILES Every time the operating system writes information to SYSDUMP.DMP, it writes over whatever was previously stored in the file. For this reason, the system manager should save the contents of SYSDUMP.DMP after a system failure has occurred. One way to accomplish this is to copy the file to another directory. Use the DIGITAL Command Language (DCL) command COPY, as shown in the following example: $ COPY SYSSSYSTEM:SYSDUMP+DMP;l [SYSERRJSAVEDUMP.DMP SDA also provides a COPY command. This command can be included in the series of SDA commands in the site-specific start-up procedure. Section 3.6 discusses the start-up procedure in more detail. The COPY command is explained in Chapter 5. 2-2 CHAPTER 3 RUNNING SDA SDA can analyze a dump file or examine the running system. possible for SDA to read the dump file, you need: • Read access to SYSDUMP.DMP • Read access to a copy of the system symbol table • Enough virtual space for SDA to map file the entire To make it system dump To ensure that SDA has the correct amount of virtual address space, the running system must have the system parameter VIRTUALPGCNT equal to the size of the dump file plus 1000 pages. In addition, your page file quota (PGFLQUOTA in the user's authorization record created by running the User Authorization Program) must be at least the size of the dump file plus 1000 pages. See the VAX/VMS System Manager's Guide for information on system parameters and the User Author1zat1ori Program (AUTHORIZE). 3.1 INVOKING SDA WITH THE RUN COMMAND If the above conditions are satisfied, you can invoke the following DCL command: $ SDA by typing RUN SYSSSYSTEM:SDA When you issue this command, SDA will system dump file you want to examine: prompt for the name of the Enter name of dump file > To examine the most recent system dump (SYS$SYSTEM:SYSDUMP.DMP), press ~ in response to the prompt. SDA will search the system directory (logical name SYS$SYSTEM) for SYSDUMP.DMP. To examine an older dump file, enter its file specification: Enter name of dump file > CWIZARDJACPCRASH.DMP The default file specification for the system dump file is SYS$DISK: [default-dir]SYSDUMP.DMP where SYS$DISK and [default-dir] represent, respectively, the device and directory specified by the last SET DEFAULT command. (See the VAX/VMS Command Language User's Guide for a description of the SET DEFAULT command.) 3-1 RUNNING SDA If you want to examine the running system, type an asterisk (*) in response to the dump file prompt. See Section 3.3 for further details. 3.2 INVOKING SDA AS A FOREIGN COMMAND You can also invoke SDA assignment statement: t SDA as a foreign command by using the DCL := SSDA A foreign command is a command not known to the command that can be executed by entering a command string. interpreter The dollar sign ($) indicates to DCL that the expression is a foreign command. Now you can specify a file or the asterisk as a parameter to the SDA command: $ SDA [DUMPSJBADUCB Defining SDA as a foreign command abbreviates SDA initialization because it eliminates the need to respond to the dump file prompt. For further information on the foreign command feature of DCL, see Appendix A of the VAX/VMS Command Language User's Guide. You can also invoke SDA from the site-specific start-up Section 3.6 describes this method of calling SDA. 3.3 procedure; EXAMINING THE RUNNING SYSTEM Occasionally, VAX/VMS encounters an internal problem that hinders system performance without generating a system failure. By allowing you to examine the running system, SDA provides the means to search memory for the solution to the problem without disturbing the operating system. To examine the running system, invoke SDA as described in Section 3.1. SDA automatically sets the process context to your process. (See the description of the SET PROCESS command in Chapter 5 for a discussion of process context.) To analyze the system dump file, SDA maps the entire file. By contrast, when SDA examines a running system, it retrieves only the information necessary to process a given command. Because of the system's dynamic nature, use extreme caution when examining the running system. Although you can safely reference most locations, accessing certain portions of memory, such as I/O address space or nonresident process header pages that the current process does not own, causes the system to fail. 3.4 READING THE SYSTEM DUMP FILE When you invoke SDA and specify the name of a dump file (or press ) SDA gathers the data needed to create the displays from that dump file. Under certain conditions, the contents of general purpose or processor registers may not be saved in SYSDUMP.DMP. ~ 3-2 RUNNING SDA For example, during console restart bugchecks, such as HALT, the VAX-11 LSI-11 console program destroys the contents of all the general purpose registers except the program counter and the processor status longword. SDA indicates in the SHOW CRASH display that the registers wer~ wiped out by the console. Processor registers may also be lost if the error log buffers in memory are full. When the operating system writes data to SYSDUMP.DMP, it creates an error log entry in the error log buffer that stores the contents of the processor registers. If the buffers are full, the contents of the registers are lost because the operating system cannot create an error log entry for them. Again, SDA prints a message in the SHOW CRASH display indicating that an error log entry for the registers does not exist. Although the system dump file must be contiguous for the operating system to write information to it successfully, the file need not be contiguous for SDA to read it. Thus, if your copy of the system dump file is not contiguous, you will still be able to run SDA. 3.5 BUILDING THE SDA SYMBOL TABLE After locating and reading the system dump file, SDA next attempts to read the system symbol table file. This file, named SYS.STE, contains all the global symbols used by the operating system. SDA's ability to read global symbols makes it easier to analyze a dump because you can examine locations by symbol rather than by virtual address. SDA first looks for SYS.STE in the directory and device containing the system dump. If the file is not there, SDA looks for it in the system directory SYS$SYSTEM. Once SDA finds SYS.STE, it copies the file's contents to the SDA symbol table. If SDA cannot find the system symbol table file, it will not run. When SDA finishes building its symbol table, it prints out identifying itself and the immediate cause of the crash: a message VAX/VMS Shlstem dumP analszer Dump taken on 28-Feb-1979 01:22:58+43 MTXCNTNONZY Mutex count nonzero at s~stem service exit SDA> The SDA> prompt indicates that the utility is ready to accept SDA commands. You can now use SDA interactively, send selected information to a file, or print selected information on a line printer. Refer to the description of the SET OUTPUT command in Chapter 5 for directions on setting up output files. 3.6 INVOKING SDA IN THE SITE-SPECIFIC START-UP PROCEDURE Because an SDA listing is an important tool in determining the general nature of a system failure, it is a good idea to make sure that one is produced after every crash. The system manager can ensure the creation of an SDA listing by modifying the SYSTARTUP.COM file in [SYSMGR] to invoke SDA when the system is booted. 3-3 RUNNING SDA When called by the start-up procedure, SDA scans the system dump file for a flag that indicates whether SDA has processed the file. This flag is cleared each time the operating system writes to SYSDUMP.DMP, except in the case of an emergency shutdown (OPCCRASK.EXE). If the flag is clear, SDA executes the commands designated in the command procedure and sets the flag. If, however, SDA finds that the dump file flag is set, it exits without performing any of the specified commands. Thus, SDA will execute only if the system just failed. To allow you to run SDA from the site-specific start-up procedure, the system parameter PQL DPGFLQUOTA must equal the size of the system dump file plus 1000 pages-:- See the VAX/VMS Syste_~t:1_9_!!.~~-~-.r' s Guide for more information on system parameters. the The example below shows commands that might be added to site-specific start-up procedure to produce an SDA listing after each crash. $ $ $ Print dump listing if system just failed $ RUN SYS$SYSTEM:SDA SYS$SYSTEM:SYSDUMP.DMP COPY SYS$SYSTEM:SAVEDUMP.DMP SET OUTPUT LPAO:SYSDUMP.LIS SHOW CRASH SHOW STACK SHOW SUMMARY SHOW PROCESS/PCB/PHO/REG SHOW SYMBOL/ALL EXIT 3-4 Save dump file Create listing file Display crash information Show current stack List all active processes Display current process Print system symbol table CHAPTER 4 SDA COMMAND STRINGS The following sections describe the SDA command format and of expressions SDA uses within commands. 4.1 the types GENERAL FORMAT SDA uses a command string format similar to that of the DIGITAL Command Language (DCL) interpreter. You issue commands in the general format: command [parameter] [/qualifier] [!comment] command The name of an SDA command that tells the utility to perform a certain function. Commands can consist of one or more words, and can be abbreviated to the number of characters that make the command unique. For example, SH stands for SHOW and SE stands for SET. parameter The target of the command. For example, SHOW PROCESS GORK SDA to display the process GORK. tells When a parameter is a file specification, the current device and directory are represented as listed below. default Default Meaning SYS$DISK Device specified in the SET DEFAULT command most recent [default-dir] Directory specified in the recent SET DEFAULT command most See the VAX/VMS Command Language User's Guide for of the DCL command SET DEFAULT. a description /qualifier The name of a command qualifier that modifies the action of an SDA command. A qualifier is always preceded by a slash (/). Multiple qualifiers can follow a single parameter but must be delimited by slashes. Qualifiers can be abbreviated as long as they remain unique. 4-1 SDA COMMAND STRINGS !comment A comment. SDA ignores the exclamation point and all appearing after it on the same line. 4.2 characters EXPRESSIONS Certain SDA commands allow expressions create expressions, you can use: as command parameters. To • Radix operators • Unary operators • Binary operators • Special operators • 4.2.l Symbols Radix Operators Radix operators determine which base SDA uses to evaluate expressions. You can use one of three radix operators to specify the radix for a numeric value. Operator Radix Example Hexadecimal Octal Decimal "'XlO "'030 "'Dl6 The default radix is hexadecimal. SDA displays hexadecimal with leading zeros and decimal values with leading spaces. 4.2.2 values Unary Operators SDA recognizes the following unary operators: Operator Function + Assigns positive value Assigns negative value Uses contents of location Adds 80000000 to value Adds 7FFEOOOO to value @ G H The unary operator G corresponds the first virtual address in system space, while the unary operator H corresponds to a convenient base address in a process's control region. 4-2 SDA COMMAND STRINGS 4.2.3 Binary Operators SDA performs integer arithmetic on 32-bit indicating arithmetic operations are: Operator Function + Addition Subtraction Multiplication Division Arithmetic shift * I @ operands. The characters SDA carries out multiplication, division, and arithmetic shift before addition and subtraction. In division, SDA does not round integers, nor does it retain a remainder. 4.2.4 Special Operators SDA uses parentheses as special operators. Expressions enclosed in parentheses are evaluated first. In the case of nested parenthetical expressions, SDA evaluates from innermost to outermost. 4.2.5 Symbols Symbols are composed of l to 31 alphanumeric characters that include the special characters dollar sign ($) and underline(_). can SDA copies symbols into its symbol table from the SYS.STB file. can also be created by the DEFINE and READ commands. They In addition, SDA provides the following special symbols: Symbol Meaning Current location G 80000000 H 7FFEOOOO General purpose registers Argument Pointer Frame Pointer Kernel Mode Stack Pointer Executive Mode Stack Pointer Supervisor Mode Stack Pointer User Mode Stack Pointer Program Region Base Register Program Region Length Register Control Region Base Register Control Region Length Register Program Counter Processor status longword RO-Rll AP FP KSP ESP SSP USP POBR POLR Pl BR Pl LR PC PSL The register symbols correspond to the registers saved in the hardware context of the current process (see the description of the SET PROCESS command in Chapter 5). For example, SDA> EXAMINE @USP This command displays the first longword on the user mode stack. 4-3 CHAPTER 5 SDA COMMANDS Table 5-1 lists the SDA commands and gives a brief explanation of their functions. The underlined characters represent command abbreviations. Table 5-1 Summary of SDA Commands ~----------~-----------------·--··-,,·-------,.---- Command Function ~-----------+----------- -------------··-····- COPY Copies the dump file DEFINE Defines symbols and their values EVALUATE Performs computations EXAMINE Examines memory locations EXIT Exits from the display or from SDA FORMAT Formats data blocks HELP Prints help files READ Copies object module symbols REPEAT Repeats the last command SET OUTPUT Sets output to specification the SET PROCESS Sets the process context SHOW CRASH Displays crash information SHOW DEVICE Displays I/O data structures SHOW PAGE TABLE Displays the system page table SHOW PFN DATA Displays the PFN data base SHOW POOL Displays dynamic memory SHOW PROCESS Displays specific process information SHOW STACK Displays process/interrupt stacks SHOW SUMMARY Displays a summary of all processes SHOW SYMBOL Displays the symbol table process device to ! . -_ _ _ _ _ _ _ _ _ __..___ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - · · -- 5-1 or a file specific SDA COMMANDS COPY Each time the system fails, new information is written over the contents of SYSDUMP.DMP. The COPY command allows you to preserve the contents of SYSDUMP.DMP by copying it to another file. {The resulting copy does not have to be a contiguous file; see Section 3.4.) In most cases, the system manager will include the COPY command in the SYSTARTUP.COM command procedure so that each time the system fails, SDA will copy the system dump file to another file. Format COPY output-file-spec Defaults None None Parameters output-file-spec The device, directory, and file name to which SDA copies the system dump file. The default file specification is SYS$DISK: [default-dir]SYSDUMP.DMP. See the VAX/VMS CQ~ma~J! information about file Language __fL~~!.' ~ -·· __ G~-~~~for more specifications. Examples 1. SDA> COPY SYSSSYSTEM:SAVEDUMP The COPY command takes the SYSDUMP.DMP file and copies it to the system device and directory SYS$SYSTEM under the file name SAVEDUMP.DMP. 5-2 SDA COMMANDS DEFINE The DEFINE command assigns a value to a symbol. SDA evaluates the expression before assigning it to the symbol. If the symbol is already defined, the new value simply replaces the old one. Although both DEFINE and EVALUATE perform computations, DEFINE adds symbols used for temporary computations to the SDA symbol table, while EVALUATE simply performs the computation. Format DEFINE symbol l l Qualifiers Defaults None None = @~ expression Parameters symbol A 1- to 31-alphanumeric character symbol you designate to represent a value. See Section 4.2.5 for a discussion of valid SDA symbols. expression An expression to be defined by the symbol. You can separate expression from the symbol by a space or by an equal sign. Section 4.2 for a discussion of SDA expressions. the See Examples 1. SDA> DEFINE BEGIN = 80058EOO SDA> DEFINE END = 80058E60 SDA> EXAMINE BEGIN:END In this example, DEFINE delimits a range of address space. A subsequent EXAMINE command can then easily examine that section of memory locations. The symbols serve as reference points in memory. 2. SDA> DEFINE NEXT = @PC SDA> EXAMINE NEXT 00000454 : 1FDAF812 ••• + The temporary symbol NEXT defines the address contained in the program counter. SDA represents nonprinting characters by a period (.) and puts quotation marks around ASCII text. Refer to Section 4.2.5 for a discussion of SDA symbols. 3. SDA> DEFINE VEC SCHSGL_PCBVEC A symbol VEC has been assigned to a global symbol. Now you can access the memory location or value represented by the global symbol by specifying the symbol VEC. 5-3 SDA COMMANDS 4. SDA> DEFINE COUNT = 4 SDA> DEFINE RESULT = COUNT*COUNT SDA> EVALUATE RESULT Hex = 00000010 Decimal = 16 The value 4 is symbolically arithmetic expression. 5-4 defined and then used in an SDA COMMANDS EVALUATE The EVALUATE command computes the value of any SDA expression displays the results in hexadecimal and decimal format. and Format EVALUATE expression Qualifiers Defaults None None Parameters expression The expression to be evaluated. See description of valid SDA expressions. Section 4.2 for a hexadecimal and Examples 1. SDA> EVALUATE .... :J. Hex :::: FFFFFFFF Dc·:·~c :i. ma 1 EVALUATE prints the values decimal. 2. :::: .... :I. of negative 1 in SDA> DEF I NE TEN :::: A SDA> EVALUATE TEN He~·{ :::: OOOOOOOA Dc·~c i ma 1 ==== :I. 0 EVALUATE computes and displays the value of the symbol TEN. In this example, the character "A" could also be a symbol. When SDA encounters a quantity that can either be a symbol or a hexadecimal expression, SDA first treats the quantity as a symbol and looks for it in the symbol table. If SDA cannot locate the quantity in the symbol table, it evaluates the quantity as a hexadecimal expression. 3. SDA> EVALUATE ( <TEN*6>+<·-1/4) >+<2+4> Hex = 00000042 Decimal = 66 The EVALUATE command evaluates a complex expression and prints the result as hexadecimal and decimal values. See Sections 4.2.2 through 4.2.5 for a discussion of the expressions used in this example. 5-5 SDA COMMANDS EXAMINE The EXAMINE command displays the contents of a location locations in physical memory. or range of You can use location parameters to examine specific locations or you can use qualifiers to display entire process and system regions. There are two ways to examine a range of locations: 1) designate starting and ending locations separated by a colon, for example, 80000040:80000200; or 2) specify a location and a byte length, separated by a semicolon, for example, 80000400;16. If at any time you omit the location parameter from the EXAMINE command, SDA takes the location you last examined, increases it by 4 (one longword) and examines the resulting location. Examining Specific Locations A location can be represented by any valid SDA expression. When you use the EXAMINE command to look at a location, SDA displays the location, its symbolic representation (if possible), and its contents, in hexadecimal and ASCII formats. SDA initially sets the current location to -4 (decimal) in the program region (PO) of the process. To examine memory locations in other processes, you must use the SET PROCESS command. Examining Memory Regions You can dump an entire region of virtual memory by adding one or qualifiers to the EXAMINE command. more SDA formats the dump into columns of longwords, 4 for an 80-column device and 8 for a 132-column device, and prints the ASCII value of the longwords on the right side of the display. The final column contains the address of the first longword in each line. You read the dump display from right to left. If a series of virtual addresses does not exist in physical memory, SDA prints a message specifying the range of addresses that were not translated: Virtual locations locl : loc2 are not in Ph~sical memor~ In this message, locl and loc2 represent the starting and ending addresses of the range. This message also appears if you try to examine a single location that has not been mapped into physical memory. If a range of virtual locations contains only zeros, message: Zeros suppressed from locl to loc2 5-6 SDA prints the SDA COMMANDS Format EXAMINE l [location] [:locationll [;length] \ Qualifiers Defaults /PO None /Pl /SYSTEM /ALL Parameters location Expression that specifies the address in virtual memory at data is stored. which length Expression that display. specifies the number of bytes you want to Qualifiers /PO Prints the entire program region for a given process. The default for this qualifier is the PO region of the current process; you must use the SET PROCESS command to examine other processes' PO regions. /Pl The Prints the entire control region for a given process. default for this qualifier is the Pl region of the current process; use the SET PROCESS command to examine different Pl regions. /SYSTEM Prints portions of the writeable system region. /ALL Prints both the entire program and control regions for process, and portions of the writeable system region. a given Examples 1. SDA> EXAMINE 80000200 SYS$SETEF : 8FBC003C ........ ... . The system virtual address is defined b¥ a global symbol. The information stored at this address is given in hexadecimal and in ASCII formats. SDA represents nonprinting characters by a period (.) and puts quotation marks (" ") around ASCII text. 5-7 SDA COMMANDS 2. SDA> EXAMINE PC PC : 80008E22 SI:tA> EXAMINE @F'C EXE$FWNDWN+o~·59 •• • • • : 6l.l'72065 •e wa• SDA examines the program counter and program counter. 3. th~ address contained in the SDA> EXAMINE 80000008;11 SDA displays a range of bytes starting at address 80000008 and ending at 80000027. SDA displays byte ranges in units of lo {decimal) bytes. In this case, SDA displays two lines of lo bytes even though a value of 17 {11 hexadecimal) was given. 4. SDA> EXAMINE/SYSTEM Figure 5-1 shows a command. portion of 5-8 the display produced by this ~AX/VHS Svatem 21-~AV•1q7q 2.0 •• Svatem Dump Ana1vais memorv 0P~0P000 P0~0~?03 8P05f8eP 80PP0848 4t4244P3 02313146 8P0~3qA8 r~P0~000 ~0~1~0r1 ~~e~e~~q ~00~0PP~ 8~0b0408 8~0bVSC3 000~~~00 ~~~C?~P0 ~~P00P0~ ~~~"0~52 0~000000 ~2P~0501 ~~00181~ 8~n~3B8C P0~~20~P ~P0~vPVP p~n0pp~p ~~prppp~ 4tS~gF~3 ~P0P~P0P ~pp~~VP~ 80~~2Q~4 P~P~0P52 P0~~0?~3 ~0?0~012 ~PPPP~PA 7FFEEAF4 ~00P00P8 8~00087C 8p00pq48 ~0060~34 0~~0P011 0~~~4328 000~0002 80001~46 00e213q3 • I •• +C ••••• I ~000001A 80~6q0q~ ••••• ' •••••••••••••••••• H •• I • • • • ~0~1}0~1 ~JP~0~P~ 4556Uq52 44424408 ~PP000~0 0~000000 00000000 8P017C00 8006~868 0a1000cc 80003qA8 1C4040~8 80062qAP 80068EB0 00000~00 80000848 P0~0~000 03150P2A 80078230 000~0000 800008BC 7-CPC~rPP PP3~~8~8 nb00P000 8P11402C ~~00e0co ~P~0~1~r 0~0~00~0 0PEE~FAA 1PPP0P0P 0P0532BE r~PP~~~p 0P0PP00P 0PP?P0P0 0n030p0r e0000000 ~gPb?P34 8P0PnQ7C 8Pa00A88 00000000 ~0000000 aFsaa1s2 455P4FP8 P0P3P0Pn P~0~PP0P 00P0PP0P 02~~PV1Q ~P0PP?Pn sn~P2420 081~PeAC 8PP03qAp a000~q8( ~8PP~2A~ 0P842042 ~Cr4~V07 p~~~~~0e 0~P0P00? 00PP~00e ~~0~r~2~ 0~0~P~V0 000~rP~b rPPQ9477 ~P?PPF0~ ~02r~r~p P0~V~P~r 0~1a~00r 0~0P~0~P P?0~FFFF 80~7A030 000PPP00 Are00qac VP250001 0PP27BBA 8~06B6C0 rP~~?00~ ~~~~~~!~ 8~er2Apq v~000rbC EF1b3FFP ?P?PP000 ppprp~r,1 rPPS~vaa 0P~P0~~0 ~0P~r0PP 8P05EH2P 800P~PfC 032F1316 0P026h!7 pppqqqFq 80003qA8 800P~A2~ pp~pr~0~ 800178~0 ~0~0pqa8 0PP0P~~0 8007~7PP 8P06F160 0aer.p?Ae A00e8420 8~~eJbEE ~rr0111F 8~001606 ~PP00e~r r00rrr0r 80r01cC0 8~0PPAbC 0PP00CAB 800ieq7r 0rr010r0 02P9PPIC 0PPP~P?P ~r0~er~r ~rr0rAbC 000P0C~3 EF163FBB 4t5844P3 03313146 p~~~2A4~ rr"6PV34 A~~~PABC 8~r0eBEU 8~P~~AAC 80e00A8C BP~~3qA5 ~r~prer~ ~~er~rs2 a5564q52 ua584a~s Pe~00000 0P0~0n0e 0P00e000 U1 I '° 1413711& 0 88 ~eQion 8000~A2~ ~~~~~e2~ FFF~pp~~ 80~P2C6D ~~0P0~P? 80~02AA7 ~810~128 800~3qAe 8P00~AFC ?eaor11A ~2~rer~1 \C?Daera 8~?62CAr ~0~~PAA0 0~PA0~00 ~P00~A88 ~0~~kP?A r0~r~022 ~004181~ ?e~~~P0P 03140000 ~0~78820 000~0001 80~00AFC 000~~~vr ~~~~~Pr~ ~0r~~~~p ~e~~er~0 r0e~P8~8 ~~rP~PAC 8PAAD418 ~P0PP0CC ~7PP0PPP 0P~PP00~ ?~~1P0PF 0~P~PPP0 f5ESESES FSF5ESE5 E5F5ESES E5F5F5f5 ~0?P127C PA06~A34 8P00?Cqp ~~~H0P52 45Sbaq52 444240?8 ,0P0PP14 eP~?V0AP 00000000 081S~P?1 ~~000000 8000pCQ0 E5ESESES E5E5E5E5 E5E5E5E5 E5ESE5E5 8P000D78 0?P001EE 00e0e000 ESESESE5 E5E5ESES F.5ESESES ESE5ESE5 0P~~P1E5 8P~Pieca 8,•r~eB&U E5ESE5t5 E5ESF5f5 E5E5t5E5 F5ESE5E5 E5E5E5E5 E5~5ESE5 fSE5E5ES F5E5E5F5 ~5E5F5E5 f5E5F5F5 f5ESE5E5 F5ESE5E5 F5E5E5E5 E5E5E5E5 E5E5F.~E5 E5E5E5E5 000~00~0 E5E5t5f5 f5f5F5ES f5E5E5E5 F5E5E5F5 414?40?3 8000~c1c 8P~~eEFC 800~pC5C ~00e~0P? r~00013~ 00?1~P~1 ~000?0~~ ~~0~~A00 ~0P~PP00 eAP~FF.FF ~lP~epA~ P~010~1~ 000?~0F~ 0810J074 8~000CQ0 ~P0~~V0~ 0AP~PP~P P~P~PPPl R??e~(qp PH~?rA~P 800~PDP4 ~r~0~0er A000eBE4 Rrr00fFC 0r010004 8007PD?? ~~~~P?A1 A00rrCD~ R0?rrrD0 0000000~ 00B~r~~c 0AP000r~ 00000000 PA00~6FA Ae0r0000 FF~FFFFF v.~00r.01a 00PP00A~ 0P~A~~0A 08100074 ~t0~0~Ap ~c1s~0v1 0~00~00~ ~er~2P5r. ~000000r ~001r11P 00~~0000 ~~080002 ~~r7742P 000P00~2 8P0PPDAC 8000r.E20 ~00~0?0? PeC00r00 00000000 444C4Er8 ~nr.00200 n,0P?0er0 ~~~00err 414r4E03 ~00~rz00 00v0000r. 0a1~e01a 0?r.00r00 e0000~00 000~e0~0 P0V000AA 0~0~0P0~ 8~00PD78 80000EFC 3008r0e1 00~0~0n0 R~P0000~ 8~P~0DEC 8~~~~DEC 0~0~v~rr 000~00PP 000~~~~~ 0000r0~0 ~0P~000P 00V0~P~0 00P000~P P0~00?0e 0P0~P~0Q 800~tEq8 544S4E03 0054454E 8~001648 P00000C8 ~PP000ee 00005245 0~010001 eee00rr0 000~0000 8Pe0efQA ~0000P0~ 00000000 0c1c2~~0 000e.000e 0P~0000r 0~0~0000 0~00001r 000000~0 V.00~00C0 A0P~0000 00000~00 8000~EZ~ a0~00EFc 000~0000 0R10?~7U 0~0n0000 0~0P0P0P ~00000~0 8P000c1c ~e~rPBEU ~000~0P0 @e000csc 0000r0e0 000d~000 ?000?000 FFPFFFFF 0000001u 0000000~ 0100p0A0 PCtS0~e1 00000000 A0A10110 00~00000 00080~06 80?00004 80000004 ~0000000 ~~~00RE4 8~0~0EFC 00P10004 80000044 A00e0n4u 00e00000 0?0000~0 0~0PP434 0000000A 00000000 80001608 00000034 0000~000 00000052 45S6aqs2 00P1P0~1 0pn00000 00000000 V000~000 00~a00A0 0C1s~001 ~0000000 0000~010 r0r~0000 00060034 80000E58 80~e3260 S&aq5244 S4454E0q 00000000 0000p000 000e0000 08100080 80r&AC30 000~0000 0~000000 000~0000 ~000~001 000P0000 00000000 00000000 00000000 00000000 00000000 Figure 5-1 ••• I •••••••• I •• I. I •• F 101 H,,,1 1 • • 4., 1 1 1 0 0 F11 00 0BA •••••••••••••OBORIVER 1 0 0 0 1 0 1 0 q 01 ,q,,,,,,k,,,.1 •••••••••••••• ••• H,,,,,,,,, 1 , 1 ) , , , • , . . , , , 11 ,,l, 1 , 1 , •••••••• 0 ••• * •••••••••••••••• f,, 0001 •••• , •••••• ,.,> •••••• , •••••••••• . 2................... . ........ . ................................ ,,,,,,,,,,,,1,,,4,,,d),,,,,,,QPA •••••••••••••O?ERATQR 1 1 0 0 0 0 1 0 q 00 ,Q,,,,,.-s •••••••••••••••••• c ••• H • , , • • , , , , •, • , , , , , , 1 B et et 1 1 t I t , , •,, •,., • 0 t t t e t t t t I t t t e t f Wt t t ( I t t e e I I I I I 8 8 'I I I I x I I et 1 I I t I,.. I t I I I I I I I I 91 t I ( I I I I I I I I t t , I t I I I I I' t I I I .... ,.......................... . I I t I I I I I t I I I I I IQ I I I It I I I I I 8 I? I I .?, ••••• 1 ••••••••••••••••••• 1••• ••••••••••••••••"•••'*•1F1t,,DXA •••••••••••••OXDRIVER, 011 , 01 ,q, 0 • q •• c •••• * •••••• ""'...... • •• c••• ........ ............... " ...... . • • • • • • • • • • • • • , • • • • • • ' • • • • • M •• I •• ································ ................................ •••••••••••• -•••••• ,,d,.,d ••• •••• I It e It It I I I e I I I I I t t t I It I I I It I It I ,,,,:w:,,,,,,,4,,,t,,,, •• ,.~BA,,,, 0 1 1 1 0 1 0 0 0 MBDRIVER 0 6,, 001 6 1 • 1 0 1 0 • ............ ............... ' .. .. .............................. ............................ ... ············'··················· .... '*............ ....... ...... . t e 1 t t t t t t t e I I e t I I I I I I I I I I I I I I I I I ' \ •••••••••••••••••••••••• t • •••••• e e I et I I I I I 8 I I e I I t I e I I I I I I I t e •I I I ltfltlllllllttt••ea11tll911tlt1S • • '• • • • • • '• • • ' ' • P+ •' • ' • • • •' • • • ' ' t It 0 t It 0 t t 1 et t t t t t t I It t t It t It I • u,,, 11 , 11 , , 1 ,NLA,.,,,, 1 , 1 1,.,NLD RIVER,,,, 1 ,,,,,,.,,,t, 1 1 , , , , , , , , I It I It t I I I I t I t e I 1C I e t • t I I I t I I t I I I ................................ I I I I I I I I It e It I I It et I I I It I I I t I It I ~2 •• x ••• a ••• H•• ,NET,,NET •••••••• 01100 NETORIVER 0 1 0 0 1 1 1 1 • 1 1 1 1 1 , 011 1 1 I I I I• I I f I I I I I I I I It I ......... ..................... . 1 t t t t tat 0 I It t t t • t t t t It I t I e I It I I It I I It t It I ' t t t t I I I I I I I I e t e I t '1 I t e I I I I I I I I I I I System Region Memory 80000800 80000820 80000840 80000800 80000880 800008&0 800008C0 800008E0 80000q00 80000q20 80000q40 80000qo0 80000qe0 80000qA0 80000qc0 8000iitqE0 800ei0A00 80000A20 80000A41i!! 80000A60 8121000•80 811100000 80000AC0 80000AE0 8l'!000B00 80000820 80000640 80000B60 8111000080 80000BA0 80000BC0 B0000BE0 8000111C00 8111000c20 80000C40 80000C60 80000C80 80000CA0 80000cc0 80000CE0 80000000 80000020 80000040 800000&0 80000080 8011100040 800111eJOC0 80000DE0 8Ql000E00 80000E20 8011100E411l 80000!60 80000E80 80000E40 80000EC0 C/) 0 > (") 0 3 3 > z 0 C/) SDA COMMANDS EXIT The EXIT command performs two functions: it discontinues SDA displays and exits from the utility. During interactive sessions, if a display has more than one page and is being shown on a video display terminal such as a VTlOO, SDA will issue the following message each time it reaches the bottom of a page: Press RETURN for more~ If you want to discontinue the current display, type EXIT at the prompt. (On hard copy terminals, SDA does not prompt at the bottom of each page.) If you do not type EXIT at the screen overflow prompt and simply execute another command, SDA will accept the command as if you had exited from the display. To stop SDA, type EXIT in response to the SDA prompt. Format EXIT Qualifiers Defaults None None Parameters None 5-10 SDA COMMANDS FORMAT The FORMAT command displays a formatted list specific block. It attempts to: of the contents • Characterize a range of locations as a block • Assign a symbol to each item of data within the block of a Most VAX/VMS blocks contain a byte that indicates the block type. This byte is stored at offset 10 (decimal) from the first address of the block. The FORMAT command examines the byte stored at this offset as a block type. If the byte represents a valid block type, SDA tries to find its corresponding symbols. If the byte does not represent a valid block type, SDA issues the message: invalid block t~Pe in sPecified block Not every block contains a block type byte at offset 10. If this byte is absent, you must designate a block type at command level by using the qualifier /TYPE in order to format the block. The display produced by FORMAT shows, from left to right, the virtual address of each item within the block, its symbolic name, and its hexadecimal representation. Format FORMAT location Qualifiers Defaults /TYPE= None Parameters location The starting location of the block you want location can be any valid SDA expression. to format. The Qualifiers /TYPE=block-type The symbolic prefix that corresponds to the type of block structure you want to format. SDA finds all symbols containing the specified prefix in the form: block-type$field-type_field-name The ~ield L W B Q T C types accepted by SDA are: longword word byte quadword counted ASCII string (0 through 31 characters) constant 5-11 SDA COMMANDS You can define your own block types and use the READ command to include them in the SDA symbol table. Thus, a valid block type is one that SDA can find in the symbol table. If SDA cannot find the symbols associated with the block type you have ~ndicated, it will issue the message: No "block-type" s~mbols found to format this block Examples 1. SDA> FORMAT @SCH$GL_CURPCB aoo6<1~.=;~;o PCB!l>L .... SC~FI... BOOO~!F4B 800695~)4 PCB$1....... SC~BI... PCB$W .... SIZE PCB!~B .... TYPE 80002F4B OO'?C B0069~5~:;a B006<.»::5~iA oc SDA takes the address pointed to by the the block type, and formats the block. 2. global symbol, obtains $ HUN SYS$SYSTEM: SDA SDA> 1:~EAD GLOBALS. STB SDA> FOl=<MAT (~I OC!~GL ... DEVL.. I ST DDB$L .... I... INK DDB$1... .... UCB DDB$W .... S I ZE DDB!l>B .... TYPE BOOOOf:MB BOOOOB4C B00008::=iO nooooa::52 B0000</4B flOOOOB'lC ()() :54 Of.> ()() 800008~;;] DDB~>l... .... DDT DDB$l.. .... ACF'D DDB!I> T .... NAME B00008::=;4 B00008:58 800008~iC BOOf.,040B 02~5:1.:5:1.46 II DBA u () () () () () () () () 00000860 00000064 00000868 DDB$ T .... n1:~vNAME SDA> FOFmAT fd. 8000086C ()()()()()()()() ()()()()0000 H DBDI:~ I VE!=~ ff SDA> r~EPEAT This example illustrates the use of SDA commands to format a list of blocks. The steps followed in the example are listed below: • Invoke SDA. • Use the READ command to read the DOB symbol definitions from GLOBALS.STB into the SDA symbol table. For a further discussion of object module files, see the description of the READ command. • Use the FORMAT command to format the location pointed to by the global symbol TOC$GL DEVLIST. When SDA finishes formatting this block, it sets the current location to the first byte of the block. 5-12 SDA COMMANDS 3. • Use the FORMAT command again to format the next block in the device list. Most blocks contain a pointer to the next block in a linked list. This pointer is usually the first longword in the block. In this step, the FORMAT command causes SDA to format the contents of the current location (the first longword of the block). • Repeat the FORMAT command to format the next entry in the list. In this way, you can step through the entire device list, formatting each block. SDA> READ SYMDEF SDA> FORMAT G10ACOO/TYPE=PHD 80 :I. OACOO 8010AC04 80 :I. OACOB BO :I. OACOA 80 :I. OACOC BO :I. OACOE BO:l.OAC:l.O 80:1.0r~C:l.2 BO :I. OAC :I. 4 00:1.0AC:l.B BO :I. OAC :l.1~ no :1. or.~c :1. c BO :I. OAC20 B010AC22 BO:l.OAC24 BO :I. OAC26 BO :I. OAC:?B BO :I. OAC2C BO :I. OAC:-30 BO:l.OAC34 no :I. OAC3B BO :I. OAC3<r 00:1.0AC::~l no :I. OAC3C 80 :I. OAC40 n 0 :I. 0 AC 4 2 BO :I. OAC44 BO :I. OAC4t.) BO :I. OAC4B BOlOAC4A BO:I. OAC4C BO :L OAC~:50 80 :I. OAc:=.)4 80 l oAc:=m PHD~>C~ .... PI:~ I VMSI'\ 00:3osnos 00000000 PHD~t>W .... WSI... I ST 0046 042[1 PHD~~W .... WSAUTH PHD~~W .... WSl...OCI'\ ()()~::;:I. 00~:5 :I. PHD~l>W .... WSDYN PHD~t>W .... WSNEXT PHD$W .... WSl...r~~:;T PH Dii> 1....... 1:( E FE F( FI... T PHD~~W .... V.JSC~UOTA PHD~~W .... DFW~:>CNT PHD~t>l... .... PAGF I 1... PHD~t>B .... PAGF I 1... PH:O~~W .... P~:>T PHD~l>l... .... Pf>TBA~:>OFF OOC9 OODB 00000000 04211 OODB 0:·3 ()()() 0 ()() 0600 ()()()() PHD~t>W .... PSTl... AST PH D~t> t,..J .... P ~:; T F 1:;: EE FFDfl ()()()() PHD~t>l... .... FF~EPOlJA PH r:i ~I> I... .... FF~ E PT EC NT PHD~l>l... .... Fl:~EP :I. l.,JA PHD~>l... .... PGFl...CNT PHD~l>B .... DFPFC PHD~l>B .... PGTBPFC PHD~t>W .... Fl...r.~GS PHD$1... .... CPUT IM PHD~>W .... C~l.JANT PHD!l>W .... Pl:~Cl...M PHD~t>W .... ASTl...M PHD$W .... PHV INDEX PHD!l>W .... BAK PHD~~W .... WSL.X PHD$W .... PSTBASMAX PHDil>L .... PAGEFLTS PHD$1... .... D I OCNT PHDi~L. .... B I DCNT PHD$1... .... CPUI... IM 000Ar~200 0000 :I. 9"7B /FFD9000 002/0B2D ?F 02 0006 000224/:1. FFF/ 0008 00:1.0 OOOF o~:i26 o~=rno 00064~'.) :I. c 0 0 0 0 ~.=; 6 ;·5 :I. 00009C2B 0000000() This example shows the use of the qualifier /TYPE=. The READ command is issued to move PHD symbols to SDA's symbol table (see the description of the READ command for details on command syntax). Then, the FORMAT command can identify the process header block that starts at location 8010ACOO. 5-13 SDA COMMANDS HELP The HELP command lists information about the SDA utility, its operation, and its command format. HELP has three command parameters. If you do not specify a parameter, HELP gives a brief description of SDA operations and lists SDA commands. Format HELP [command-name]! [EXPRESSION] [OPERATION] ! Qualifiers --......... Defaults None None --~.-- ........ Parameters command-name Specifies the SDA command for which you need information. EXPRESSION Prints a description of SDA expressions. OPERATION Describes how to operate SDA at your site-specific start-up procedure. 5-14 terminal and through the SDA COMMANDS READ The READ command lets you extract global symbols from any object module file and insert the definitions automatically into SDA's symbol table. The object module file can be the output of a compiler or assembler or the output of the linker qualifier /SYMBOL_TABLE. It is important to note that the READ command recognizes global symbols but ignores local symbols; hence, only global symbols are copied into the SDA symbol table. The program below shows some sample definitions of global symbols • • TITLE GLOBALS, GLOBAL SYMBOLS FOR SYSTEM DUMP ANALYZER Note: the macros in this program must use the argument GLOBAL. This argument defines them as globals so that they will be automatically carried into the object file. Without the GLOBAL argument, the macros would be local and SDA would not be able to read them. $PHDDEF GLOBAL $DDBDEF GLOBAL $UCBDEF GLOBAL $VCBDEF GLOBAL $ACBDEF GLOBAL $IRPDEF GLOBAL PROCESS HEADER DEFINITIONS DEVICE DATA BLOCK UNIT CONTROL BLOCK VOLUME CONTROL BLOCK AST CONTROL BLOCK I/O REQUEST PACKET (more macros can be inserted here) .END Use the following DCL command to generate an object module file with the file type STB that contains the global symbols defined in the sample program GLOBALS.MAR, as shown above: $ MACRO GLOBALS+SYS$LIBRARY:LIB/LIBRARY /OBJECT=GLCBALS.STB Now you can invoke SDA and use the READ command to copy into the SDA symbol table, as shown in Example 1 below. the symbols Format READ file-spec Qualifiers Defaults None None Parameters file-spec The device, directory, and file name of the file whose symbols you want copied to SDA. The default file specification for this parameter is SYS$DISK: [default-dir]filename.STB. 5-15 SDA COMMANDS Examples 1. SDA> READ GLOBALS SDA searches for the file specification current device and directory. s-10 GLOBALS.STB in the SDA COMMANDS REPEAT The REPEAT command repeats execution of the last command issued. This command is primarily used to step through a linked list of data structures or to examine a sequence of memory locations. On terminal devices, you can use the escape key ( ~:§:Cl ) to perform the same function as the REPEAT command; ®Q provides a faster means of executing the command. Format REPEAT Qualifiers Defaults None None Parameters None Examples 1. SDA> FORMAT @SCH$(3Q_LEFWQ 800631EO 800631E4 800631E8 800631EA 800631EB 80062[18() 8()0()30[1() PCE1$L-~mFL. PCB$L .... SC~BI... F'CB$W .... SIZE oc F'CB$B.... TYF'E 007C PCB$B .... Pl:~I :1.8 PCB~l>l... .... SC:~FL.. PCB$1....... SC:~BI... PCB~>W .... S I ZE PCB~t>B .... TYPE PCB~>B .... PF~ I 80062FBO B006:5 :I. EO 007C 80062FBO 80062FEi4 PCB~l>l... .... S(~FI... aooo:·5ono PCB~l>l... .... S(~BI... noo6::.~riao B0062FBB B0062FBA PCB~l>~J .... S I :Z.E 8001.>2FBB PCB~t>B .... PI:~ I SDA> FOF~MAT @. 800621:18() 80062Df.M 80062[188 80062DBA 80062I:tf.lB oc SDA> REPEAT oc PCB~t>B .... TYPE 007C In this example, the FORMAT command is used to examine the local event flag wait queue. The first process control block (PCB) in the wait queue is formatted, then the rest of the queue can be examined by using REPEAT (or by pressing ~ )• 5-17 SDA COMMANDS SET OUTPUT The SET OUTPUT command writes the output of SDA commands to a file or device of your choice. If you set output to a file, SDA creates a table of contents that identifies the displays you selected. When you set SDA output to a file or device, SDA stops displaying commands at your terminal. If you finish directing SDA commands to an output file and wish to return to interactive display, you can issue another SET OUTPUT command using your terminal device as the file specification. You can also exit from SDA and then recall the utility. Format SET OUTPUT file-spec Qualifiers Defaults None None Parameters file-spec The device, directory, and file to which written. The default file SYS$DISK: [default-dir]SYSDUMP.LIS. SDA output will specification be is Examples 1. SDA> SET OUTPUT BROKEN SDA> SHOW CRASH SDA> SHOW PROCESS/ALL ~:>DA> SHOW SUMMARY SDA> EXIT SDA stores the displays produced by the commands following SET OUTPUT on the current device and directory in a file called BROKEN. LIS. 5-18 SDA COMMANDS SET PROCESS The SET PROCESS command moves process context to a specific process. This command allows you to examine the data structures associated with any given process. When you invoke SDA and specify a dump file, process context, that is, the virtual memory you will see upon executing SDA commands, defaults to the process that was executing when the system failed. If you are examining the running system, process context defaults to your process. When you issue a SET PROCESS command, process context changes to the process you specify. Many of the SDA commands, for example, EXAMINE, SHOW PROCESS and SHOW STACK, operate on tRe current process, that is, the context of the process specified in the last SET PROCESS command. SET PROCESS locates the information needed for the particular but produces no output. You must specify one of the three SET PROCESS parameters or generate a syntax error. process SDA will Format SET PROCESS J;~:~EX=nnl l/SYSTEM Qualifiers Defaults None None Parameters name A 1 to 31 character alphanumeric string assigned to the process. The dollar sign ($) and underline ( ) characters can be included in the string. /INDEX=nn The index to the software process control block (PCB). The index number (nn) is composed of the last four hexadecimal digits of the process identification (PID). /SYSTEM The system process control block. The system PCB and process header (PHD) are dummy structures that are located in system space and contain the system working set, global section table, global page table, and other system-wide data. 5-19 SDA COMMANDS Examples 1. SDA> SET PROCESS/ I NDEX=4:3 SDA> EXAMINE/f:•o SDA locates the process by means of the index number and displays the contents of its program region. 2• SDA> SET PROCESS SM I TH SDA> SHOW STACK Setting the process to SMITH causes the SHOW STACK command to default to SMITH rather than to the currently executing process. 5-20 SDA COMMANDS SHOW CRASH The SHOW CRASH command displays fundamental information concerning the operating system and the currently executing process. The display can be divided into three sections: • Operating system and process information • General and special register contents • Processor and hardware maintenance register contents Operating System and Process Information The first section of SHOW CRASH lists: • Date and time of the crash • Name and version number of the operating system • Name of the currently executing process • File specification of the image executing in context (left blank if no image is executing) • Interrupt Priority Level (in decimal) of the processor the process General and Special Register Contents The second section of the SHOW CRASH display lists the contents of the general purpose and special registers. • RO through Rll • Argument Pointer (AP) • Frame Pointer (FP) • Stack Pointer (SP) • Program Counter (PC) • Processor Status Longword (PSL) Process and Hardware Maintenance Register Contents The third section of the SHOW CRASH display lists the contents of three sets of registers. The first set includes registers that store the vital statistics of the currently executing process, as well as registers that contain information used by the operating system. The second set of registers are the stack pointers for the processor access modes plus the interrupt stack. The third set of registers are used in hardware maintenance. The process and system registers are: POBR POLR PlBR PlLR SBR SLR PCBB SCBB ASTLVL SISR Program Region Base Register Program Region Length Register Control Region Base Register Control Region Length Register System Region Base Register System Region Length Register Process Control Block Base Register System Control Block Base Register Asynchronous System Trap Level Software Interrupt Summary Register 5-21 SDA COMMANDS The stack pointers are: ISP KSP ESP SSP USP Interrupt Stack Pointer Kernel Mode Stack Pointer Executive Mode Stack Pointer Supervisor Mode Stack Pointer User Mode Stack Pointer The hardware maintenance registers are: recs !CR TOOR ACCS SB IFS SBISC SB I MT SBIER SB I TA SBIS Interval Clock Control/Status Register Interval Count Register Time-of-Day Register Accelerator Control and Status Register SB! Fault/Status Register SB! Silo Comparator Register SB! Maintenance Register SB! Error Register SBI Timeout Address Register SBI Silo Register Format SHOW CRASH Qualifiers Defaults None None ---------- Parameters None Examples 1. SDA> SHOW CRASH Figure 5-2 shows the display produced by this command. 5-22 SDA COMMANDS VAX/VMS 2.0 -- System Dump Analysis System crash information 21-MAY-1979 14:42:49.46 Time of system crash: 21-MAY-1979 10:57:48.99 Version of system: VAX/VMS VERSION 1.50 Reason for BUGCHECK exception: PGFIPLHI, Pagefault with IPL too high Process currently executing: GALCHER Current image file name: 082: [F4V2.TOOL]BLISS32.EXE;43 Current IPL: 7 (decimal) General registers: RO R4 R8 AP PSL 0019CCAB 8006BACO 7FFDB998 7FFEEBC4 00070000 Rl R5 R9 FP 00000000 7FFDFEOO 00019108 7f'FEEB7C R2 Rfi RlO SP 000081100 OOlFFFBC 0000255C 7FFEEB38 R3 R7 Rll PC 8010CSOC 00000200 7FFEfiC10 80006074 Processor registers: POBR POLR Pl BR PlLR SBR SLR 8010C400 000003EE 7F914400 001FFEC9 OOlFCOOO 00001000 ISP KSP ESP SSP USP 8007C200 7FFEEB38 7FFEFOOO 7FFEF828 7FFDB65C PCBB SCBB ASTLVL SISR recs ICR TODR Figure 5-2 0012C678 001D6AOO 00000004 00180000 800000Cl FFFFF88F 585540BA ACCS SB IFS SB I SC SBIMT SElI ER SB I TA SBIS 00008001 00040000 00000000 00200200 00008002 00075CD8 00000000 System Crash Information 5-23 SDA COMMANDS SHOW DEVICE The SHOW DEVICE command displays a structures associated with a device. divided into three sections: • Device data block lists • Controller data structures • Device unit data structures formatted list of all data The display for each device is For a detailed explanation of I/O data structures displayed by SDA, consult Appendix A of the VAX/VMS Guide to ~-E.!_ting __ ~ __I?~vi__ce Driver. Device Data Block (DOB) List The DDB list shows information common to all devices associated with a single controller. It shows: • Address of the controller status register (CSR) • Name of the controller • Name of the ancillary control process (ACP) • Name of the I/O driver • Address of the driver prologue table (DPT) • Length of the I/O driver and DPT Controller Data Structures SDA displays the contents of the associated with each controller: • following four data structures Device Data Block (DDB) points to the driver dispatch table, the channel request block, and the first unit control block connected to the controller Request Block (CRB) • Channel arbitrate requests between stores information used to devices attached to a single controller • Interrupt Dispatch Block (IDB) -- contains controller status information used to dispatch interrupts to the proper driver • Driver Dispatch Table (DDT) -- points to routines that process the I/O request Device Unit Data Structures The final section of the SHOW DEVICE display itemizes the contents of the Unit Control Block (UCB) for each device. If the device is handling file-structured requests, the display lists the Volume Control Block (VCB) and the ACP queue as well. 5-24 SDA COMMANDS Unit Control Block (UCB) - SDA organizes the data stored in the UCB into a list of items. Heading the list are the address of next UCB, the status of the device, and the longword whose bits express various characteristics of the device. Following the heading, SDA lists pointers to other block types: I/O Request Packet (IRP) address Channel Request Block (CRB) address Volume Control Block (VCB) address The next six items on the list concern the fork block for driver: the device Fork Queue Forward Link (FQFL) Fork Queue Backward Link (FQBL) Fork Interrupt Priority Level (IPL) Fork PC, R3, and R4 The UCB contains device status infor~ation: Device class Device type Device buffer size (DEVBUFSIZ) Device dependent data (DEVDEPEND) longword Device status (DEVSTS) longword Device IPL Reference count Operations count The final items detailed concern mailboxes from the I/O request packet: and information obtained Associated Mail Box (AMB) address System Virtual Page Number (SVPN) System Virtual Address of Page Table Entry (SVAPTE) Byte Off set (BOFF) Byte Count (BCNT) Error Retry Count (ERTCNT) Error Retry Maximum (ERTMAX) Error Count (ERRCNT) Owner UIC Process Identification (PID) SDA also formats all the I/O request packets queued to the UCB. The packet currently being processed is flagged by an asterisk (*). Information contained in each I/O request packet is listed in the following order across the page: Channel number (CHAN) Function value (FUNC) Window Control Block (WCB) Event flag number (EFN) Asynchronous system trap (AST) I/O status block (IOSB) Status flags (STATUS) If the request queue is empty, SDA issues the message: *** I/O reauest aueue is emPtw *** 5-25 SDA COMMANDS Volume Control Block and ACP Queue - If a volume was mounted on the device SDA reads and displays the contents of the volume control block (VCB) and the ancillary control process queue block (AQB). The VCR identifies the volume and contains counts and quotas concerning files on that volume. The ACP queue block contains information about the ancillary control process (ACP) associated with the volume. SDA reads the AQB and lists its contents in readable format. If the request queue is empty, SDA prints the message: *** ACP reGuest Gueue is empt~ *** Format SHOW DEVICE [device-name] Qualifiers Defaults None None Parameters device-name The name of a device whose data structures you want The device name takes the form: to display. devcu where dev = 2-alphabetic character device code c I-alphabetic character controller designator u = 1- or 2-digit device unit number You can display information about several devices by specifying a device code or a device code and controller. For example, SHOW DEVICE D lists all devices with device code Dn, where n corresponds to the second letter of the device code. SHOW DEVICE DBA lists all devices with device code DB and controller A. To display a single unit, specify the entire device name: SHOW DEVICE DBAl displays the device associated with device name DBAl. If you do not specify a device name, SDA lists the data structures of every device on the system. Examples 1• S DA> SHOW ItEV I CE [I Figure 5-3 is a sample Device Data Block list of all the devices attached to the system whose device codes start with D. This is an example of the first section of the display produced by SHOW DEVICE. 5-26 SDA COMMANDS VAX/VMS 2.0 -- System Dump Analysis I/O data structures 18-DEC-1979 11:38:52.7ti DOB list Address 80000848 8009A4CO 8009ADOO 8009C560 8009Cfi20 Controller ACP Driver DPT DPT size DRA 1"11ACP FllACP FllACP FllACP FllACP DRDRIVER DMDRIVER DYDRIVER DBDRIVER DBDRIVER 80080410 800821EO 80082ECO 80087640 800871140 0814 08FO 011FO OliFO OfiFO OMA DYA OBA DBB Figure 5-3 2. Device Data Block List for Dn Devices SDA> SHOW DEVICE DBA Figure 5-4 shows information on the data structures associated with DB device controller A. This is an example of the second section of the display produced by SHOW DEVICE. VAX/VMS 2.0 -- System Dump Analysis I/O data structures ln-AUG-1979 lfi:34:54.81 Controller: OBA Device Data Block (DOB): DDT address First UCB address CRB address 800fi0408 8000087C 8005EB20 Channel Request Block (CRB) : UCB reference count Channel allocation mask Secondary CRB address IDB address Controller init. routine Unit init. routine Unit start routine Unit disconnect routine 11 00 00000000 80075E40 80001271 800609DE 00000000 00000000 Interrupt Dispatch Block (IDB): CSR address Owner UCB address Number of units ADP address 80017800 00000000 8 8005EBl10 Driver Dispatch Table (DDT): Start I/O routine Unsol. interrupt routine Function Decision table Cancel I/O routine Register dump routine Diagnostic buffer size Error buffer size 00000102 00000637 0000007A 8000A869 00000592 0080 OOAE Figure 5-4 Controller Data Structures for DB Devices 5-27 SDA COMMANDS 3. SDA> SHOW DEVICE DBAl Figure 5-5 shows an example of the last section of the display produced by SHOW DEVICE. The display lists the UCB, VCB, and AQB for the device DBAl. VAX/VMS 1.0 -- System Dump Analysis I/O data structures 15-AUG-1979 17:10:0n.n8 DB Al UCB address: Device status: Characteristics: IRP address CRB address VCB address FQFL FQBL Fork IPL Fork PC Fork R3 Fork R4 80074830 1810 1C4D4008 80089350 80068520 80076140 80003A48 80003A48 8 80074831 80019C80 80019800 online,valid,unload Device class 01 Device type 05 DEVBUFSIZ 512 DEVDEPEND 032Fl3Hi DEVSTS 0000 Device IPL 21 Reference count 0 Operation count 837f!i5 AMB address 00000000 SVPN SVAPTE BOFF BCNT ERTCNT ERTMAX ERRCNT Owner UIC PID 00000217 8009835C 0000 0200 8 8 l [ 1, 11 00000000 *** I/O request queue is empty *** Volume: VMSWORK2 Status: 80 system AQB address Rel. Volume # Transactions Mount count Window size Default extension 800f!iE4AO 2 3 1 7 5 Cluster size Reserved files Maximum files Free blocks Record size RVT address 3 9 25000 19791 0 8008C820 ACP for volume: DRASACP PID ACP type ACP class Status Mount count AQB linkage 00010042 3 0 04 def sys 7 00000000 *** ACP request queue is empty *** Figure 5-5 Device Unit Data Structures for Device DBAl 5-28 SDA COMMANDS SHOW PAGE_TABLE The SHOW PAGE TABLE command displays a formatted list of system page table entries-which are used to map virtual pages to physical pages. T'h e d i s p 1 a y can be d iv i de d i n to 1 e ft and r i g ht sect i on s • The 1 e ft section contains virtual page information. The right section contains physical page information. Virtual Page Information The left section of the display describes virtual pages using information contained in the system page table. Each line of this display lists characteristics of a particular virtual page as well as locations needed for address translation. The values listed are: • ADDRESS -- system virtual address that marks virtual page • SVAPTE -- system virtual address of the page table entry maps this virtual page • PTE -- page table entry; virtual page • Type -- type of virtual page; VALID TRANS DZ ERO PG FIL STX GPTX IOPAGE • longword that the base describes a of a that system there are seven types: Valid page (in main memory) Transitional page (between main memory and page lists) Demand-allocate-zero-fill page Paging file page Section table index page Global page table index page I/O address space page PROT -- protection; a code derived from bits in the PTE that designate the type of access (read and/or write) granted to processor access modes (Kernel, Executive, Supervisor, or User). -- letter(s) representing the value of a bit or a • Bits combination of bits in the PTE; indicates certain aspects of a page. The bit codes are: M L K,E,S or U Modify bit Locked into working set Access mode of owner of page (only one letter will appear) 5-29 SDA COMMANDS Physical Page Information If the virtual page has been mapped to a physical page, the right section of the display includes information from the Page Frame Number (PFN) data base. Otherwise, the section is left blank. SDA organizes the 18 bytes of PFN data into nine categories: • PAGTYP -- type of physical page; PROCESS SYSTEM GLOBAL PPGTBL GPGTBL GBLWRT • there are six page types: Process page System page Global section page Process page table page Global page table page Global writeable section page LOC -- location of page in system; ACTIVE MDFYLST FREEL ST BADLST REL PEND RD ERROR PAGEOUT PAGE IN there are eight locations: In working set In modified page list In free page list In bad page list Release pending Read error Paging out Paging in • STATE -- byte that describes the state of the physical page. • TYPE -- byte that describes the PAGTYP). • REFCOUNT -- reference count; word indicating the presence of a reference to this PFN. If the value of REFCOUNT is non-zero, the page is used in at least one working set. If the value is zero, the page is not used in any working set. • BAK -- backing store address; which pages can be written • SVAPTE -- virtual address associated with this page frame. The two SVAPTEs indicate a valid link between physical and virtual address space. • FLINK -- forward link within PFN data base; share count of a global section. also acts as the • BLINK backward link within PFN data base; index to the working set list. also acts as an type of virtual location on a disk page device SDA indicates pages that cannot be accessed with the message: -------- n NULL PAGES where n represents the number of inaccessible pages. 5-30 (see to SDA COMMANDS Format SHOW PAGE TABLE Qualifiers Defaults /GLOBAL /SYSTEM /ALL /ALL Parameters None Qualifiers /GLOBAL Lists the global page table. /SYSTEM Lists the system page table. /ALL Lists both the global and default for the command. system page tables. This is the produced by this Examples 1. SDA> SHOW PAGE-TABLE/SYSTEM Figure 5-6 shows command. one page of 5-31 the display ADDRESS U'I I w !\..) 8000DOOO 8000D200 8000D400 8000D600 8000D800 8000DAOO 8000DCOO 8000DEOO 8000EOOO 8000E200 8000E400 8000E600 8000E800 8000EAOO 8000ECOO 8000EEOO 8000FOOO 8000F200 8000F400 8000F600 8000F800 8000FAOO 8000FCOO 8000FEOO 80010000 80010200 80010400 80010600 80010800 80010AOO 80010COO 80010EOO SVAPTE PTE 801F91AO 78000B7A 801F91A4 F80004E9 801F91A8 78000134 801F91AC F80009E5 801F91BO F8000DB2 801F91B4 F80001DD 801F91B8 F80001E9 801F91BC F8000257 801F91CO F800098E 801F91C4 F8000A5B 801F91C8 F800049A 801F91CC F8000844 801F91DO F8000075 801F91D4 78000088 801F91D8 F800020A 801F91DC F8000270 801F91EO F8000A4C 801F91E4 78000096 801F91E8 FA00067B 801F91EC 780001E5 801F91FO F800031A 801F91F4 F800029A 801F91F8 7800098C 801F91FC 7C40FFF8 801F9200 F80002DC 801F9204 78000159 801F9208 7C40FFF8 801F920C 7C40FFF8 801F9210 7C40FFF8 801F9214 7C40FFF8 801F9218 7C40FFF8 801F921C F80009F7 TYPE PROT BITS PAGTYP TRANS UR VALID UR TRANS UR VALID UR VALID UR VALID UR VALID UR VALID UR VALID UR VALID UR VALID UR VALID UR VALID UR TRANS UR VALID UR VALID UR VALID UR TRANS UR VALID UR TRANS UR VALID UR VALID UR TRANS UR STX UR VALID UR TRANS UR STX UR STX UR STX UR STX UR STX UR VALID UR K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K SYSTEM K K SYSTEM K SYSTEM K K K K K K SYSTEM LOC STATE TYPE REFCNT BAK SVAPTE FLINK BLINK 801F91AO 801F91A4 801F91A8 801F91AC 801F91BO 801F91B4 801F91B8 801F91BC 801F91CO 801F91C4 801F91C8 801F91CC 801F91DO 801F91D4 801F91D8 801F91DC 801F91EO 801F91E4 801F91E8 801F91EC 801F91FO 801F91F4 801F91F8 01E5 0000 053E 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ODB9 0000 0000 0000 0909 0000 0000 0000 0000 02BA 0742 0046 0654 0062 0058 0057 OOA6 007C 007D OOA3 004E 0094 0068 0394 005C 0058 0060 0585 0072 OB7A 006C OOA9 0159 801F9200 801F9204 0000 098C 0087 094D FREELST 00 ACTIVE 07 FREELST 00 ACTIVE 07 ACTIVE 07 ACTIVE 07 ACTIVE 07 JI.CT IVE 07 ACTIVE 07 ACTIVE 07 ACTIVE 07 ACTIVE 07 ACTIVE 07 FREELST 00 ACTIVE 07 ACTIVE 07 ACTIVE 07 FREELST 00 ACTIVE 07 FREELST 00 ACTIVE 07 ACTIVE 07 FREELST 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 0040FFF8 ACTIVE 07 FREELST 00 01 01 1 0 0040FFF8 0040FFF8 801F928C 94100010 801F9290 94100030 801F9294 90100031 801F9298 90100032 801F929C 90100033 801F92AO 94100034 801F92A4 94100035 801F92A8 90100036 801F92AC 90100037 801F92BO 941009FO 801F92B4 901009Fl 801F92B8 901009F2 801F92BC 901009F3 801F92CO 941009F4 801F92C4 901009F5 801F92C8 901009F6 801F92CC 901009F7 IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW IOPAG KW M M M M M M n 0 > z 0 (/) ACTIVE 07 01 K K K K K K K K K K K K K K K K K Figure 5-6 0 3 3 -------- 27 NULL PAGES 80014600 80014800 80014AOO 80014COO 80014EOO 80015000 80015200 80015400 80015600 80015800 80015AOO 80015COO 80015EOO 80016000 80016200 80016400 80016600 C/) > System Page Table 1 0040FFF8 801F921C 0000 0083 SDA COMMANDS SHOW PFN_DATA The SHOW PFN DATA command displays a formatted list of values contained in the page lists and in the PFN data base that can be used to translate physical pages to virtual pages. There are four data physical memory: structures concerned with the management • Free Page List -- pages available for use • Modified Page List -- pages to be written to disk • Bad Page List pages containing data errors • PFN Data Base all pages in physical memory of To display a particular physical page, specify its page frame number (PFN). To list the pages of one or more data structures, use the qualifiers. If you do not specify a parameter or a qualifier, SDA will dump all the page lists and the entire PFN data base. The format used to display physical page data is the same for each data structure. Figure 5-7 shows a page of the display produced by the command SHOW PFN DATA/SYSTEM. SDA organizes the information for each page under the following headings: • PFN -- page frame number; physical memory the absolute • PTE ADDRESS -- Page Table Entry address; the virtual address of the Page Table Entry (see the description of the SHOW PAGE_TABLE command for more details). • BAK -- backing store address; which pages can be written • REFCNT reference count; a word whose value signals whether a page is part of a working set • FLINK -- forward link; forward link within the PFN data (also used as share count of a global section) base • BLINK -- backward link; backward link within the PFN base (also used as an index to the working set list) data • TYPE -- type of page that was mapped into physical memory (see the description of the SHOW PAGE TABLE command for a list of the different types) location on a current state of the page in • STATE description of the SHOW PAGE TABLE ~- states) 5-33 page number disk within device to the system (see the command for a list of SDA COMMANDS Format SHOW PFN DATA [number] Qualifiers Defaults /FREE /MODIFIED /BAD /SYSTEM /ALL /ALL Parameters number The number of the physical page you want to display. Qualifiers /FREE Displays the free page list. /MODIFIED Displays the modified page list /BAD Displays the bad page list. /SYSTEM Displays the PFN data base in order of PFN starting at page frame zero. /ALL Displays all of the above memory management This is the default for the command. data structures. Examples 1. SDA> SHOW F'FN .... DATA/SYSTEM Figure 5-7 shows command. one page of 5-34 the display produced by this SDA COMMANDS VAX/VMS 2.0 -- System Dump Analysis PFN data base PFN PTE ADDRESS BAK 0000 0-001 0002 0003 0004 0005 0006 0007 0008 0009 OOOA OOOB 00000000 800A3Cl0 80174EAO 8010CEEO 801F7F70 8010CEB4 80174CAC 8016D200 8010CE2C 801COC58 801FB890 801FC6BC 00000000 801F03EO 801F0474 8010CF1C 80101040 801FD524 8017C900 80113F88 8011F480 801F0464 80-lOCfilO 801'503BC 80085008 80160338 801FB774 80160254 801020D8 801F'D5FO 8010A808 801F060C 80110848 8010CFEO 801B59D4 00000000 80174CA4 00000000 8010CE34 801FCB6C 8010CA28 8010CC98 801601F4 8010C604 8016D348 80160204 801A28 38 00000000 801FD2E8 00000000 8010C7C4 00000000 03000000 03000000 033FFFFF 03000000 033FFFFF 03000000 0300E351 0300E20E 03000000 03000000 03000000 00000000 0040FFB8 0040FFAO 033FFFFF 033FFFFF 0040FF90 03000000 0300E2C6 03000000 03000000 0040FFE8 03000000 03000000 03000000 03000000 033FFFFF 033FFFFF 0040FF90 03005305 0040FF70 033FFFFF 0 33FFF1''F 03000000 00000000 03000000 00000000 0300E2EO 03000000 0040FFE8 033FFFFF 03008FF2 0040FFE8 03000000 0300E352 0300861C 00000000 0040FFDO 00000000 0040FFE8 oooc 0000 OOOE OOOF 0010 0011 0012 0013 0014 0015 OOH 0017 0018 0019 OOlA 0018 OOlC 0010 OOlE OOlF 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 0020 002E 002F 0030 0031 0032 ----------- -------- 21-MAY-1979 15:00:04.82 REFCNT FLINK BLINK 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0895 OAAF 0000 0053 0000 007C 0000 01A2 0000 OOC9 0000 018D 0000 OOCE 0020 0498 0006 095F 0000 OOOB 0000 0054 0000 004B 05n6 08Bl 0002 0000 03FB ODll 0000 0084 0000 008C 0002 0000 0000 0047 0000 014B 0000 0088 0000 OOnB 0001 0195 0000 OOFE 0000 0050 0000 0143 0000 004E 018E 0634 0000 0084 0002 0000 0000 0175 0001 0000 0000 0002 0000 OODC 0000 0046 020C 025B 0000 oocc 0A2E 08CB 0590 0423 0000 004F 0000 DOCS OA25 occs 0000 0058 07AC ODIE 0000 0135 0401 0007 0000 0007 0840 OB03 0003 0000 093A 08CD 0000 017A Figure 5-7 5-35 TYPE STATE ---------- ---------- 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 04 PPGTBL 04 PPGTBL 00 PROCESS 02 GLOBAL 02 GLOBAL 00 PROCESS 00 PROCESS 02 GLOBAL 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 04 PPGTBL 00 PROCESS 00 PROCESS 02 GLOBAL 00 PROCESS 02 GLOBAL 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 04 PPGTBL 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 00 PROCESS 02 GLOBAL 00 PROCESS 00 PROCESS 00 FREEL ST 87 ACTIVE 87 ACTIVE 87 ACTIVE 07 ACTIVE 87 ACTIVE 07 ACTIVE 00 FREEL ST 81 MDFYLST 07 ACTIVE 07 ACTIVE 87 ACTIVE 00 FREEL ST 07 ACTIVE 00 FREEL ST 87 ACTIVE 87 ACTIVE 07 ACTIVE 07 ACTIVE 07 ACTIVE 07 ACTIVE 07 ACTIVE 00 FREELST 07 ACTIVE 07 ACTIVE 07 ACTIVE 87 ACTIVE 81 MDFYLST 87 ACTIVE 07 ACTIVE 87 ACTIVE 07 ACT IVS 87 ACTIVE 87 ACTIVE 07 ACTIVE 00 FREEL ST 07 ACTIVE 00 FREEL ST 81 MDFYLST 87 ACTIVE 07 ACTIVE 81 MDFYLST 87 ACTIVE 00 FREEL ST 07 ACTIVE 00 FREEL ST 87 ACTIVE 00 FREEL ST 07 ACTIVE 00 FREEL ST 07 ACTIVE PFN Data Base SDA COMMANDS SHOW POOL The SHOW POOL command displays the contents of the I/O Request Packet (IRP) pool, the nonpaged dynamic storage pool, and the paged dynamic storage pool. This data is organized into blocks; SDA attempts to identify each block by its block type. SHOW POOL displays only allocated blocks, that is, blocks that are (or were) currently in use by the system. The information contained in each of the three pools is shown in the same format. From left to right, the contents of the display are: • Block type -- the type of information contained in the block. SDA tries to define the block type. If it is unable to do so, the message UNKNOWN is printed instead of the name of the block type. • Starting address -- the virtual address that marks of the block. • Block size -- the number (decimal) of bytes of nonpaged memory allocated to the block. The block size is fixed at 80 in the IRP pool and is variable in the paged and nonpaged pools. • Contents (hexadecimal) the contents of the block longwords. The contents are arranged four columns across. • Contents (ASCII) -- the contents of the block in ASCII format. the start in Format SHOW POOL Qualifiers Defaults /!RP /NON PAGED /PAGED /SUMMARY /ALL /ALL Parameters None Qualifiers /!RP Prints the I/O request packet pool. Formats all blocks currently allocated (in use) within this pool. /NON PAGED Prints the nonpaged dynamic storage pool currently in use by system. 5-36 the SDA COMMANDS /PAGED Prints the paged dynamic storage pool currently system. in use by the /SUMMARY Prints a summary of the pools selected by the above qualifiers. /SUMMARY displays the different block types present and lists the total number and bytes used of each in decimal. This qualifier also prints the total number of bytes used in each pool. /ALL Prints IRP, nonpaged, and paged dynamic storage pools. the default for the command. This is Examples 1. SDA> SHOW POOL/PAGED Figure 5-8 shows a page of the display produced by this command. 5-37 SDA COMMANDS VAX/VMS 2.0 -- System Dump Analysis Paged dynamic storage pool GSD 80056FAO 21-MAY-1979 16:21:47.68 48 00010004 00150028 80056FDO 80056810 • k ••• o •• ( ••••••• 5F424D53 5452500A 80056870 FFC8AOOO •••• ph ••• PRTSMB 00000000 00000000 00000000 00313030 001 •••••••••••• -: GSD 80056FDO 48 00010004 00150028 80057000 80056FAO .o ••• p •• ( ••••••• 59414C50 53494408 80056970 FFCOAOOO •••• pi ••• DISPLAY 00000000 00000000 00000000 3130305F 001 •••••••••••• GSD 80057000 - 48 00010004 00150028 80057320 80056FDO .o •• s •• ( ••••••• 59414C50 53494408 80056970 FFB8AOOO •••• pi ••• DISPLAY 00000000 00000000 00000000 3230305F 002 •••••••••••• KFH KFI KFI KFI KFI KFI KFI 80057030 80057120 80057160 800571AO 800571EO 80057220 80057260 - 240 0028007C 00000101 02000000 00000000 00000002 00000000 00000000 00003032 00000001 00000005 00800007 00000000 OOOOOOOA FDOOOOOC 00000000 80056970 00000000 00000000 0000373E 00000010 59414C50 00000000 00864404 00000000 00000002 00000006 oooooooc OOOAOOlO 00000016 OOOBOOlO 003FFFEC 0014000C 00000000 00000000 80057114 .q •• pi •••• &. I. (. 00440038 8.D ••••• 0201 •••• 00000000 00000000 •••• >7 ••• " 00000000 53494407 • DISPLAY •••••••• 00313002 • 01 ••••••••••••• 064AOE20 .J •• D ••• 01.20 •• 00000000 00000000 OOOOOOOA 00340000 800630CO 00000001 00000000 04180040 00000233 00000000 00000057 80057160 00020387 00108001 4F485304 800569FO • i •• q •• @••••• 4. 00000001 •••••••• 3 •••• 0 •• 800574FC .t . . . . . . . . . . . . . . 80057120 q ••• SHOW ••••••• 00340000 800630FO 00000000 00000000 04180040 00000400 00000000 00000000 800571AO 00008001 00000000 50495003 80057120 q ••• q • • @•••• • 4. 00000001 ••••••••••••• o •• 00000000 00000000 ••••• PIP •••••••• 00340000 80063120 00000001 00000000 04180040 OOOOOOAO 00000000 00000000 800571EO 00018205 00000000 534F5303 80057160 q ••• q •• @••••• 4. 00000001 1 •• 00000000 800571AO • q ••• sos •••••••• 00340000 80062F50 00000001 00000000 04180040 000002F5 00000000 00000000 80057220 00010307 00000000 58535203 800571AO 00000001 800578DC 800571EO 00340000 80062F80 00000001 0000534E 04180040 80057260 000004El 00010307 00000000 00000000 41525448 43414209 002600E4 31303230 00000000 00002285 00000000 00000000 00000000 2E313005 00040010 00020010 0005000C ................ ...... ................ ................ ................ ................ 00000008 ................ oooooooc ................ 00000012 • • • • • • • • • • ? ••••• FFFFOOOO ................ 64 64 ................ 64 ............ ................ 64 .q •• r •• @••••• 4. • • • • • • • • •• • .P/ • • .x •••••••••••••• .q ••• RSX •••••••• 64 800571EO .q •• r •• @••••• 4. 00000001 / 80057AOC • z •••••••••••.••• 80057220 r ••• BACKTRANS •• ............. .. 64 00340000 04180040 800572AO 80057220 Figure 5-8 r ••• r •• ra ••••• 4. Paged Dynamic Storage Pool 5-38 SDA COMMANDS SHOW PROCESS The SHOW PROCESS command displays the software and hardware context of any process in the balance set. Format ! [name] SHOW PROCESS [/INDEX=nn] [/SYSTEM] l Qualifiers Defaults /PCB /PHD /REGISTERS /WORK ING SET /PROCESS-SECTION TABLE /PAGE TABLES /ALL - /PCB Parameters name A 1- to 15-character alphanumeric string assigned to the process. The name can include the symbols underline (_) and dollar sign ( $) • /INDEX=nn The index to the software PCB; nn consists of the last hexadecimal digits of the Process Identification (PID). four /SYSTEM The system process control block. The system PCB and process header (PHD) are dummy structures that are located in system space and contain the system working set, global section table, global page table, and other system-wide data. When you specify this parameter, SDA displays the system PCB rather than a given process. If no parameter is specified, the command displays the current process. See the description of the SET PROCESS command for the definition of the current process. Qualifiers /PCB Produces a formatted list of the data contained in the software process control block (PCB). The software PCB is the central control mechanism for process swapping and scheduling. 5-39 SDA COMMANDS The display produced by the /PCB qualifier lists: • Software context for the process • Condition handling information • Interprocess communication data • Counts and quotas /PCB is the default display for the command. /PHD Lists information included in the process header. The process header contains a process's vital statistics and is swapped into memory when a process becomes part of the balance set. Each item listed by the /PHD qualifier gives a quantity, count, or limit for the process concerning: • Process memory • Pager • Scheduler • Asynchronous system traps • I/O activity • CPU activity /REGISTERS Lists the process's hardware context. When a process executes, its hardware context is saved in the processor registers (see the description of the SHOW CRASH command). If the process is not executing, its hardware context is stored in the hardware PCB, which is part of the process header. The /REGISTERS qualifier organizes the saved process registers into: • General-purpose registers • Stack pointers • Special-purpose registers • Base and length registers /WORKING_SET Displays the working set list for the process. The working set list is a table for all virtual pages residing in physical memory that the process can access without a page fault. The values exhibited by this command are: • INDEX -- index used in PFN data base to access the entry • ADDRESS -- address of address space • STATUS -- a 3-part section that lists the location of the page in physical memory, the type of page (see the description of the SHOW PAGE TABLE command), and whether the page is locked into the working set a 5-40 virtual page in the process SDA COMMANDS When SDA locates an unused message: working set entry, it issues the The value of n is the number (in decimal) of unused entries SDA has found. that ---- n empty entries /PROCESS_SECTION TABLE Lists data within the process section table. The process section table contains information needed to locate a page in a process section. SDA notes the boundary of the Process Section Table in the "Process Section Table Information" section of the listing and then displays the actual process section table in readable format. The parts of the process section table are: • INDEX -- the word that locates the corresponding section table entry • ADDRESS -- the virtual address in the program region that marks the location of a process section table page • PAGES -- the length of a process section in pages • WINDOW -- the mapping window that translates block numbers to logical block numbers • VBN -- virtual block number; the number of a block on a mass storage device (the block number is relative to a file rather than to a device) • CLUSTER -- the cluster factor used when faulting pages in the corresponding process section • CHANNEL the channel section to a device unit • REFCNT -- a number that indicates part of a working set e FLINK the forward link word in the PST list e BLINK the backward link word in the PST list • FLAGS the flags that during process execution number describe connecting whether the a the process process virtual process page is section /PAGE_TABLES Displays the program control and /PAGE TABLES produces a list in the PAGE TABLE command. region page tables. same format as the SHOW /ALL Displays the information produced by the /PCB, /PHD, /REGISTERS, /WORKING SET, /PROCESS SECTION TABLE, and /PAGE_TABLES qualifiers. - 5-41 SDA COMMANDS Examples 1. SDA> SHOW PROCESS/PCB The top portion of Figure 5-9 shows the display produced by command. 2. SDA> SHOW p1:mcESS/PH[I The middle portion of Figure 5-9 shows the this command. 3. display produced by display produced by SDA> SHOW PFWCESS/REG:CBH'.RS The bottom portion of Figure 5-9 shows the this command. VAX/VMS 2.0 -- System Dump Analysis Process 2B dump: ELDRIDGE Process status: 00040001 PCB address Master PIO 3-JAN-1980 16:54:45.57 RES,PHDRES 8008BD20 0004002B 0004002B 80180AOO LEF PIO PHO address State Current priority 9 Base priority 4 UIC [011,0131 Mutex count 0 Waiting EF cluster 0 Starting wait time 00000000 Event flag wait mask F7FFFFFF Local EF cluster 0 4000031B Local EF cluster 1 80000041 Global cluster 2 pointer 00000000 Global cluster 3 pointer 00000000 JIB address 8009DB80 Creator PIO 00000000 Subprocess count 0 Swapfile disk address 00000000 Termination mailbox 0000 AST's enabled KESU NONE AST's active AST's remaining 14 5/6 Buffered I/O count/limit fi/6 Direct I/O count/limit 1205'1/12336 BUFIO byte count/limit # open files allowed left 10 10 Timer entries allowed left Active page table count 0 Process WS page count 235 14 Global WS page count Process header First free PO address Free PTEs between PO/Pl First free Pl address Free page file pages Page fault cluster size Page table cluster size Flags Direct I/O count Buffered I/0 count Limit on CPU time Maximum page file count Total page faults File limit Timer queue limit Paging file index 0002C800 7478 7FFD3200 25252 127 2 0002 727 4958 00000000 25600 7154 lfi 10 03000000 Accumulated CPU time CPU since last quantum Subprocess quota AST limit Process header index Backup address vector WSL index save area PTs having locked WSLs PTs having valid WSLs Active page tables Maximum active PTs Guaranteed fluid WS pages Extra dynamic WS entries Locked WSLE counts array Valid WSLE counts array 00000000 00000000 7FFDC120 7FFD5914 7FFEFOOO 00000164 R2 R6 RlO PC SSP Pl BR 0000144fi 0031 8 lfi 0018 03A5 0380 2 fl 7 7 20 3f.i0 OFB8 OFFS Saved process registers RO R4 RB AP KSP POBR this 08000000 8008BD20 7FFDSA58 7FFD590C 7FFEE400 80181COO Rl RS R9 FP ESP POLR Figure 5-9 80001ADO 000008DC 7FFDC008 80000328 7FFEF878 7F989COO R3 R7 Rll PSL USP PlLR 8008BD70 00000003 7FFDBA8C 03COOOOO 7FFD590C 001FFE9A Process Information 5-42 SDA COMMANDS 4. SDA> SHOW PROCESS/WORKING_SET Figure 5-10 shows the display produced by this command. The size of the working set and its boundaries are listed at the head of the display. The actual working set list follows this information. 21-MAY-1979 15:19:08.57 VAX/VMS 2.0 -- System Dump Analysis Process 34 dump: GROVE Working set information First WSL entry First locked entry First dynamic entry Last entry replaced Last entry in list Current authorized working set size Default (initial) working set size Maximum working set allowed (quota) 0046 0051 0052 015A 01A3 Working set list ---------------INDEX ADDRESS STATUS 0046 0047 0048 0049 004A 0048 004C 004D 004E 004F 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 0058 005C 005D 005E 005F 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 0068 006C 006D 7FFEEAOO 7FFEE800 7FFEE600 7FFEFEOO 8010ACOO 8010AEOO 80108000 8010COOO 8010C200 80113EOO 80114000 80108200 00054400 00054AOO 00055400 00054EOO 00054COO 00055000 00055200 00063EOO 00056600 00055600 00068 EOO 00055COO 00058EOO 00069000 00056200 00056400 00069200 00056AOO 00069400 00056COO 00056EOO 00064000 00069600 0005C400 00057200 00057400 00059200 00059000 VALID PROCESS WSLOCK VALID PROCESS WSLOCK VALID PROCESS WSLOCK VALID PROCESS WSLOCK VALID PPGT8L WSLOCK VALID PPGT8L WSLOCK VALID PPGT8L WSLOCK VALID PPGT8L WSLOCK VALID PPGT8L WSLOCK VALID PPGT8L WSLOCK VALID PPGT8L WSLOCK VALID PPGT8L WSLOCK VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS VALID PROCESS Figure 5-10 Working Set List 5-43 1000 350 1000 SDA COMMANDS 5. SDA> SHOW PROCESS/PROCESS_SECTION_TABLE Figure 5-11 shows the display produced by this command. VAX/VMS 2.0 -- System Dump Analysis ~rocess 34 dump: GROVE 21-MAY-1979 15:29:24.5~ Process section table information Last entry allocated First free PST entry FFEO 0000 Process section table INDEX ADDRESS PAGES WINDOW VBN FFF8 FFFO FFE8 FFEO 00000200 00076600 00003COO 00077600 OOOOOOOF 00000008 00000188 00000033 80068980 80078050 80068980 80079220 00000002 00000002 00000013 0000019C Figure 5-11 6. CLUSTER CHANNEL REFCNT 0 7FFE1DEO 7FFE1D90 7FFE1DEO 7FFE1D60 0 7 0 0 0 355 51 FLINK BLINK FFE8 FFFO FFF8 FFEO FFE8 FFFO FFF8 FFEO by this Process Section Table SDA> SHOW PROCESS/PAGE-TABLES Figure 5-12 shows a portion command. of 5-44 the display produced FLAG~ VAX/VMS 2.0 -- System Dump Analysis Process 01 dump: SWAPPER 22-MAY-1979 10:40:52.99 PO page table ------------ADDRESS 00000000 00000200 00000400 00000600 00000800 OOOOOAOO I ~ U'1 PTE OOOOOEOO 00001000 00001200 00001400 00001600 00001800 -------- NULL PAGES OOOOlCOO OOOOlEOO 00002000 00002200 00002400 00002600 00002800 00002AOO 00002COO 00002EOO 00003000 00003200 00003400 00003600 00003800 00003AOO 00003COO 00003EOO 00004000 00004200 00004400 00004600 00004800 00004AOO 00004COO 00004EOO 00005000 00005200 00005400 00005600 00005800 8005EE68 DOOOOAA6 8005EE6C D0000960 8005EE70 DOOOOlCB 8005EE74 DOOOOD04 8005EE78 D00005AO 8005EE7C D0000271 8005EE80 DOOOOBC7 8005EE84 D0000066 8005EE88 D0000076 8005EE8C DOOOOC32 8005EE90 D000080C 8005EE94 D0000539 8005EE98 DOOOOBCl 8005EE9C D00006AA 8005EEAO DOOOODE9 8005EEA4 DOOOOA9B 8005EEA8 D0000012 8005EEAC D000094D 8005EEBO D0000448 8005EEB4 D00007E5 8005EEB8 D0000456 8005EEBC D000006F 8005EECO DOOOODCC 8005EEC4 DOOOODB9 8005EEC8 D0000234 8005EECC DOOOOA59 8005EEDO D000074B 8005EED4 D000083B 8005EED8 D0000900 8005EEDC D000070F 8005EEEO D00002CB ooooocoo U'1 SVAPTE 8005EE30 DOOOOB6D 8005EE34 D000066E 8005EE38 D40009DD 8005EE3C D0000075 8005EE40 DOOOOB77 8005EE44 DOOOOB73 8005EE48 D00005FB 8005EE4C D4000C4C 8005EE50 D00009DD 8005EE54 D0000075 8005EE58 DOOOOB77 8005EE5C D4000290 8005EE60 D4000397 TYPE PROT BITS PAGTYP LOC STATF.: TYPE REFCNT BAK SVAPTE FLINK BLINK 87 87 07 87 87 07 07 07 07 87 87 87 87 04 04 00 00 00 00 00 00 00 00 00 04 04 1 1 1 1 1 1 1 1 1 1 1 1 1 03000000 03000000 03000000 03000000 03000000 03000000 03000000 03000000 03000000 03000000 03000000 03000000 03000000 801FA7D8 801FA900 800C81FC 800C803C 800C80C8 800C81D4 800C81DO 800C81CC 800C81FC 800C803C 800C80C8 801FA7EO 801FA7DC 0000 OOOF 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 004A 0050 0049 0051 0052 0046 0047 0048 0049 0051 0052 004C 004B FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 FREELST 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 02 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0040FF08 00000000 00000000 00000000 00000000 00000000 004CFFDO 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 801FE2E4 00000000 00000000 00000000 00000000 00000000 801FD34C 00000000 00000000 05E4 01C9 0271 OBCl 0596 0331 049E 06DF OOCB OD04 OC32 080C 0456 ODDS ODDl 09A7 0779 04E7 0763 0557 OlCB 0952 054C 070F OA8B 009A 0407 0050 074D 086A 0511 0288 OOAE 0456 OC32 0523 OlCB OBCA 0384 09FO 080C 0539 0038 OD04 OB24 VALID SRKW VALID SRKW VALID SRKW M VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW M VALID SRKW VALID SRKW VALID SRKW VALID SRKW M VALID SRKW M K PPGTBL ACTIVE K PPGTBL ACTIVE K PROCESS ACTIVE K PROCESS ACTIVE K PROCESS ACTIVE K PROCESS ACTIVE K PROCESS ACTIVE K PROCESS ACTIVE K PROCESS ACTIVE K PROCESS ACTIVE K PROCESS ACTIVE K PPGTBL ACTIVE K PPGTBL ACTIVE VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW VALID SRKW K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K GLOBAL K PROCESS K PROCESS K PROCESS K PROCESS K PROCESS K GLOBAL K PROCESS K PROCESS (/) Figure 5-12 Program Region Memory ocac 0044 08BA 03FC 0839 OAC3 OBCl ODES 075E OOCE 067B 0557 040A 0522 08EO ODB9 0889 0 > n 0 3 3' > z 0 (/) SDA COMMANDS SHOW STACK The SHOW STACK command displays the location and contents of the four stacks used by a given process as well as the system-wide interrupt stack. Each qualifier displays one of four stacks that correspond to the four VAX/VMS processor access modes for a specific process. The /INTERRUPT qualifier displays the system-wide interrupt stack. The default for SHOW STACK is the stack that is currently being used or that was in use when the system failed. Figure 5-13 shows the display produced by the SHOW STACK command. The display is the same for each stack, and is composed of four sections: • Stack Pointer -- the stack pointer identifies the top of the stack. The display indicates tte stack pointer by the symbol: SF' => 7FFEF868 00000001 • Stack address -- SDA lists all the virtual addresses allocated to the stack by the operating system. The stack addresses are listed in a column which increases by 4 (one longword). • Stack contents -- SDA lists the contents of column next to the stack addresses. • Global symbols -- SDA attempts to display the location symbolically using a symbol and example: 7FFEF868 7FFEF86C 7FFEE200 7FFEE208 the stack in a contents of a an offset. For MMG$HDRBUF MMG$HDRBUF+08 If the value is not within range of any existing field will be left blank. symbols, the If a stack is empty, the stack pointer will point to the message: SP :::> <THE STACK IS EMPTY> SDA will display only five pages of any stack. Format SHOW STACK Qualifiers Defaults /INTERRUPT Stack currently in use (running system) or in use when system failed /KERN SL /EXECUTIVE /SUPERVISOR /USER /ALL Parameters None 5-46 SDA COMMANDS Qualifiers /INTERRUPT Displays the interrupt stack. This stack is always resident memory and is used during hardware interrupt processing. in /KERNEL Displays the kernel stack for the current process. /EXECUTIVE Displays the executive stack for the current process. /SUPERVISOR Displays the supervisor stack for the current process. /USER Displays the user stack for the current process. /ALL Displays all the stacks described above. Examples 1. SDA> SHOW STACK/KERNEL Figure 5-13 shows a portion command. of 5-47 the display produced by this SDA COMMANDS VAX/VMS 2.0 -- System Dump Analysis Current operating stack 21-MAY-1979 15:34:40.49 Current operating stack (KERNEL): SP => 7FFEEB18 7FFEEB1C 7FFEEB20 7FFEEB24 7FFEEB28 7FFEEB2C 7FFEEB30 7FFEEB34 00001000 7FFEEB20 7FFEFOOO 7FFEF8 28 7FFDB65C 8007C200 8000fi074 00070000 7FFEEB38 7FFEEB3C 7FFEEB40 7FFEEB44 7FFEEB48 7FFEEB4C 7FFEEB50 7FFEEB54 7FFEEB58 7FFEEB5C 7FFEEB60 7FFEEBfi4 7FFEEBfi8 7FFEEB6C 7FFEEB70 7FFEEB74 7FFEEB78 7FFEEB7C 7FFEEB80 7FFEEB84 7FFEEB88 7FFEEB8C 7FFEEB90 7FFEEB94 7FFEEB98 7FFEEB9C 7FFEEBAO 7FFEEBA4 7FFEEBA8 7FFEEBAC 7FFEEBBO 7FFEEBB4 7FFEEBB8 7FFEEBBC 7FFEEBCO 7FFEEBC4 7FFEEBC8 7FFEEBCC 7FFEEBDO 7FFEEBD4 7FFEEBD8 7FFEEBDC 7FFEEBEO 7FFEEBE4 8006BACO 7FFDFEOO 00000000 801F18fi8 80007814 00070000 00000000 00000002 00020004 8000C4DF 8000C487 3FFFFFFF 00000000 800077 lF 00000000 00000000 00000000 00000000 00000000 7FFEEBC4 7FFEEB98 8000B4E3 80000116 00800000 00000000 20FCOOOO 7FFEF854 7FFEEBE4 8000BBF7 7FFEEBD4 7FFE1DFO 8006BACO 7FFDFEOO FFFFFFFF 00000003 00000003 7FFEEBD4 00000000 00000000 3FFFFFFF 00000000 00000000 80008E38 00000000 Figure 5-13 CTL$GL KSTKBAS+520 CTLSGL-KSPINI+400 CTLSGL-KSPINI+C28 EXESSWAPINIT+9F8 MMGSEXTRADYNWS+lfi4 EXESDELTVA+OAA EXE$DELTVA+052 MMGSEXTRADYNWS+06F CTL$GL KSTKBAS+5C4 CTL$GL-KSTKBAS+598 EXESCMODEXEC+OD3 SYS$DELTVA+006 CTLSGL KSPINI+C54 CTL$GL-KSTKBAS+5E4 MMGSIMGRESET+030 CTLSGL KSTKBAS+5D4 CTLSGL-CCB CTL$GL_KSTKBAS+5D4 EXE$RUNDWN+04E Current Operating Stack (Kernel) 5-48 SDA COMMANDS SHOW SUMMARY The SHOW SUMMARY command displays a formatted list of all active processes. The display shows the values used in swapping and ~cheduling for these processes. Figure 5-14 is an example of the display produced by the SHOW SUMMARY command. The information listed in the display includes: • PID -- the process 32 bit quantity that uniquely • PROCESS NAME -- the name assigned to the process • IMAGE NAME -- the VAX/VMS file specification currently executing in the process's context the image • STATE -- the condition of the process (see the VAX/VMS Manager's Guide for a description of possible states) System e PR! the current scheduling priority of the process • UIC User Identification Code • WKSET -- the total number (in decimal) of pages the working set If the process has been swapped out of the balance set, appears in the "Image Name" column: identifies of currently this --- SWAPPED OUT --- Format Qualifiers Defaults None None Parameters None Examples 1. SDA> SHOW SUMMARY Figure 5-14 shows the display produced by this command. 5-49 the in message SDA COMMANDS VAX/VMS 2.0 -- System Dump Analysis Current process summary PID PROCESS NAME 00010000 NULL 00010001 SWAPPER 00010019 TTA3: 0003001A -TTF7: 0005001B MANDERLEY OOOBOOlC TTAl: 00140010 KAREN OOOCOOlE CRAIG 0001001F DERF OOOB0020 USER 00100021 NOAH 00050022 LYNN 001E0023 LAMONT 00170024 OZZIE 00060025 CLEO 00020026 MAJA 00170027 BOUSQUET 00020028 BACH 00040029 WIZARD OOOF002A BOUFFON OOOB002B HARLEY 0018002C DAVIDSON OOOF002D RMS 0007002E TTG4: 0013002F KURT OOOF0030 MEYERS OOOF0031 EDWIN 00040032 TTG3: 00090033 WOODROW 00200034 FRED 00190035 REID 00160036 LOWELL 00210037 OPPENHEIM 00010038 NETACP 00010039 PRTSYMB4 0001003A PRTSYMB3 0001003B PRTSYMB2 0001003C PRTSYMBl 0001003D DBA2ACP 0031003E GUITAR 0001003F ERRFMT 00010040 OPCOM 00010041 JOB CONTROL 00010042 DBAOACP 00020043 DBAlACP 21-MAY-1979 15:36:2fi.03 IMAGE NAME STATE PRI DBAO: [SYSEXE]VMOUNT.EXE; DBAO: [SYSEXE]MAIL.EXE; DBAO: [SYSEXE]RSX.EXE; DBAO: [SYSEXE]LOGINOUT.EXE; DBAO: [SYSEXE]BACKTRANS.EXE; DBAO:[SYSEXE]LOGINOUT.EXE; DBAO:[SYSEXE]SUBMIT.EXE;8 DBAO: [SYSEXE]SHOW.EXE; DBAO:[SYSEXE]TYPE.EXE;31 DBAO: [SYSEXE]DELETE.EXE;4 DBAO:[SYSEXE]COPY.EXE; DBAO: [SYSEXE]TALK.EXE; DBAO: [SYSEXE]BACKTRANS.EXE; DBAO: [SYSEXE]SHOW.EXE; DBAO:[SYSEXE]BACKTRANS.EXE; DBAO:[SYSEXE]COPY.EXE; DBAO: [SYSEXE]DISPLAY.EXE; SWAPPED OUT --- SWAPPED OUT --DBAO: [SYSEXE]USERS.EXE; DB2:[F4V2.TOOL]BLISS32.EXE;43 SWAPPED OUT --- SWAPPED OUT --DBAO: [SYSEXE]PRTSMB.EXE; DBAO: [SYSEXE]PRTSMB.EXE; DBAO: [SYSEXE]PRTSMB.EXE; DBAO: [SYSEXE]PRTSMB.EXE; DBAO: [SYSEXE]FllBACP.EXE; COM HIB LEF COM LEF LEF LEF LEF LEF LEF LEF LEF LEF LEF LEF LEF LEF LEF LEF COM LEF LEF LEF LEF LEFO LEF LEF LEFO LEF CUR LEFO LEF LEFO HIB HIB HIB HIB HIS HIB HIS DBAO: [SYSEXE]FllBACP.EXE; Figure 5-14 HIB LEF HIB HIB HIB UIC 0 [000 ,000) (000,000] 4 [017,022) 4 [320,100] 7 [3fi0,007] 4 [010,0401 4 [3fil,006] 4 [320,111] 8 [320,114] 7 [304,003] 7 [3fil,002] 4 [320,110] 4 [360,003) 4 [3fi0,002] 4 [361,004] 4 [304,002) 4 [011,0lfi] 7 [3fi0,016] 5 [017 ,022] 4 [300,041) 4 [017 ,022) 8 [3fil,013] 4 [011,0lfi] 7 [311,001) 4 [3fil,003] 4 [360,005) 8 [3150,001) 4 [311,001) 4 [201,201) 5 [320,100) 7 [361,010) 5 [301,021) 4 [3fi0,023] 9 [001,001) 8 [001, 004] 8 [001,004) 8 [001,004) 8 [001,004) 11 [001,003) 7 [3fil,010] 9 [001,006] 8 [001,004] 13 [001,004] 11 [001,003] 10 [001,003] Hi Summary of Acti~e Processes 5-50 WK SET 0 0 59 74 148 39 41 70 41 150 67 68 fil 70 68 55 53 45 149 300 58 43 70 39 fil 65 150 45 50 338 106 45 43 54 41 41 41 41 104 32 30 38 100 100 105 SDA COMMANDS SHOW SYMBOL The SHOW SYMBOL command displays a local or global symbol and the value associated with it. If the value is a valid memory location, SDA examines that address and displays its contents. Format SHOW SYMBOL symbol-name Qualifiers Defaults /ALL None Parameters symbol-name Specifies an SDA symbol that corresponds to an SDA expression. See Section 4.2.5 for more information on SDA symbols. Qualifiers /ALL Displays two lists of the entire SDA symbol table. The first list organizes the local and global symbols in alphabetical order. The second list organizes these symbols by their values, starting at the lowest value. If the value represents an address, the contents of the memory location will be displayed: TTYSA_CTRl...Z 80002A12 => OOOD5A5E If you specify a symbol name and the /ALL qualifier, SHOW SYMBOL displays a list of all the symbols that begin with the specified symbol name. For example, SHOW SYMBOL IOC$GL displays all the symbols with starting characters IOC$GL. Examples 1. !:>DA> SHOW SYMBOL Bl.JG~~FATAI... BUGSFATAI... 80008256 08309F9E = In this example, the global symbol, its system and the value stored at the address are shown. 2. virtual address, BDA> DEFINE ~3TART :::: 00000000 SDA> SHOW SYMBOi... BTAl:~T START 00000000 009A029A = In this example, a local symbol is defined. See the description of the DEFINE command for more information about symbol definition. 3. SDA> SHOW SYMBOL/ALI... Figure 5-15 shows a page of the listing produced by this command. 5-51 VAX/VMS 2.0 -- System Dump Analysis System global symbols by name U1 I U1 ('..) IO$M FCOOE 0000003F IO$ LOGICAL 0000002F IO$-PHYSICAL OOOOOOlF IO$-REAOLBLK 00000021 IO$-REAOPBLK oooooooc IO$-REAOVBLK 00000031 IO$-WRITEL8LK 00000020 IO$-WRITEP8LK 00000008 IO$-WRITEV8LK 00000030 IOCSALOUBAMAP 8000A807 => A53C3888 IOC$ALOU8AMAPN 8000A803 => 15113888 IOC$ALTUBAMAP 8000A7E5 => 5326Al9A IOC$APPLYECC 8000A8AC => C53Cl888 IOC$CANCELIO 8000A551 => 58A508El IOC$CREATE UCB 800087F6 => 5108A53C IOC$CVTLOGPHY 8000A920 => 34A35000 IOC$CVT OEVNAM 8000887A => 007E5070 IOC$0ELM8X 8000A568 => 5024A500 IOC$0IAG8UFILL 8000A5EE => 534CA500 IOC$0IRPOST1 80005544 => 5024A500 IOC$0ISMOUNT 80008665 => A60028B8 IOC$FFCHAN 800088AF => 463BEFC1 IOC$FILSPT 8000A3CO => 04C55300 IOC$GL AOPLIST 8000083C => 8005E800 IOC$GL-AQ8LIST 80003Al0 => 80063310 IOC$GL-DEVLIST 80000838 => 80000848 IOC$GL-OIALUP 80003AlC => 800688AO IOC$GL-OPTLIST 80000840 => 80069090 IOC$GL-IRPBL 80003AOC => 80078390 IOC$GL-IRPFL 80003A08 => 80076F70 IOC$GL-MUTEX 80003828 => OOOOFFFF IOC$GL-PSBL 80003A04 => 80003A00 IOC$GL-PSFL 80003AOO => 80003A00 IOC$GQ-BRDCST 80003A20 => 80003A20 IOC$GQ-MOUNTLST 80003Al4 => 80056A60 IOC$GW-MAXBUF 80004466 => 04000400 IOC$GW-MBXBFQUO 80004468 => 01000400 IOC$GW-MBXMXMSG 8000446A => 00100100 IOC$GW-MBXNMMSG 8000446C => 00100010 IOC$ INlTORV 800126FF IOC$ INITIATE 8000A6F4 => 4CA55300 IOC$IOPOST 80005078 => 707E5470 IOC$LOADMBAMAP 8000AA04 => A53C5300 IOC$LOADU8AMAP 8000AA4E => 3C7E5370 IOC$MAPV8LK 8000A947 => 120AA291 IOC$MOVFRUSER 8000A388 => A5A83610 IOC$MOVTOUSER 8000A3A4 => A5A81Al0 IOC$PTETOPFN 8000AAB7 => 00008FCA IOC$QNXTSEG 800053CO => 5218A3DO IOC$QNXTSEG1 800053CC => 3044A4B7 IOC$REINITORV 80012705 IOC$RELCHAN 8000A628 => 5020A500 IOC$RELOATAP 8000A729 => 5020A500 IOC$RELMAPREG 8000A799 => 5120A500 IOC$RELSCHAN 8000A61E => 5020A500 21-MAY-1979 16: 04 s 51."71 IOC$REQCOM 8000A6B3 •> 534CA500 IOC$REQOATAP 8000A762 => A5000100 IOC$REQOATAPNW 8000A75E => 02110000 IOC$REQMAPREG 8000A703 => 50E83210 IOC$REQPCHANH 8000A67F => 5020A500 IOC$REQPCHANL 8000A688 => 5020A500 IOC$REQSCHANH 8000A668 => 5020A500 IOC$REQSCHANL 8000A675 => 5020A500 IOC$RETURN 8000A869 => 6E02C005 IOC$SEARCHOEV 80008806 => 11520200 IOC$SEARCHGEN 80008808 => 88520100 IOC$UNLOCK 8000B9F9 => EFOOSOOO IOC$UPOATRANSP 8000A9C8 => 6EA550A2 IOC$VERIFYCHAN 8000BA08 => 13500FAA IOC$WAKACP 800053F4 => OA7El208 IOC$WFIKPCH 8000A86A => 706E02CO IOC$WFIRLCH 8000A88A => 706E02CO IPL$ ASTOEL 00000002 IPL$-HWCLK 00000018 IPL$-IOPOST 00000004 IPL$-MAILBOX 00000008 IPL$-POWER OOOOOOlF IPL$-QUEUEAST 00000006 IPL$-SCHED 00000003 IPL$-SYNCH 00000007 IPL$-TIMER 00000007 KFI$GL FllAACP 80003840 => 80056830 LIB$CVT OT8 8000F03E => OA00003C LI8$CVT-HTB 8000F04C => l000003C LIB$CVT-OTB 8000F045 => 0800003C LOG$AL DISKLOG 80011A08 LOG$AL-LOGTBL 800039C8 => 800039E8 LOG$AL-MUTEX 80003904 => OOOOFFFF LOG$0ELETE 8000BA3E => 0050610F LOG$GL SLTFL 800039E8 => 80056A30 LOG$INSLOGN 8000BA60 => 530BA59A LOG$LOCKR 80008AA7 => OF64CF9F LOG$LOCKW 8000BAAO => OF44CF9F LOG$SEARCHLOG 8000BAC8 => 00608FBB LOG$TRNSLOGNAME 80008814 => 1350613C LOG$UNLOCK 80008AB3 => OFB7CF9F MB$OOT 8000127C => 00000318 MB$0PT 80000F34 => 80001046 MB$GL 008 80000BE4 => 80000078 MB$GL-UC81 80000C90 => 80000C90 M8$GL-UCB2 80000004 => 80000004 M8$UCBO 80000ClC => 80000ClC MBA$ INITIAL 80001271 => 04A40100 MBA$INT 80001200 => 5300BEOO MMG$ALCPAGFIL 80006FFO => 160F4100 MMG$ALCPHD 8000B05E => 5024A53i MMG$ALCSTX 80008035 => 5126A532 MMG$ALLOCPFN 80006882 => 92305204 MMG$AL BEGORIVE 80001200 => 5300BEOO MMG$AL=ENOORIVE 80002EOO => 01AD0983 Figure 5-15 Global Symbols MMG$AL PGOCOO 80008400 •> 0500CF31 MMG$AL-PGOCOOEN 80011000 MMG$AL-SBICONF 80003264 ~> 00000000 MMG$AL-SYSPCB 80003808 => 80003808 MMG$A ENOVEC 80000600 •> 0000007A MMG$A-PAGFIL 80003108 => 80060B7C MMG$A-SYSPARAM 80004400 => EOBECC20 MMG$CRECOM1 8000C39F => 54705510 MMG$CRECOM2 8000C3A7 => OAOOEE30 MMG$CREPAG 8000C510 => lEElSOOD MMG$CRETVA 8000C380 => AC9A01FC MMG$0ALCPAGFIL 800070C4 => 4FOF4100 MMG$0ALCSTX 8000B01E => 5520A5Cl MMG$0ALCSTXSCN 8000BCA5 => 3AA501E7 MMG$0ALLOCPFN 80006023 => 40855204 MMG$0ECPHOREF 8000682C => 5146A53C MMG$0ECPHOREF1 80006830 => 280F41B7 MMG$0ECPTREF 80006AC5 => 531509EF MMG$0ECSECREF 8000712E => 5520A5Cl MMG$0ELCONPFN 80006897 => F80F4000 MMG$0ELGBLSEC 80007963 => 501CA300 MMG$0ELGBLWC8 80000639 => 6409FFOF MMG $OELPFNLST 80006C8C => 10889610 MMG$0ELWSLEPPG 80006989 => A4870710 MMG$0ELWSLEX 80006995 => 52654100 MMG$DGBLSC1 80000518 => 071100FC MMG$EXTRAOYNWS 80007680 => A56CA5A3 8000682F => EF327E7C MMGSFREWSLE MMG$FREWSLX 800067E7 => 7E7COlOO MMG$FRSTRONLY 80004800 => El56220B MMG$GETPTIPAG 80007Al2 => 007El20B MMG$GL CROCNT 80003F90 => 00000001 MMG$GL-CTL8ASVA 80004540 => 7FFOFEOO MMG$GL-FRESVA 80004558 => 80200000 MMG$GL-GPTBASE 8000454C => 801F9000 MMG$GL-GPTE 80004550 => 801FOOOO MMG$GL-IACLOCK 80002E84 => 00000000 MMG$GL-MAXGPTE 80004554 => 80200000 MMG$GL-MAXPFN 80004584 => OOOOOE17 MMG$GL-MAXSYSVA 80004558 => 80200000 MMG$GL-NPAGEOYN 8000457C => 8005E800 MMG$GL-PAGEOYN 80004580 => 80056800 MMG$GL-PAGSWPVC 80003218 => 8000322C MMG$GL-PFNLOCK 80002E88 => 40000000 MMG$GL-PHYPGCNT 8000445E => 00004000 MMG$GL-RMS8ASE 800032A4 => 80019COO MMG$GL-SBR 80004578 => OOlFCOOO MMG$GL-SPTBASE 8000455C => 801F9000 MMG$GL-SPTLEN 80004560 => 00001000 MMG$GL-SYSPHO 80004564 => 801F8400 MMG$GL-SYSPHOLN 80004568 => OOOOOCOO MMG$GSDMTXULK 80000503 => 5ClBEFOO MMG$GSOSCN 80000599 => 5105527C MMG$IMGACTBUF 7FFEDA00 => 00000000 MMG$IMGHOR8UF 7FFEE200 => 7FFEE208 Cll tj > n 0 3 3 > 2: tj Cll CHAPTER 6 ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES This chapter discusses how VAX/VMS handles internal errors and suggests procedures that can aid in determining the cause of these errors. The final sections of the chapter illustrate, through detailed analysis of a sample system failure, how SDA helps you find operating system problems. 6.1 GENERAL PROCEDURE FOR SOLVING SYSTEM FAILURES When the VAX/VMS operating system detects an internal error so severe that normal operation cannot continue, it signals a condition known as a fatal bugcheck and shuts itself down. A bugcheck describes the error discovered by the system; each error is associated with a particular bugcheck code. To resolve the condition, you must find the reason for the bugcheck. You generally need the VAX/VMS source code to locate the error, unless the error exists in a driver that is not supplied by DIGITAL. If this is the case, you may simply need the driver listings. The best way to start the search for the error is to locate the line of code that signaled the bugcheck. The address of this instruction is usually contained in the Program Counter register (PC). Invoke SDA and give the SHOW CRASH command. The display SDA produces gives the contents of the PC. Next, examine the system map file SYS$SYSTEM:SYS.MAP. This file lists the addresses of each VAX/VMS module that resides in system space (the part of the operating system that performs basic system services and scheduling). Compare the address in the PC with the addresses in the system map file to locate the module that uses the instruction pointed to by the PC. If you do not have the system map file, you can use SDA's symbol table. All the system global symbols that appear in SYS.MAP also exist in the SYS.STB file that SDA reads during the initialization process. To determine the offset from the closest global symbol, issue the command: SDA> EXAMINE @PC Once you have narrowed the search to a particular module, subtract the module's starting address from the address in the PC to get the offset into the code. Now, to determine the general cause of the system failure, examine the code that signaled the bugcheck. 6-1 ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES 6.2 FATAL BUGCHECK CONDITIONS If a bugcheck is conditions: signaled, • A fatal exception • An illegal page fault 6.2.1 it is usually caused by one of two Fatal Exceptions A fatal exception is an event that causes VAX/VMS to signal a fatal bugcheck. An exception is fatal when it occurs while a process is: • Using the interrupt stack • Executing above IPL 2 (IPL$_ASTDEL) • Executing in a access mode privileged (kernel or executive) processor When the system fails, it lists the immediate cause of the failure on the LSI-11 console. For fatal exceptions, the messages appear as follows: FATALEXCPT' Fatal executive or kernel mode exception INVEXCEPTN' Exception while above ASTDEL or on interrupt stack Although there are several possible exception conditions, the type that most commonly occurs is the access violation. The rest of this section discusses the access violation in detail. For more information on other kinds of exceptions, see the VAX-11 Run-Time L i bra r y f3._~-~-~-~ ~!!~-~---r.1anua1 • When an access violation is detected by the VAX-11 hardware, information useful in finding the cause of the violation is pushed onto the current operating stack, that is, the stack that the process was using when the access violation occurred. This information is described by three structures, referred to as vectors. A vector is structured as follows: 31 0 r-------·-···--····-·~····~·"'--- -------- ------------longword series of longwords _____________ .,..__ , ------··-··.,···---··--·-··-··- ----------~- --~~---·------------------·- 6-2 ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES The first longword in the vector shows the number of longwords that follow. Each longword in the series contains information describing conditions at the time of the exception. The first vector that appears on the stack gives the addresses of next two vectors: the 0 31 ------------···------·-·--·-···00000002 signal vector address mechanism vector address The mechanism vector follows the first vector. This structure describes the process that was executing when the exception occurred. The diagram below illustrates the sequence of longwords in a mechanism vector: 31 --------------~-~-~-~ ------------- 0 00000004 -------------··-·-·" ........ . frame depth RO R1 The values contained in this vector are: 00000004 -- the number of longwords that • mechanism vector, this value is always four. follow. • Frame the address of the stack frame. • Depth the stack depth. • RO the contents of RO at the time of the exception. the contents of Rl at the time of the exception. • Rl n-3 In a ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES The next vector created on the stack is the signal vector. violations, the signal vector is set up as follows: For access 31 0 00000005 oooooooc reason mask '---------·----·--·--·---1 virtual address ···-"•"• -·---- ..---·-··---,··-·---. . .,--.------------1 PC !----------·------·----.-- ---------· - - - - - - - - - - - -. . . PSL The parameters shown in the above diagram are: For access • 00000005 -- the number of longwords that follow. violations, this value is always five. • OOOOOOOC -- the exception code. This value is C (hexaaecimal) to represent an access violation. • Reason mask -- the longword whose lowest three bits, if set, indicate that the instruction caused a length violation (bit 0), referenced the process page table (bit 1), and attempted a read/modify operation (bit 2). • Virtual address -- the virtual address that the to reference. • PC -- the Program Counter. The PC contains the address of the instruction that signaled the exception. • PSL -- the processor exception. status longword at the system time tried of the Signal vectors differ in length, depending on the kind of exception the system detects. See the VAX-11 Run-Time Library 13_efe~~ence_Manual for details. If VAX/VMS encounters a fatal exception, you can find the code that signaled it by examining the PC placed in the signal vector. Issue the SHOW STACK command to display the current operating stack, then locate the vectors. Once you obtain the PC, which points to the instruction that signaled the exception, you can identify the module by the procedure outlined in Section 6.1. 6-4 ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES 6.2.2 Illegal Page Faults VAX/VMS also signals a bugcheck when a page fault occurs while the Interrupt Priority Level (IPL) is greater than two (IRP$ ASTDEL). When VAX/VMS fails because of an illegal page fault, it issues the following message on the console: PGFIPLHI, Pase fault with IPL too hish In this case, information is pushed on the stack as longwords following sequence: 31 in the 0 R4 RS reason mask virtual address PC ----------------·-··- -··---··--------·-·-·-·· ---~ PSL The longwords pushed on the stack are: the contents of R4 at the time of the bugcheck. • R4 • RS the contents of RS at the time of the bugcheck. • Reason mask -- see Section 6.2.1. address -- the virtual address that caused the • Virtual fault. page • PC -- the Program Counter. The PC contains the address of the instruction that was executing when the page fault was issued. • PSL -- the processor bugcheck. status longword at the time of the If the operating system detects a page fault while the IPL is higher than two, you can obtain the faulting instruction by examining the PC pushed on the current operating stack. Follow the steps outlined in Section 6.1 to determine which module issued the instruction. 6-S ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES 6.3 DEBUGGING A SYSTEM FAILURE -- AN EXAMPLE This section steps through the analysis of events that lead up to this failure are: 6.3.1 a system failure. The • The line printer goes offline for three hours. • The line printer comes back online. • The operating system signals a bugcheck, writes information to the system dump file, and shuts itself down. Identifying the Bugcheck Invoke SDA to analyze the system dump file. message indicates the type of bugcheck signaled: The initialization VAX/VMS S~stem dump analwzer Dump taken on 31-JUL-1979 20:43:13.32 INVEXCEPTN, ExcePtion while above ASTDEL or on interrupt stack SDA> VAX/VMS encountered an exception that caused it to signal a bugcheck. Signal and mechanism vectors are created on the current operating stack. 6.3.2 Identifying the Exception Issue the SHOW STACK command to display the current operating stack, which, in this case, is the interrupt stack. Figure 6-1 shows the interrupt stack and highlights the three vectors. Current oPeratin~ stack <INTERRUPT> BP ::::) mechanism vector 8006A378 8000844B 8006A:'598 '7FFDC340 BOObA3<.»C 8006A~5AO !3006A:3AO 8006A:3A4 80004E7D 04080009 ~1006A:3A8 000000.04 '1:t006A~lAC J~OC>6A3~0 1r1::·1:1c3.6e 1::-1:='(:~ FF Ft: r1· BOOl.>A:3B4 8001774E 00000f4F 0000000!5 B006A3B8 8006A3I{C Boo6A~~co signal vector :~~006A3C4 i90()6A3C~:~ ACPtWRITEBLK+OAO EXE$liEl... ECT +OD4 ()OOOOOOC 00000000· tW()69EOO BC>06A:3CC . 800~)t100:·5 . 800·6A:m<> 04()~100()() BOObA:3D4 nooo9c'>04 EXESFORKDSPTH+OlC Figure 6-1 Interrupt Stack and Vectors 6-6 ANALYZING SYSTEM FAILURES --· GUIDELINES AND EXAMPLES Examination of the signal vector shows that: • The exception code is C (hexadecimal) access violation occurred. which means that an instruction reason mask is zero, which means that the • The (instead of a length generated a protection violation violation) when it tried to read write to it). the location (rather than • The virtual address is 80069EOO and is the instruction tried to reference. that the • The PC is 80050003 and is the address of the instruction signaled the exception. that • The IPL was eight at the time of the exception (shown by 16 through 20 of the PSL) • bits • The current operating stack was the interrupt stack the PSL is set to 1). • The process was executing in kernel mode at the exception (shown by bits 24 and 25 of the PSL). address (bit 26 of time of the Use the SHOW PAGE TABLE command to display the system page table, as shown in Figure- 6-2. The page containing location 80069EOO is not available to any access mode (a null page); thus, the virtual address is not valid. 6-7 10•DEC•1979 t91211ee,32 VAX/VMS 1,0 •• Syatem Oymp Ane1Yl11 Syetem page teble ADDRESS SVAPTE PTE TYPE PROT BITS PAGTVP L.OC STATE TVPE REFCNT BAK Page 17 SVAPTE l'L.INK BL.INK ;,.:,,..;,,.,..;.iit. 1 NUl.L PAGE 800bA000 800CD340 B0000~ED R00CD344 81.10005EE 8~0&A20Cll -------· l 800&Ab'1llil 80!0bA800 8Qli11bA400 VAL.ID ERKW VAL.IO ERl<W M > z > c-i I( I( t-< N NUL.L PAGE 1-1 8~CllC034C D400038q 8~~C0350 80~CD354 040~~144 0400~Ql28 VALID SRKl>I M VAL.ID SRK..i M VALID SRKW M K PPGTBL. K ?F'GTBL K PPGT~L ACTIVE ACTIVE ACTIVE 87 87 87 01.1 Cll4 ;!14 1 1 1 0300111000 0300.,,00QI 030'1!0000 800C034C 800CD.35111 800CD351.1 0000 0000 00e0 Pl04A 00/.IB 1'10/.IC ai:;,0Bc1rn 8~0C0370 8~0C0374 8~0CD378 Ofi'l00~2FS 500000~~ 5000000~ 800bBf.0~ 8~0CD37C 5000000fi'I 81"1'.lbC':!lbi1' 8!il00C200 ae0bCa0~ 8~fi'ICD3e0 8~~C0384 BM~CD388 5000~00P 50000~~0 5000~0fi'l0 8:i'fi'lbCbi"~l 80fi'IC038C 5000~0~0 BJ..,bC8~~ e~0co39~ s0a0~00~ 8?-0bCA00 R~0CD391.1 500~00~~ 8~0bCC00 IH110bCE'l0 8~~CD39A q~0CD39C 50~0~111J0 5000~~~1" l'<'tJbD~0111 8~0COJA0 50B~~~J~ 8-'0bD200 R~0CD3A4 S00~00V? R0~bl"'400 8~0CD3A8 500~0~~0 ~i.;,,COJAC 5(10?,~c..i.'!• 80@b080~ a~rCD3BVl Blll!ObDAli'l(ll 81i'llllC03Bl.I 50~~00Ar 50~~~~'~ S0Vl0~~0P 8~''11bAA0~ ~ I 00 A0t>,bD&~0 811i~bDC0CI! 8~~CD3B8 81/!l-lt>!"lE00 8e:0oEl1'0Vl 8d0CDJ9C 8~VlC03C0 8~0CD3C4 801i'lt>E2QI~' i:i~0eE1.10~ 8~~C03C8 8~~CD3CC 81/!0&Eo0v, 8l'li'lbE80~ 8~0CD300 e~~CD3Dl.I 8Vl~bEA00 800bFC00 801<'bF200 80it!bF400 800bFo0i'.I 8o:l0bF80'11 •••••••• 500~~•0~ 50~01i'lli'l0P 50~1i'l~~~~ 50~0~~0~ 5001i'lli'l~?CI! 5000~~~0 SC11000~0~ 800C0308 5000..,000 800CD3DC D4001i'l2E9 A~li'ICD3E0 04000353 8~~oEE00 8~1i'lbFill00 8~?CD3E4 5001i'l~li'l~~ e00CD3E8 oa00a1q1.1 800C03EC 04000050 800C03F0 04000122 j ~UL.L VAL.ID SRKW VAL.ID SRKW VALif> SRKill vALID SRKW OZERO SRK"4 DZERn SRKW OZE~O SRKW DZEF<'O SRKW l..)ZfRO SRKW D'lERO SRKw 11ZERO SRK"I ()ZfRn SRKW !)ZERO SRKW iJZERQ SRKW DZERO SRl<tl OZE.RO SRKw l)ZEPO SRKW DZERO SR1<.i DZERD SRI011 DZERO SRIOI f'lZE"RO SRKW DZERiJ SRI<'" DZEl<>l) SRK>'I J)ZE.Rt) $Rl(;1 <:>ZE.R!') SRKW DZERO SRK'>I vZE.RO SRKW ~ZERO SRKW OZERO SRKW OZERO SRl(W VALID SRKl!i ¥AL.ID SRKiol OZERO SRKW VALlO SRKW VALID SRKl'I oJALIO SRKW M M M K PPGTBL K .,PGT6L K PPGTRL K PPGT8L ACTIVE ACTIVE ACTIVE ACTIVE 87 87 87 87 0!4 1 ~4 1 1 1 04 [,llJ 0301?-0000 030Ql242A 033FFF'FF 03"1!02&4B 800CD3&1.1 800CD3&8 800CD3bC 80"'CD370 0000 0035 011121 "1001ll 3: 00E3 0082 > 1-1 c ::0 K tZl (/) I( K I I K K I< C> c I( K 1-1 0 j( tZl c-i K I<. 1-1 z K K tZl I( (/) K > z K K 0 K K tZl :>< K K > 3: I( "'O I( M K i:>PGT~L I( P"i,T8L ACT IVE ACTIVE 87 87 ACTIVE ACTIVE ACTIVE 87 87 87 I'll.I 04 1 1 ;,,J3FFFFF a3000000 800CD3DC 800CD3E0 0003 0040 1 1 1 030001i'l00 0300"'"'00 800CD3E8 800CD3EC 800CD3F0 0000 111000 01485 004E I( M M "' l'Z] c-i K I( M tZl 0Ql4D 00E0 i( K. J:)?G TBL P?GTBL. I< PPGTBL I<: i214 01.1 04 03~00000 PAGES Figure 6-2 t-< ""'3 800C03&4 D40000A7 8~~CD3&8 0400041.16 B~~C03bC D40004A8 8~"1&9200 (/) (/) •••••••• 3 MILL PAGES 61110&8404.'\ 1100&6Mh1 Afi110&A80VI z G"l Page Table Display Sh9wing Invalid Location 800n9EOO 01d00 1111'1!4A 004B 0~'1C c-i t2l (/) ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES 6.3.3 Locating the Source of the Exception Because the line printer went offline and then online, the problem may exist in the driver code. To determine which driver might contain the faulty code, take the address contained in the PC on the stack and compare it with the bounds of each driver. 6.3.3.1 Finding the Driver Using the DPT List - The Driver Prologue Table (DPT) is a data structure that describes each driver. All the driver prologue tables form a linked list; each DPT is followed directly by driver code. The location IOC$GL DPTLIST contains the address of the first DPT. Figure 6-3 illustrates-the linked structure of the driver prologue tables • .... IOC$GL_DPTLIST DPT DPT DRIVER CODE DRIVER CODE DPT j L ... ... DRIVER CODE ---·-·- Figure 6-3 Linked List of Driver Prologue Tables Use the FORMAT command and specify the contents of IOC$GL DPTLIST as a parameter: SDA> FORMAT@IOCSGL_DPTLIST 00060~.)()() DF'T!l>L. .... FI... INK 80060!:.:;oA f:l0060!:50B noo6o!:_:;oc DPT$B .... TYPE DPT~>B .... l:~EFC DPT!l>B .... ADPTYPE DPTSB .... Fl... AGB f:!()()6()~.)()[I BOO!'.)F 400 :l.E ():I. ():I. o::?. B006 O!'.)OE B0060~5 l 0 DPT$W .... l.JCBS I ZE 80060~.:; :I.::?. DPT$W .... F~EINITTAB DPTSW .... UNLOAD DPT$T .... NAME B0060!7i :l 4 80060~5 :I. 6 OOFO DPT!~W .... IN I TTAB 00:1.F SDA> 6-9 0062 0000 • DF'Dl=i::t:VEF~" ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES The formatted display identifies the size of the driver by the DPT$W SIZE. symbol Calculate the end of the driver by adding the value of DPT$W SIZE to the starting address of the DPT for the driver. The driver code begins just after the DPT. Next, determine whether the address in the PC falls within the range of addresses that contain the driver code. If the address is not part of the driver you are examining, continue on to the next driver by stepping through the linked list with the FORMAT command (see the description of the FORMAT command in Chapter 5 for an example of the commands used to step through a linked list of data structures). In this example, the instruction that caused the exception falls within the range of addresses that contain the line printer driver code. 6.3.3.2 Calculating the Offset into the Driver - Once you have identified the driver, you can locate the instruction in the source code by subtracting the starting address of the driver prologue table from the address contained in the PC. Match the resulting offset with the offsets in the driver code listing. After you have located the routine that caused the exception, you should examine memory to make sure that the instruction in the routine matches the instruction that signaled the exception. 6.3.4 Finding the Problem within the Routine Examine the line printer driver code. The instruction that caused the exception is MOVB (R3)+,(RO), as shown in Figure 6-4. To check the contents of R3, use the SHOW CRASH command. The invalid virtual address 80069EOO is indeed stored in R3. 6-10 °'I I-' I-' 029F 480 START NEXT OUTPUT SEQUENCE 029F 481 029F 482 so S4 02 Cl 029F 483 10$: ADDL3 #LP DBR,R4,RO ;CALCULATE ADDRESS OF DATA BUFFER REGISTER Sl 6C AS 3C 02A3 484 MOVZWL UCBSW BOFF(RS) ,Rl ;GET NUMBER OF CHARACTERS REMAINING 8080 8F BO 02A7 48S MOVW #AX80SO,R2 ;GET CONTROL REGISTER TEST MASK S2 08 11 02AC 486 BRB 2S$ ; 64 S2 B3 02AE 487 20$: BITW R2,(R4) ;PRINTER READY OR HAVE PAPER PROBLEM? . 08 lS. 02Bl 488 BLEQ 30$ ;IF LEQ NOT READY OR PAPER PROBLEM ';~~~11~J{;.~:1;,:~;~\k.%'.1,'.:\~J~i~1'tJ;:1[;;;XJrJ(t~Jil:,l:10;;:r:\;~L:t~~;\;.,\:;i;.~~;~~;. \·;~'t~;~:i;;:~v~;;;~\;'.j{'.:h:\:;!,~'.;,'].'(g~)::.+::·i:::~~() .):r.t;,,·.;.:~.,:~:c~;X'rj~'~l:~'.\'.%:l~{~;Zt~h;;J~t1;~~\:l;'+'·)~'t'J E '5.'.r CitA;gZ\.crT ER FS Sl F4 02B6 490 2S$: SOBGEQ Rl,20$ ;ANY MORE CHARACTERS TO OUTPUT? 70 11 02B9 491 BRB 70$ 02BB 492 02BB 493 02BB 494 PRINTER IS NOT READY OR HAS PAPER PROBLEM 02BB 49S 02BB 496 21 12 02BB 497 30$: 40$ ;IF NEQ PAPER PROBLEM BNEQ Sl 01 Al 02BD 498 ;SAVE NUMBER OF CHARACTERS REMAINING ADDW3 #1,Rl,UCBSW_BOFF(RS) 6C AS 02CO 02C2 499 DSBINT DISABLE INTERRUPTS 64 40 8F 88 02C8 BISB #AX40,LP CSR(R4) soo SF.T INTERRUPTS 02CC WFIKPCH 40$,#12 SOl WAIT FOR INTERRUPT 0206 S02 IOFORK CREATE A FORK PROCESS Cl 11 02DC S03 10$ BRB 02DE S05 02DE S06 PRINTER HAS PAPER PROBLEM 02DE S08 7A AS 94 02DE S09 40$: CLRB ;CLEAR OFFLINE COUNTER UCB$B LP OFLCNT(RS) Sl 01 Al 02El ;SAVE NUMBER OF CHARACTERS REMAINING SlO ADDW3 #l,Rl~UCB$W_BOFF(RS) 6C AS 02E4 64 B4 02E6 Sll SO$: CLRW LP CSR(R4) ;DISABLE PRINTER INTERRUPT 02E8 Sl2 SET IPL UCB$B FIPL(RS) ;LOWER TO FORK LEVEL 64 BS 02EC LP CSR(R4) ;PRINTER STILL HAVE PAPER PROBLEM? Sl3 TSTW AF 14 02EE BGTR .1 lOS ; IF GTR NO 3E S8 AS 03 EO 02FO SlS BBS #UCB$V CANCEL,UCB$W STS(RS) ,80$ ;IF SET, CANCEL I/O OPERATION 01 OF 9D 02FS Sl6 ACBB #1S,#l~UCB$B_LP_OFLCNT(RS) ,80$ ;SKIP UNTIL TIMEOUT 0017 7A AS 02F8 7A AS 94 02FC 517 CLRB UCBSB LP OFLCNT(RS) ;RESET COUNTER BB 18 02FF 518 PUS HR rM<RJ ,R4> ;SAVE REGISTERS S4 OS 9A 0301 Sl9 MOVZBL #MSGS DEVOFFLIN,R4 ;SET UP MESSAGE TYPE OOOOOOOO'GF 9E 0304 520 GASYSSGL_OPRMBX,R3 MOVAB ;ADDRESS TARGET MAILBOX 53 030A Figure 6-4 Location of Instruction in Driver Routine ~ > t1 i< N H z Cl en en i< i-3 Cz:I 3: "z:1 > H t1 c: ::0 Cz:I Cf) I I Cl c: H 0 Cz:I t1 H z Cz:I en ~ 0 Cz:I >< > 3: l"O t1 ts:1 en ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES 6.3.4.l Stepping through the Routine - The MOVB instruction is part of a routine that reads characters from a buffer and writes them out to the line printer. The routine executes the following steps for each character in the buffer: • The driver gets a character from the buffer, moves it to the device data register (pointed to by RO in this example), and auto increments. • The preceding step is repeated until the byte count exhausted or the printer signals that it is NOT READY. • If the printer gives the NOT READY signal, for an interrupt from the printer. • When the printer becomes READY, it interrupts the the loop is resumed. the driver driver is waits and Examine the code to determine which variables control the loop. In this case, the byte count (BCNT) is the number of characters in the buffer. This value controls the number of times the loop is executed. (BCNT is set by a Function Decision Table (FDT) routine to the number of characters in the buffer.) The number of characters left to be printed is represented by the byte offset (BOFF). Because the exception is an access violation, you can infer that R3 is outside the range of the buffer. It seems likely that the MOVB instruction has executed too many times, that is, a number of times greater than BCNT. To prove this theory, you must examine BOFF and BCNT. 6.3.4.2 Checking the Values of Key Variables - If you examine the code, you can see that RS contains the address of the Unit Control Block (UCB) of the device that was active when the system failed. If you use the FORMAT command to display the contents of RS, SDA will display the values of BCNT and BOFF: SDA> FORMAT @R5 8005D160 8005[1164 8005[1:1.68 8005Dl.6A 8005D16B 800~3D1C8 EtO()$~•fcc·•····•· ....... ao.<>,~snJ¢F{ ,. 800~5D :I. DO 800~iD1D:L 800~5[11 [12 800039A8 UCB$L_RQFL UCB$L_FQFL LJCB$L._RQBL UCB$L._FQBL UCB$W_SIZE UCB$B .... TYF'E UCB$R.SIF'L 800039A8 0080 10 ()8 UCB$l.. .... SVAPTE .,:; ;:Q~£!,~~n~~~~FJ:::.. ~ .~lf.;I1~l4Jr. ~C~f'{L,. UCB!t>B .... El~TCNT UCB$B .... El:~TMAX UCB$W .... E1:~1~CNT ()() ()() () ()()() SDA> 6-12 ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES If you have only one line printer in your system configuration, you need not use the FORMAT command. Issue the SHOW DEVICE command with device code LP as the parameter; since there is only one line printer device connected to the VAX-11 processor there is only one line printer UCB to display. The output produced by the FORMAT @R5 command shows that BOFF contains a value greater than BCNT, when it should be the reverse. This means that an illegal value is being stored in BOFF. Thus, the value of BOFF is not the number of remaining characters in the buffer but some meaningless number that eventually causes the system to fail when it tries to access a null page (unreadable to all access modes). 6.3.4.3 Identifying and Fixing the Defective Code - Examine the line printer driver code again to locate all instructions that modify BOFF. The value changes in two important places. 1. Immediately after the driver detects that the printer is ready. not 2. When the wait for interrupt (WFIKPCH) routine timeout count of 12 seconds is exhausted. At this time, Rl+l is stored in BOFF. The second modification to BOFF should not be made because R4 and RS are the only registers that retain their values after the WFIKPCH routine is executed. To correct the problem, change the WFIKPCH line to transfer control to 50$ rather than 40$ (see Figure 6-5) if the timeout count expires. 6-13 so S4 Sl S2 6C 8080 64 60 FS 02 AS 8F 08 S2 08 83 Sl 70 Cl 3C BO 11 B3 lS 90 F4 11 21 Sl 01 6C AS 64 °"I ....... 12 Al 40 8F 88 Cl 11 7A AS Sl 01 6C AS 64 94 Al .ti. 64 AF 3E S8 AS 03 01 OF 0017 7A AS 7A AS 18 S4 OS OOOOOOOO'GF S3 B4 BS 14 EO 90 94 BB 9A 9E 029F 029F 029F 029F 02A3 02A7 02AC 02AE 02Bl 0283 02B6 02B9 02BB 02BB 02BB 02BB 02BB 02BB 02BD 02CO 02C2 02C8 02CC 02Dl1 02DC 02DE 02DE 02DE 02DE 02El 02E4 02E6 02E8 02EC 02EE 02FO 02FS 02F8 02FC 02FF 0301 0304 030A 480 ; START NEXT OUTPUT SEQUENCE 481 ; 482 483 10$: ADDL3 #LP DBR,R4,RO ;CALCULATE ADDRESS OF DATA BUFFER REGISTER 484 MOVZWL ;GET NUMBER OF CHARACTERS REMAINING UCBSW BOFF(RS) ,Rl 48S ;GET CONTROL REGISTER TEST MASK MOVW #"X80SO ,R2 2S$ 486 BRB ' ;PRINTER READY OR HAVE PAPER PROBLEM? 487 20$: BITW R2,(R4) 30$ ;IF LEQ NOT READY OR PAPER PROBLEM BLEQ 488 (R3)+, (RO) ;OUTPUT NEXT CHARACTER 489 MOVB 490 2S$: Rl,20$ SOBGEQ ;ANY MORE CHARACTERS TO OUTPUT? BRB 70$ 491 ; 492 49 3 ; 49 4 ; PRINTER IS NOT READY OR HAS PAPER PROBLEM 49S ; 49fl 40$ 497 30$: BNEQ ;IF NEQ PAPER PROBLEM 498 ADDW3 #1,Rl,UCBSW_BOFF(RS) ;SAVE NUMBER OF CHARACTERS REMAINING 499 DSBINT BISB #AX40,LP CSR(R4) soo SOl WFIKPCH l4,$l,#12 S02 IO FORK BRB S03 SOS ; r-------SOfi ; I PRINTER HAS PAPER PROBLEM S08 S09 40$: CLRB UCB$B LP OFLCNT(R5) SlO ADDW3 #l,Rl~UCB$W_BOFF(RS) t ;DISABLE INTERRUPTS ; SET INTERRUPTS ;WAIT FOR INTERRUPT ;CREATE A FORK PROCESS > z > I:""' i< N H z Cl 00 i< 00 ""'3 trJ 3: l'Zj > 1-1 I:""' c: ::0 trJ 00 Cl ;CLEAR OFFLINE COUNTER ;SAVE NUMBER OF CHARACTERS REMAINING c: H 0 trJ I:""' Sll SO$: .. Sl2 Sl3 .1 SlS Sl5 ICLRW SET IPL TSTW BGTR BBS ACBB LP CSR(R4) ;DISABLE PRINTER INTERRUPT UCB$B FIPL(RS) ;LOWER TO FORK LEVEL LP CSR (R4) ;PRINTER STILL HAVE PAPER PROBLEM? lOS ; IF GTR NO #UCB$V CANCEL,UCB$W STS(RS) ,80$ ;IF SET, CANCEL I/O OPERATION #lS,#l~UCBSB_LP_OFLCNT(RS) ,80$ ;SKIP UNTIL TIMEOUT Sl7 Sl8 Sl9 S20 CLRB PUS HR MOVZBL MOVAB UCB$B LP OFLCNT(RS) rM<R} ,R4> #MSG$ DEVOFFLIN,R4 GASYSSGL_OPRMBX,R3 1-1 z trJ 00 > z 0 trJ Figure 6-5 ;RESET COUNTER ;SAVE REGISTERS ;SET UP MESSAGE TYPE ;ADDRESS TARGET MAILBOX Location of Defective Code in Driver Routine >C .,,r>3: trJ 00 ANALYZING SYSTEM FAILURES -- GUIDELINES AND EXAMPLES 6.4 INDUCING A SYSTEM FAILURE If the operating system is not performing well and you want to create a system dump file so that you can examine it later, you can induce a system failure by typing the following commands at the console: .> .> .> EXAM I NE P ~;;I... >>> DEPOSIT PC = -1 >>> DEPOSIT PSI... = 1FOOOO >>> CONTINUE The system responds to the HALT command by displaying the PC; it responds to the EXAMINE PSL command by displaying the PSL. Immediately after you type this commans sequence, the system signals a fatal bugcheck, writes information to SYSDUMP.DMP, shuts itself down, and automatically reboots. Make a note of the PC and PSL displayed on the console before you perform the procedure outlined above. When you induce a system failure, the values you deposit into these registers destroy their previous contents, and you will need the pre-failure values contained in the PC and PSL when you begin to examine the system dump file, as described in Section 6.1. 6-15 CHAPTER 7 SDA ERROR MESSAGES SDA error messages can be divided into messages that occur during SDA initialization and messages that occur during SDA operation. Messages that appear before SDA is initialized indicate problems encountered by SDA as it tries to run. SDA prints the message but does not execute. Messages that appear when SDA is operating concern problems encountered during command execution. 7.1 INITIALIZATION ERROR MESSAGES The dump file contains no valid dumP This message appears if SDA cannot read the contents of the system dump file. The file may be unreadable because the data is bad or because the file is empty. The dump onlhl contains n Pases of Phhlsical memorhl This message occurs if the system dump file is not large enough to accommodate all of physical memory. The number of physical pages SDA can analyze is represented by n. To change the size of the system dump file, see Section 2.1. Shlmbol swmbol-name not found in SDA shlmbol table This message appears if SDA cannot find a symbol in file which is vital to its initialization. 7.2 the SYS.STB OPERATIONAL ERROR MESSAGES Invalid block thlPe in specified block This message appears if SDA is unable to identify the block type of a particular block. The invalid block type message most usually occurs when the FORMAT command tries to identify a block type using a byte offset. See the description of the FORMAT command in Chapter 5 for further information about byte offsets. No "block-twpe• swmbols found to format this block This message appears if SDA cannot locate the symbols format a block as a particular block type. You may need to use the READ command to include block type symbols in the SDA symbol table. 7-1 the needed to specific SDA ERROR MESSAGES No such Process This message occurs if the process name specified in a SHOW PROCESS or SET PROCESS command refers to a process that does not exist. Process swapped out This message occurs if the process name specified in a SHOW PROCESS or SET PROCESS command represents a process that was swapped out of the balance set when the system failed. Unable to access location location This message indicates that SDA is unable to read a certain location. The inaccessible location may be an implied reference to memory made during the execution of an SDA command. Unknown symbol s~mbol-name This message occurs if SDA cannot identify a specified symbol. Unknown twPe of GSD entry: GSD This message occurs when SDA encounters a type of global symbol that it does not recognize, either in the SYS.STB file or in a file specified in the READ command. The type of global symbol definition GSD is represented by a byte. This message can occur during either initialization or operation of SDA, and usually means that the file being read has been corrupted. 7-2 INDEX A Abbreviated commands, 4-1 Access violation, 6-2 ACP queue, 5-26 Active processes, displayed, 5-49 Add symbols to table, 5-3 Analyzing system failures, 6-1 Ancillary control process queue block (AQB), 5-26 Arithmetic operations, 4-3 ASCII text, and quotation marks, 5-3 Assigning values to symbols, 5-3 Asterisk (*), to examine running system, 3-2 Commands, (Cont.) SHOW PFN DATA, 5-33 SHOW POOL, 5-36 SHOW PROCESS, 5-39 SHOW STACK, 5-46 SHOW SUMMARY, 5-49 SHOW SYMBOL, 5-51 Compute, value of expression, 5-5 Conditions, and fatal bugcheck, 6-2 Contents, location displayed, 5-6 Controller data structures, 5-24 Copy command, 5-2 Creating, symbols, 4-3 Current process, 5-19 B D Bad page list, 5-33 Base, specification of numeric, 4-2 Binary operators, 4-3 Block type, 5-11 byte, 5-11 symbols, 5-12 Blocks, formatted, 5-12 Byte ranges, displayed as, 5-8 Bugcheck, fatal, 6-1 identifying, 6-6 Decimal, values displayed, 4-2 Debugging system failure, 6-6 Default file specification, for system dump file, 3-1 Default radix, 4-2 Defective code, identifying and fixing, 6-13 DEFINE command, 5-3 Device Data Block (DDB), 5-24 Device data structures displayed, 5-24 Device status information, 5-25 Device unit data structures, 5-24 Discontinue display, 5-10 Displayed, active processes, 5-49 contents of location, 5-6 formatted block, 5-11 global page table, 5-31 hardware process context, 5-39 IRP pool, 5-36 nonpaged dynamic storage pool, 5-36 paged dynamic storage pool, 5-36 PFN data base, 5-33 physical page, 5-33 process regions, 5-6 process working set list, 5-40 software process control block, 5-39 stacks, 5-46 system regions, 5-6 system-wide interrupt stack, 5-46 Dollar sign ($), to indicate foreign command, 3-2 Driver dispatch table (DDT), 5-24 c Channel Request Block (CRB), 5-24 Characters, in arithmetic operations, 4-3 Colon (:), in EXAMINE command, 5-6 Command format, 4-1. See also HELP command Commands, COPY, 5-2 DEFINE, 5-3 EVALUATE, 5-5 EXAMINE, 5-6 EXIT, 5-10 FORMAT, 5-11 HELP, 5-14 optional, to produce SDA listing, 3-4 READ, 5-15 REPEAT, 5-17 SET OUTPUT, 5-18 SET PROCESS, 5-19 ·SHOW CRASH, 5-21 SHOW DEVICE, 5-24 SHOW PAGE_TABLE, 5-29 Index-1 INDEX Driver, finding, using DPT list, 6-9 calculating end of, 6-10 calculating offset into, ~-10 Driver Prologue Table (DPT) , 6-9 DUMPBUG parameter, 2-1 Dump file, copy of, 5-2 flag, 3-4 Global page table, 5-31 Global symbols, 3-4 and DEFINE command, 5-3 and READ command, 5-15 copying to symbol table, 5-15 displayed, 5-51 symbol table, 5-51 value displayed, 5-51 H E Equal sign (=) , in expression, 5-3 Error messages, initialization, 7-1 operational, 7-1 Escape key (<ESC>), and REPEAT command, 5-17 EVALUATE command, 5-5 Evaluating expressions, 5-5 EXAMINE command, 5-6 Examine, data structures, 5-19 location contents, 5-6 memory regions, 5-6 running system, 3-2 sequence of memory locations, 5-17 Exceptions, fatal, 6-2 EXIT command, 5-10 Expressions, as command parameters, 4-2 as parameter to the DEFINE command, 5-3 F Fatal bugcheck, 6-1 conditions, 6-2 Finding problem in routine, 6-10 Fixing, and identifying defective code, 6-13 Flag, dump file and SDA command execution, 3-4 Foreign command, invoking SDA with, 3-2 Fork block, 5-25 FORMAT command, 5-11 Formatting blocks, 5-12 lists of blocks, 5-12 linked lists, 5-12 Free page list, 5-33 G General purpose registers, contents, 5-21 Hardware maintenance register contents, 5-21 Hardware process context, 5-39 HELP command, 5-14 He.xadecimal expression, how SDA evaluates, 5-5 Hexadecimal values displayed, 4-2 Identifying, and fixing defective code, 6-13 bugcheck, 6-6 exception, 6-6 Illegal page faults, 6-5 Index number, 5-19 Inducing system failure, 6-15 Initialization error message, 7-1 Interrupt Dispatch Block (IDB), 5-24 I/O request packet, 5-25 I/O request packet pool, 5-36 Invoking SDA, 3-1 as a foreign command, 3-2 K Key variables, checking values of, 6-12 L Line of code, and bugcheck, ~-1 Linked lists, formatting, 5-12 Linked structure of DPT, 6-9 List, data structures, 5-24 process's hardware context, 5-40 Local symbol, displayed, 5-51 Local symbol value, displayed, 5-51 Location, contents displayed, 5-6 examine by symbol, 3-4 parameters, 5-6 Index-2 INDEX M Printing, Mechanism vector, 6-3 Modified page list, 5-33 ~oving process context to specific process, 5-19 Multiple qualifiers, 4-1 (Cont.) nonpaged dynamic storage pool, 5-36 paged dynamic storage pool, 5-37 program region, 5-7 summary of the pools, 5-37 writeable system region, 5-7 Problem, finding, in routine, 6-10 Process, context, 5-19 N control block (PCB), 5-19 Nested parenthetical expressions, header (PHD), 5-19 4-3 identification (PID), 5-19 Nonpaged dynamic storage pool, information, in SHOW CRASH 5-36 command, 5-21 Nonprinting characters, represented regions, displayed, 5-6 by period, 5-3 register contents, 5-21 Processor registers, loss of contents during SYS$DMP.DMP, 0 3-2' 3-3 Object module file, 5-15 extracting global symbols from, Q 5-15 Offset, into code, 6-1 Omitted location parameter, 5-6 Operational error messages, 7-1 Operating system information, in SHOW CRASH command, 5-21 Qualifier, 4-1 abbreviated, 4-1 multiple, 4-1 Quotation marks (" "),around ASCII text, 5-3 p R Paged dynamic storage pool, 5-36 Page faults, illegal, 6-5 Page file quota, 3-1 /PAGE TABLE, in SHOW PROCESS command, 5-41 Page table entries, displayed, Radix operators, 4-2 Radix, specifying SDA use, 4-2 READ command, 5-15 to create symbols, 4-3 Reading dump file, prerequisites for, 3-1 Register contents, 5-21 REPEAT command, 5-17 Return to interactive display, in SET OUTPUT command, 5-18 Routine, finding problem in, 6-10 stepping through, 6-12 RUN command, invoking SDA with, 5-29 Parameter, as file specification, 4-1 expressions as, 4-2 Parentheses, as special operators, 4-3 Period (.),as nonprinting characters, 5-3 PFN data base, displayed, 5-33 Physical page, displayed, 5-33 information, 5-30 /PO, as EXAMINE qualifier, 5-7 /Pl, as EXAMINE qualifier, 5-7 Preserving a system dump file, 5-2 Printing, both program and control regions, 5-7 control region, 5-7 I/O request packet pool, 5-36 3-1 Running system, examination of, 3-2 s Sample crash analysis, 6-9 Screen overflow prompt, and exit command, 5-10 SDA, definition, 1-1 command format, 4-1 in site-specific start-up procedure, 3-4 Index-3 INDEX SDA, definition, (Cont.) operation. See HELP command utility. See HELP command SET PROCESS command, 5-19 SHOW CRASH command, 5-46 SHOW CRASH display~ 3-3 SHOW DEVICE command, 5-24 SHOW PAGE TABLE command, 5-29 SHOW PFN DATA command, 5-33 SHOW POOL command, 5-36 SHOW PROCESS command, 5-39 SHOW STACK command, 5-46 SHOW SUMMARY command, 5-49 SHOW SYMBOL command, 5-51 Signal vector, 6-4 Signal vector, examination, 6-7 Slash (/), used with qualifier, 4-1 Software process context, 5-39 Space, in expression, 5-3 Special characters, 4-3 Special operators, 4-3 Special register contents, 5-21 Special symbols, 4-3. See also DEFINE and READ commands Stack configuration for illegal page faults, 6-5 Stacks, displayed, 5-46 Stepping through routine, 6-12 Step through linked list, 5-17 Stopping SDA, 5-10 SWAPFILES command procedure, 2-1 SYS$DISK default, 3-1 Symbol evaluation, 5-5 Symbols, add to table, 5-3 assign value to, 5-3 defined, 4-3 global, 5-3 Symbol table, displayed, 5-51 System dump file, 2-1 calculating size of, 2-1 creating new, 2-1 default file specification, 3-1 reading, 3-1 saving, 2-1 System failure, 1-1 debugging, 6-6 causes while examining running system, 3-2 inducing, 6-15 solving, 6-1 System map file, SYS$SYSTEM:SYS.MAP, 6-1 System parameter. See parameter System process control block, 5-39 System region, displayed, 5-6 System-wide interrupt stack, displayed, 5-46 T Table of contents, SDA creates, 5-18 u Unary operators, 4-2 Underline ( ), 4-3 Unit controY-block, 5-25 v Values, checking, of key variables, 6-12 Vectors, 6-2 mechanism, 6-3 signal, 6-4 Violation, access, 6-2 Virtual memory, and SET PROCESS command, 5-19 Virtual page information, 5-29 Volume control block, 5-26 w Writing output to a file, 5-18 Index-4 VAX/VMS System Dump Analyzer Reference Manual AA-J526A-TE READER'S COMMENTS NOTE: This form is for document comments only. DIGITAL will use comments submitted on this form at the company's discretion. If you require a written reply and are eligible to receive one under Software Performance Report (SPR) service, submit your comments on an SPR form. Did you find this manual understandable, usable, and well-organized? Please make suggestions for improvement • . ~ c rn c 0 0 Did you find errors in this manual? page number. If so, specify the error and the Please indicate the type of reader that you most nearly represent. [] Assembly language programmer [] Higher-level language programmer [] Occasional programmer (experienced) [] User with little programming experience [] Student programmer [] Other (please specify)~~~~~~~~~~~~~~~~~~ CitY~~~~~~~~~~~~~~State~~~~~~-Zip Code~~~~~~ or - - DoNotTear-FoldHereandTape - - - - - - - - - - ~nmnomn 11111 POSTAGE WILL BE PAID BY ADDRESSEE BSSG PUBLICATIONS TW/A14 DIGITAL EQUIPMENT CORPOR.ATION 1925 ANDOVER STREET TEWKSBURY, MASSACHUSETTS Do Not Tear - Fold Here 01876 No Postage Necessary if Mai led in the United States
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies