SDA obtains its information from the following: o Images (.EXE files) o Image symbol table files (.STB files) o Object files SDA also defines symbols to access registers and to access common data structures. The only images with symbols are shareable images and executive images. These images contain only universal symbols, such as constants and addresses. The image symbol table files are produced by the linker with the /SYMBOLS qualifier. These files normally contain only universal symbols, as do the executable images. However, if the SYMBOL_ TABLE=GLOBALS linker option is specified, the .STB file also contains all global symbols defined in the image. See the OpenVMS Linker Utility Manual for more information. Symbols can include lowercase letters. Commands that manipulate symbols (such as DEFINE, SHOW SYMBOL, and UNDEFINE) require these symbols to be enclosed within quotation marks ("symbol" ). Some SDA commands predefine additional symbols. This includes SET CPU and SET PROCESS (as shown in the following subtopics) and also SHOW DEVICE and SHOW CLUSTER.
1 – Modules Containing Symbols
Object files can contain global constant values. An object file used with SDA typically contains symbol definitions for data structure fields. Such an object file can be generated by compiling a MACRO-32 source module that invokes specific macros. The macros, which are typically defined in SYS$LIBRARY:LIB.MLB or STARLET.MLB, define symbols that correspond to data structure field offsets. The macro $UCBDEF, for example, defines offsets for fields within a unit control block (UCB). OpenVMS Alpha and Integrity servers provide several such object modules in SDA$READ_DIR, as listed in the following table. For compatibility with OpenVMS VAX, the modules' file types have been renamed to .STB. File Contents DCLDEF.STB Symbols for the DCL interpreter DECDTMDEF.STB Symbols for transaction processing GLXDEF.STB Symbols for OpenVMS Galaxy data structures IMGDEF.STB Symbols for the image activator IODEF.STB I/O database structure symbols NETDEF.STB Symbols for DECnet data structures REQSYSDEF.STB Required symbols for SDA 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 TCPIP$NET_GLOBALS.STB* Data structure definitions for TCP/IP internet driver, execlet, and ACP data structures TCPIP$NFS_GLOBALS.STB* Data structure definitions for TCP/IP NFS server TCPIP$PROXY_GLOBALS.STB* Data structure definitions for TCP/IP proxy execlet TCPIP$PWIP_GLOBALS.STB* Data structure definitions for TCP/IP PWIP driver, and ACP data structures TCPIP$TN_GLOBALS.STB* Data structure definitions for TCP/IP TELNET/RLOGIN server driver data structures * The TCPIP$*.STB files are available only if TCP/IP has been installed. These files are found in SYS$SYSTEM, so that all files are not automatically read in when you issue a READ/EXEC command.
2 – Symbols Defined on Initialization
The following table lists symbols that SDA defines automatically on initialization. ASN Address space number AST Both the asynchronous system trap status and enable registers: AST<3:0> = AST enable; AST<7:4> = AST status BR0 through BR7 Branch registers (Integrity servers only) CYCLE_COUNTER Process cycle counter ESP Executive stack pointer EBSP Executive register stack pointer (Integrity servers only) FEN Floating-point enable FP Frame pointer (R29) FP0 through FP31 Floating-point registers (Alpha only) FP0 through FP127 Floating point registers (Integrity servers only) FPCR Floating-point control register (Alpha only) FPSR Floating-point status register (Integrity servers only) GP Global pointer (R1) (Integrity servers only) G FFFFFFFF.80000000(16), the base address of system space H 00000000.7FFE0000(16), a base address in P1 space I FFFFFFFF.FFFFFFFF(16), also fills the leading digits of a hexadecimal number with the value of F KSP Kernel stack pointer KBSP Kernel register stack pointer (Integrity servers only) PAL_RSVD PAL reserved area in process HWPCB PC Program counter PCC Process cycle counter PS Processor status PTBR Page table base register R0 through R31 Integer registers (Alpha only) R0 through R127 Integer registers (Integrity servers only) SCC System cycle counter SP Current stack pointer of a process SSP Supervisor stack pointer SBSP Supervisor register stack pointer (Integrity servers only) SYSPTBR Page table base register for system space USP User stack pointer UBSP User register stack pointer (Integrity servers only) VIRBND Virtual Address Boundary for RADs (Alpha only)
3 – Symbols Defined by SET CPU
After a SET CPU command is issued (for analyzing a crash dump only), the symbols defined in the following table are set for that CPU. CPUDB Address of CPU database IPL Interrupt priority level register MCES Machine check error summary register PCBB Process context block base register PRBR Processor base register (CPU database address) RAD Address of RAD database SCBB System control block base register SISR Software interrupt status register VPTB Virtual Page Table Base register
4 – Symbols Defined by SET PROCESS
After a SET PROCESS command is issued, the symbols listed in the following table are defined for that process. ARB Address of access rights block FRED Address of floating-point register and execution data block JIB Address of job information block KTB Address of the kernel thread block ORB Address of object rights block PCB Address of process control block PHD Address of process header PSB Address of persona security block