Document revision date: 19 July 1999 | |
Previous | Contents | Index |
%SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]RECOVERY_UNIT_SERVICES.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]RMS.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]CPULOA.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]LMF$GROUP_TABLE.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]SYSLICENSE.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]SYSGETSYI.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]SYSDEVICE.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]MESSAGE_ROUTINES.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]EXCEPTION.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]LOGICAL_NAMES.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]SECURITY.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]LOCKING.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]PAGE_MANAGEMENT.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]WORKING_SET_MANAGEMENT.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]IMAGE_MANAGEMENT.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]EVENT_FLAGS_AND_ASTS.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]IO_ROUTINES.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]PROCESS_MANAGEMENT.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]ERRORLOG.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]PRIMITIVE_IO.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]SYSTEM_SYNCHRONIZATION.EXE;1 %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]SYSTEM_PRIMITIVES.EXE;1 |
This READ command brings all global symbols defined in the modules of
SYS$SYSTEM:SYS.EXE (as listed in Table SDA-13) into the SDA symbol
table. Included in its results is the work performed by the READ
commands illustrated in the two previous examples. The READ/EXECUTIVE
command, however, does not load those symbols contained in the modules
described in Table SDA-12.
REPEAT
Repeats execution of the last command issued. On terminal devices, the KP0 key performs the same function as the REPEAT command.
REPEAT
None.
None.
The REPEAT command is useful for stepping through a linked list of data structures or for examining a sequence of memory locations.
#1 |
---|
SDA> FORMAT @IOC$GL_DEVLIST 8000B540 DDB$L_LINK 8000B898 8000B544 DDB$L_UCB 8000B5E0 8000B548 DDB$W_SIZE 0044 . . . 8000B554 DDB$B_NAME_LEN 03 DDB$T_NAME "OPA" . . . SDA> FORMAT @. 8000B898 DDB$L_LINK 8000BBE0 8000B89C DDB$L_UCB 8000B9E0 8000B8A0 DDB$W_SIZE 0044 . . . 8000B8AC DDB$B_NAME_LEN 03 DDB$T_NAME "MBA" SDA> [KP0] 8000BBE0 DDB$L_LINK 807F85C0 8000BBE4 DDB$L_UCB 8000BC80 8000BBE8 DDB$W_SIZE 0044 . . . 8000BBF4 DDB$B_NAME_LEN 03 DDB$T_NAME "NLA" |
This series of FORMAT commands pursues the chain of device data blocks (DDBs) from the system global symbol IOC$GL_DEVLIST. The second FORMAT command is constructed so that it refers to the contents of the address at the current location (see Section 7.2.4 for a discussion of SDA symbols). Subsequently, pressing the KP0 key---or issuing the REPEAT command---is sufficient to display each DDB in the device list.
#2 |
---|
SDA> SHOW CALL_FRAME Call Frame Information ---------------------- Call Frame Generated by CALLG Instruction Condition Handler 7FFE7D78 00000000 SP Align Bits = 00 7FFE7D7C 00000000 Saved AP 7FFE7D80 7FFE7DC0 CTL$GL_KSTKBAS+005C0 Saved FP 7FFE7D84 7FFE7D94 CTL$GL_KSTKBAS+00594 . . . SDA> SHOW CALL_FRAME/NEXT_FP Call Frame Information ---------------------- Call Frame Generated by CALLS Instruction Condition Handler 7FFE7D94 00000000 SP Align Bits = 00 7FFE7D98 20FC0000 Saved AP 7FFE7D9C 7FFED024 CTL$GL_KSTKBAS+005E4 Saved FP 7FFE7DA0 7FFE7DE4 SYSTEM_PRIMITIVES+020AA . . . SDA> REPEAT Call Frame Information ---------------------- Call Frame Generated by CALLG Instruction Condition Handler 7FFE7DE4 00000000 . . . |
The first SHOW CALL_FRAME displays the call frame indicated by the current FP value. Because the /NEXT_FP qualifier to the instruction displays the call frame indicated by the saved FP in the current call frame, you can use the REPEAT command to repeat the SHOW CALL_FRAME/NEXT_FP command and follow a chain of call frames.
Scans a range of memory locations for all occurrences of a specified value.
SEARCH [/qualifier] range[=]expression
range
Location in memory to be searched. A location can be represented by any valid SDA expression (see Section 7.2). To search a range of locations, use the following format:
m:n Range of locations to be searched, from m to n m;n Range of locations to be searched, starting at m and continuing for n bytes expression
Indication of the value for which SDA is to search. SDA evaluates the expression and searches the specified range of memory for the resulting value. For a description of SDA expressions, see Section 7.2.
/LENGTH={LONGWORD|WORD|BYTE}
Specifies the size of the expression value that the SEARCH command uses for matching. If you do not specify the /LENGTH qualifier, the SEARCH command uses a longword length by default./STEPS={QUADWORD|LONGWORD|WORD|BYTE}
Specifies the granularity of the search through the specified memory range. After the SEARCH command has performed the comparison between the value of expression and memory location, it adds the specified step factor to the address of the memory location to determine the next location to undergo the comparison. If you do not specify the /STEPS qualifier, the SEARCH command uses a step factor of one longword.
SEARCH displays each location as each value is found.
#1 |
---|
SDA> SEARCH GB81F0;500 60068 Searching from 800B81F0 to 800B86F0 in LONGWORD steps for 00060068... Match at 800B8210 SDA> |
The SEARCH command finds the value 0060068 in the longword at 800B8210.
#2 |
---|
SDA> SEARCH/STEPS=BYTE 80000000;1000 6 Searching from 80000000 to 80001000 in BYTE steps for 00000006... Match at 80000A99 SDA> |
The SEARCH command finds the value 00000006 in the longword at 80000A99.
#3 |
---|
SDA> SEARCH/LENGTH=WORD 80000000;2000 6 Searching from 80000000 to 80002000 in LONGWORD steps for 0006... Match at 80000054 Match at 800001EC Match at 800012AC Match at 800012B8 SDA> |
The SEARCH command finds the value 0006 in the longword locations 80000054, 800001EC, 800012AC, and 800012B8.
Selects a processor to become the SDA current CPU.
SET CPU cpu-id
cpu-id
Numeric value from 0016 to 1F16 indicating the identity of the processor to be made the current CPU. If you specify a value outside this range or a cpu-id of a processor that was not active at the time of the system failure, SDA displays the following message:
%SDA-E-CPUNOTVLD, CPU not booted or CPU number out of range
None.
When you invoke SDA to examine a system dump, the SDA current CPU context defaults to that of the processor that caused the system to fail. When analyzing a crash from a multiprocessing system, you might find it useful at times to examine the context of another processor in the configuration.The SET CPU command changes the current SDA CPU context to that of the processor indicated by cpu-id. The CPU specified by this command becomes the current CPU for SDA until you exit SDA or change SDA CPU context by issuing one of the following commands:
The following commands also change SDA CPU context if the name or index number (nn) refers to a current process:
- SET PROCESS name
- SET PROCESS/INDEX=nn
- SHOW PROCESS name
- SHOW PROCESS/INDEX=nn
Changing CPU context can cause an implicit change in process context under the following circumstances:
- If there is a current process on the CPU made current, SDA changes its process context to that of that CPU's current process.
- If there is no current process on the CPU made current, SDA process context is undefined and no process-specific information is available until you set SDA process context to that of a specific process.
See Section 4 for further discussion on the way in which SDA maintains its context information.
You cannot use the SET CPU command when examining the running system with SDA.
$ ANALYZE/CRASH SYS$SYSTEM:SYSDUMP.DMP Dump taken on 22-FEB-1993 14:22:17.66 NOBUFPCKT, Required buffer packet not present SDA> SHOW CPU CPU 01 Processor crash information ---------------------------------- CPU 01 reason for Bugcheck: NOBUFPCKT, Required buffer packet not present . . . SDA> SHOW STACK CPU 01 Processor stack ---------------------- Current operating stack (INTERRUPT): 80DAFB4C 8018BC20 80DAFB50 7FFC653E . . . SDA> SET CPU 00 SDA> SHOW CPU CPU 00 Processor crash information ---------------------------------- CPU 00 reason for Bugcheck: CPUEXIT, Shutdown requested by another CPU . . . SDA> SHOW STACK CPU 00 Processor stack ---------------------- Current operating stack (INTERRUPT): 8016ABD8 00011F4C 8016ABDC 00010F56 . . . SDA> SHOW CRASH System crash information ------------------------ Time of system crash: 22-FEB-1993 14:22:17.66 . . . SDA> SHOW STACK CPU 01 Processor stack ---------------------- Current operating stack (INTERRUPT): 80DAFB4C 8018BC20 80DAFB50 7FFC653E . . . |
The series of SHOW CPU and SHOW STACK commands in this example illustrates the switching of CPU context within an SDA session:
- When you first invoke SDA, it is, by default, within the CPU context of the processor that caused the crash (CPU 01). This is illustrated by the first set of SHOW CPU and SHOW STACK commands.
- The SET CPU 00 command explicitly changes SDA CPU context to that of CPU 00, as illustrated by the second sequence of SHOW CPU and SHOW STACK commands.
Note that a SHOW CPU 00 command would have the same effect as the two commands SET CPU 00 and SHOW CPU, changing the SDA CPU context in addition to displaying the processor-specific information. Unlike the SHOW CPU cpu-id command, no display is associated with the SET CPU cpu-id command.- The SHOW CRASH command resets the SDA CPU context to that of the processor that caused the crash (CPU 01).
Initiates or discontinues the recording of an SDA session in a text file.
SET [NO]LOG filespec
filespec
Name of the file in which you want SDA to log your commands and their output. The default filespec is SYS$DISK:[default_dir]filename.LOG, where SYS$DISK and [default-dir] represent the disk and directory specified in your last SET DEFAULT command. You must specify a file name.
None.
The SET LOG command echoes the commands and output of an SDA session to a log file. The SET NOLOG command terminates this behavior.There are the following differences between the SET LOG command and the SET OUTPUT command:
- When logging is in effect, your commands and their results are still displayed on your terminal. The SET OUTPUT command causes the displays to be redirected to the output file such that they no longer appear on the screen.
- If an SDA command requires that you press Return to produce successive screens of display, the log file produced by SET LOG will record only those screens that are actually displayed. SET OUTPUT, however, sends the entire output of all SDA commands to its listing file.
- The SET LOG command produces a log file with a default file type of .LOG; the SET OUTPUT command produces a listing file whose default file type is .LIS.
- The SET LOG command does not record output from the HELP command in its log file. The SET OUTPUT command can record HELP output in its listing file.
- The SET LOG command does not record SDA error messages in its log file. The SET OUTPUT command can record SDA error messages in its listing file.
- The SET OUTPUT command generates a table of contents, each item of which refers to a display written to its listing file. SET OUTPUT also produces running heads for each page of output. The SET LOG command does not produce these items in its log file.
Note that, if you have used the SET OUTPUT command to redirect output to a listing file, you cannot use a SET LOG command to direct the same output to a log file.
Redirects output from SDA to the specified file or device.
SET OUTPUT filespec
filespec
Name of the file to which SDA is to send the output generated by its commands. The default filespec is SYS$DISK:[default_dir]filename.LIS, where SYS$DISK and [default-dir] represent the disk and directory specified in your last SET DEFAULT command. You must specify a file name.
When you use the SET OUTPUT command to send the SDA output to a file or device, SDA continues to display the SDA commands that you enter but sends the output generated by those commands to the file or device that you specify. (See the description of the SET LOG command for a list of differences between SET LOG and the SET OUTPUT command.)When you finish directing SDA commands to an output file and want to return to interactive display, issue the following command:
SDA> SET OUTPUT SYS$OUTPUTIf you use the SET OUTPUT command to send the SDA output to a listing file, SDA builds a table of contents that identifies the displays you selected and places the table of contents at the beginning of the output file. The SET OUTPUT command formats the output into pages and produces a running head at the top of each page.
Selects a process to become the SDA current process.
SET PROCESS {process-name|/INDEX=nn|/SYSTEM}
process-name
Name of the process to become the SDA current process. The process-name is a string containing up to 15 uppercase or lowercase characters; numerals, the dollar sign ($) character, and the underscore (_) character can also be included in the string. If you include characters other than these, you must enclose the entire string in quotation marks (" ").
/INDEX=nn
Specifies the process to be made current by its index into the system's list of software process control blocks (PCBs). You can supply either of the following values for nn:
- The process index itself
- The process identification (PID) or extended PID longword, from which SDA extracts the correct index
To obtain these values for any given process, issue the SDA command SHOW SUMMARY.
/SYSTEM
Specifies that the system process be made the SDA current process. Each system (uniprocessor or multiprocessor) uses a single system process control block (PCB) and process header (PHD) as dummy structures, located in system space, that record the system working set, global section table, global page table, and other systemwide data.
When you issue an SDA command such as an EXAMINE command, SDA displays the contents of memory locations in its current process. To display any information about another process, you must change the current process with the SET PROCESS command.When you invoke SDA to analyze a crash dump, its process context defaults to that of the process that was current at the time of the crash. If the crash occurred on a multiprocessing system, SDA sets the CPU context to that of the processor that crashed the system and the process context to that of the process that was current on that processor.
When you invoke SDA to analyze a running system, its process context defaults to that of the current process; that is, the one executing SDA.
The SET PROCESS command changes the current SDA process context to that of the process indicated by name or /INDEX=nn. The process specified by this command becomes the current process for SDA until you exit SDA or change SDA process context by issuing one of the following commands:
In the analysis of a crash dump from a multiprocessing system, changing process context can involve a switch of CPU context as well. For instance, if you issue a SET PROCESS command for a process that is current on another CPU, SDA will automatically change its CPU context to that of the CPU on which that process is current. The following commands can have this effect if process-name or index number (nn) refers to a current process:
See Section 4 for further discussion on the way in which SDA maintains its context information.
SDA> SHOW PROCESS Process index: 0012 Name: NETACP Extended PID: 28C00092 ----------------------------------------------------------- Process status: 00149001 RES,WAKEPEN,NOACNT,PHDRES,LOGIN PCB address 800F1140 JIB address 801FDA00 PHD address 80477200 Swapfile disk address 01000F01 . . . SDA> SHOW SUMMARY Current process summary ----------------------- Extended Indx Process name Username State Pri PCB PHD Wkset -- PID -- ---- --------------- ----------- ----- --- -------- -------- ----- 28C00080 0000 SWINGER COM 0 80002100 80001F88 0 28C00081 0001 SWAPPER HIB 16 800023C8 80002250 0 28C00483 0003 KLINGON KLINGON MWAIT 6 8010FEA0 803F8600 323 28C00085 0005 ERRFMT SYSTEM COM 10 800B5A10 8061DA00 69 28C00087 0007 OPCOM SYSTEM LEF 7 800C7000 80227A00 71 . . . SDA>SET PROCESS ERRFMT SDA> SHOW PROCESS Process index: 0005 Name: ERRFMT Extended PID: 28C00085 -------------- Process status: 00040001 RES,PHDRES PCB address 800B5A10 JIB address 801E5C00 . . . |
The first SHOW PROCESS command shows the current process to be NETACP. The SHOW SUMMARY command shows the names of the processes that exist. The SET PROCESS command sets the current process to ERRFMT, as shown by the second SHOW PROCESS command. Note that the SET PROCESS command could also have been issued as one of the following:
SDA> SET PROCESS/INDEX=5 SDA> SET PROCESS/INDEX=801E5C00
Previous | Next | Contents | Index |
privacy and legal statement | ||
4556PRO_007.HTML |