Exits from an SDA display or from the SDA utility.
EXIT
None.
None.
If SDA is displaying information about a video display terminal---and if that information extends beyond one screen---SDA displays a screen overflow prompt at the bottom of the screen:4Press RETURN for more. SDA>If you want to discontinue the current display at this point, enter the EXIT command. If you want SDA to execute another command, enter that command. SDA discontinues the display as if you entered EXIT, and then executes the command you entered.
When the screen overflow prompt does not immediately precede the SDA> prompt, entering EXIT causes your process to cease executing the SDA utility. When you issue EXIT within a command procedure (either the SDA initialization file or a command procedure invoked with the @ command), SDA terminates execution of the procedure and returns to the SDA prompt.
Displays a formatted list of the contents of a block of memory.
FORMAT [/qualifier] location
location
Location of the beginning of the data block. The location can be given as any valid SDA expression.
/TYPE=block-type
Forces SDA to characterize and format a data block at location as the specified type of data structure. The /TYPE qualifier thus overrides the default behavior of the FORMAT command in determining the type of a data block, as described in the Description section. The block-type can be the symbolic prefix of any data structure.
The FORMAT command performs the following actions:Normally, you use the FORMAT command without the /TYPE qualifier. Used in this manner, it examines the byte in the structure that contains the type of the structure. In most data structures, this byte occurs at an offset of 0A16 into the structure. If this byte does not contain a valid block type, the FORMAT command halts with this message:
- Characterizes a range of locations as a system data block
- Assigns, if possible, a symbol to each item of data within the block
- Displays all the data within the block
%SDA-E-INVBLKTYP, invalid block type in specified blockHowever, if this byte does contain a valid block type, SDA checks the next byte (offset 0B16) for a secondary block type. When SDA has determined the type of block, it searches for the symbols that correspond to that type of block.If SDA cannot find the symbols associated with the block type it has found (or that you specified in the /TYPE qualifier), it issues this message:
No "block-type" symbols found to format this blockIf you receive this message, you might want to read additional symbols into the SDA symbol table and retry the FORMAT command. Most symbols that define data structures are contained within SYS$SYSTEM:SYSDEF.STB. Thus, you would issue the following command:
$ READ SYS$SYSTEM:SYSDEF.STBCertain data structures do not contain a block type at offset 0A16. If this byte contains information other than a block type---or the byte does not contain a valid block type---SDA displays this message:
%SDA-E-INVBLKTYP, invalid block type in specified blockTo format such a block, you must reissue the FORMAT command, using the /TYPE qualifier to designate a block-type.
The FORMAT command produces a 3-column display:
- The first column shows the virtual address of each item within the block.
- The second column lists each symbolic name associated with a location within the block.
- The third column shows the contents of each item in hexadecimal format.
SDA> READ SYS$SYSTEM:SYSDEF.STB SDA> FORMAT 800B81F0 800B81F0 UCB$L_FQFL 80000F10 UCB$L_RQFL UCB$W_MB_SEED UCB$W_UNIT_SEED 800B81F4 UCB$L_FQBL 800026A8 UCB$L_RQBL 800B81F8 UCB$W_SIZE 00E0 800B81FA UCB$B_TYPE 10 800B81FB UCB$B_FLCK 07 800B81FC UCB$L_ASTQFL 800F80E0 UCB$L_FPC UCB$T_PARTNER 800B8200 UCB$L_ASTQBL 8002CF80 UCB$L_FR3 800B8204 UCB$L_FIRST 8002CA00 UCB$L_FR4 UCB$W_MSGMAX UCB$W_MSGCNT . . .
From SYS$SYSTEM:SYSDEF.STB, the READ command loads into SDA's symbol table the symbols needed for formatting system data structures. The FORMAT command displays the data structure that begins at 800B81F016, a unit control block (UCB). If a field has more than one symbolic name, all such names are displayed. Thus, the field that starts at 800B820416 has three designations: UCB$L_FIRST and UCB$L_FR4, alternative names for the longword; and the two subfields, UCB$W_MSGMAX and UCB$W_MSGCNT.
The contents of each field appear to the right of the symbolic name of the field. Thus, the contents of UCB$L_FIRST are 8002CA0016.
Displays information about the SDA utility, its operation, and the format of its commands.
HELP [command-name]
command-name
Command for which you need information.You can also specify the following keywords in place of command-name.
Keyword Function CPU_CONTEXT Describes the concept of CPU context as it governs the behavior of SDA in uniprocessor and multiprocessor environments EXECUTE_COMMAND Causes SDA to execute SDA commands contained in a file EXPRESSIONS Prints a description of SDA expressions INITIALIZATION Describes the circumstances under which SDA executes an initialization file when first invoked OPERATION Describes how to operate SDA at your terminal and by means of the site-specific startup procedure PROCESS_CONTEXT Describes the concept of process context as it governs the behavior of SDA in uniprocessor and multiprocessor environments SYMBOLS Consists of up to 31 letters and numbers, and can include the dollar sign ($) and underscore (_) characters. When you invoke SDA, it reads in the global symbols from symbols table psect of SYS$BASE_IMAGE.EXE, and from REQSYSDEF.STB, a required subset of the symbols in the file SYSDEF.STB. You can add other symbols to SDA's symbol table by using the DEFINE and READ commands.
None.
The HELP command displays brief descriptions of SDA commands and concepts on the terminal screen (or sends these descriptions to the file designated in a SET OUTPUT command). You can request additional information by specifying the name of a topic in response to the Topic? prompt.If you do not specify a parameter in the HELP command, it lists those commands and topics for which you can request help, as follows:
Information available: ATTACH COPY CPU_Context DEFINE EVALUATE EXAMINE Execute_Command EXIT Expressions FORMAT HELP Initialization Operation Process_Context READ REPEAT SEARCH SET SHOW SPAWN Symbols VALIDATE QUEUE Topic?
Loads the global symbols contained in the specified object module into the SDA symbol table.
READ {/EXECUTIVE directory-spec| [RELOCATE=expression]|filespec}
filespec
Name of the device, directory, and file that contains the object module from which you want to copy global symbols. The filespec defaults to SYS$DISK:[default-dir]filename.STB, where SYS$DISK and [default-dir] represent the disk and directory specified in your last SET DEFAULT command. You must specify a file name.
/EXECUTIVE directory-spec
Reads into the SDA symbol table all global symbols and global entry points defined within all loadable images that make up the executive. (See Table SDA-13 for a list of those images.)The directory-spec is the name of the directory containing the loadable images of the executive. This parameter defaults to SYS$LOADABLE_IMAGES.
/RELOCATE=expression
Adds the value of expression to the value of each symbol in the symbol table file to be read. You can use the /RELOCATE qualifier only if you also specify a filespec. The /RELOCATE qualifier is useful for examining images that are position independent and are loaded at a base of zero.
The READ command symbolically identifies locations in memory for which the default symbol table (SYS$SYSTEM:SYS.STB) provides no definition. In other words, the required global symbols are located in modules that have been compiled and linked separately from the executive.5The object module file specified in the READ command can be one of the following:
- Output of a compiler or assembler (for example, an .OBJ file)
- Output generated by the linker qualifier /SYMBOL_TABLE (for example, an .STB file)
Most often the object module file is a file provided by the operating system in SYS$SYSTEM or SYS$LOADABLE_IMAGES. Many SDA applications, for instance, need to load the definitions of system data structures by issuing a READ command specifying SYS$SYSTEM:SYSDEF.STB. Others require the definitions of specific global entry points within the executive image that are contained within those object modules included in the executive.
Table SDA-12 lists those object module files provided in SYS$SYSTEM. Table SDA-13 lists those loadable images in SYS$LOADABLE_IMAGES that define locations within the executive image.
Table SDA-12 Modules Containing Global Symbols Used by SDA File Contents CLUSTRLOA.STB Symbols for loadable VAXcluster management code DCLDEF.STB Symbols for the DCL interpreter IMGDEF.STB Symbols for the image activator NETDEF.STB Symbols for DECnet data structures RMSDEF.STB Symbols that define RMS internal and user data structures and RMS$_ xxx completion codes SCSDEF.STB Symbols that define data structures for system communications services SYSDEF.STB Symbols that define system data structures, including the I/O database
Table SDA-13 Modules Defining Global Locations Within the Executive Image File Contents CPULOA.EXE Processor-specific data and initialization routines ERRORLOG.EXE Error logging routines and system services EVENT_FLAGS_AND_ASTS.EXE Event flag and AST delivery routines and system services EXCEPTION.EXE Bugcheck and exception handling routines and those system services that declare condition and exit handlers IMAGE_MANAGEMENT.EXE Image activator and the related system services IO_ROUTINES.EXE $QIO system service, related system services (for example, SYS$CANCEL and SYS$ASSIGN), and supporting routines LMF$GROUP_TABLE.EXE Data for valid, licensed product groups LOCKING.EXE Lock management routines and system services LOGICAL_NAMES.EXE Logical name routines and system services MESSAGE_ROUTINES.EXE System message routines and system services (including SYS$SNDJBC and SYS$GETTIM) PAGE_MANAGEMENT.EXE System pager, its supporting routines, and page management system services (including SYS$CRMPSC, SYS$CREDEL, and SYS$ADJSTK) PRIMITIVE_IO.EXE Console I/O routines PROCESS_MANAGEMENT.EXE Scheduler, report system event, and supporting routines and system services RECOVERY_UNIT_SERVICES.EXE Recovery unit system services RMS.EXE Global symbols and entry points for RMS SECURITY.EXE Security management routines and system services SYSDEVICE.EXE Mailbox driver and null driver SYSGETSYI.EXE Get System Information system service (SYS$GETSYI) SYSLICENSE.EXE Licensing system service (SYS$LICENSE) SYSMSG.EXE System messages SYSTEM_PRIMITIVES.EXE Miscellaneous basic system routines, including those that allocate system memory, maintain system time, create fork processes, and control mutex acquisition SYSTEM_SYNCHRONIZATION.EXE Routines that enforce synchronization in a multiprocessing system WORKING_SET_MANAGEMENT.EXE Swapper, its supporting routines, and working set management system services
#1
SDA> READ SYS$SYSTEM:SYSDEF.STB %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYSEXE]SYSDEF.STB;1
#2The READ command causes SDA to add all the global symbols in SYS$SYSTEM:SYSDEF.STB to the SDA symbol table. Such symbols are useful when you are formatting an I/O data structure, such as a unit control block or an I/O request packet.
SDA> EXAM/INST EXE$QIO+2;4 EXE$QIO+00002: CHMK #001F EXE$QIO+00006: RET SDA> EXAM/INST V_EXE$QIO %SDA-E-BADSYM, unknown symbol "V_EXE$QIO" SDA> READ/RELOCATE=IO_ROUTINES SYS$LOADABLE_IMAGES:IO_ROUTINES.EXE %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]IO_ROUTINES.EXE;1 SDA> EXAM/INST EXE$QIO+2;4 EXE$QIO+00002: MOVZBL 04(AP),R3 EXE$QIO+00006: CMPB R3,#3F SDA> EXAM/INST V_EXE$QIO+2;4 V_EXE$QIO+00002: CHMK #001F V_EXE$QIO+00006: RET
#3This SDA session shows that the initial examination of the instructions at EXE$QIO+2 and EXE$QIO+6 produces the vector for the system service, not the system service code itself. The subsequent READ instruction brings into the SDA symbol table the global symbols defined for the system's I/O routines, including one that redefines the entry point of the system service to be the start of the routine EXE$QIO. Thus, the second examination of the same memory locations produces the first two instructions in the routine. The READ command creates a special symbol, V_EXE$QIO, that points to the system service vector.
SDA> SHOW STACK Process stacks (on CPU 01) -------------------------- Current operating stack (KERNEL): 7FF8F2B0 806BA870 7FF8F2B4 7FF8F4C0 7FF8F2B8 8016F33E PAGE_MANAGEMENT+0053E . . . SDA> READ/RELOCATE=PAGE_MANAGEMENT SYS$LOADABLE_IMAGES:PAGE_MANAGEMENT.EXE %SDA-I-READSYM, reading symbol table SYS$COMMON:[SYS$LDR]PAGE_MANAGEMENT.EXE;1 SDA> SHOW STACK Process stacks (on CPU 01) -------------------------- Current operating stack (KERNEL): 7FF8F2B0 806BA870 7FF8F2B4 7FF8F4C0 7FF8F2B8 8016F33E MMG$LOCK_SYSTEM_PAGES+00188 . . .
#4The initial SHOW STACK command contains an address that SDA resolves into an offset from the PAGE_MANAGEMENT module of the executive. The READ command loads the corresponding symbols into the SDA symbol table such that the reissue of the SHOW STACK command subsequently identifies the same location as an offset within a specific page management routine.
READ/EXEC
%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;1This 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.
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"
#2This 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 8.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.
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.
4556P005.HTM OSSG Documentation 22-NOV-1996 14:13:09.32
Copyright © Digital Equipment Corporation 1996. All Rights Reserved.