OpenVMS Undocumented Features
This is the most complete collection of undocumented features we can find for OpenVMS. Some of these have been around since the time when it was called VMS while others are more current and have been added to OpenVMS V8.n. These features:
- Are NOT documented (if they were, they wouldn't belong here)
- Are NOT supported by PARSEC Group or HP
- Are NOT guaranteed to work
- May NOT exist in all versions of OpenVMS; past, present and future
- Are subject to change, removal, enhancement or being documented at the whim of OpenVMS engineering
- May be fun to know the next time you play OpenVMS trivial pursuit
- May help you get your job done easier and faster
- May help you impress your boss with your knowledge of the obscure
DUMPSTYLE System Parameter
The DUMPSTYLE parameter controls what OpenVMS writes to the dump file in the rare case of a system crash. This parameter is a bit mask documented as:
- Bit 0 - if clear, a full dump is written;
if set, a selective dump is written.
- Bit 1 - if clear, minimal console output is displayed;
if set, full console output is written.
- Bit 2 - if clear, the dump file resides on the system disk;
if set, the dump file resides on the disk pointed to by the console variable DUMP_DEV
- Bit 3 - if clear, an uncompressed dump is written;
if set, a compressed dump is written.
- Bit 4 - if clear, dump shared memory;
if set, do not dump shared memory.
The undocumented bit includes:
- Bit 5 - if clear, write all processes and global pages to a selective dump as limited by available space;
if set, write only key processes and global pages to a selective dump.
The processes to be included may be extended with the SYSMAN command DUMP_PRIORITY.
F$LOGICAL lexical function
The F$LOGICAL lexical function allows translating a logical name to its resultant string. This function has been replaced with the more flexible F$TRNLNM lexical function; but true to the manner of OpenVMS engineering, this once supported lexical function continues to work. Its only argument is the logical name to be translated.
$ write sys$output f$logical("sys$login")
SDA$DEVELOPER logical name
The logical name SDA$DEVELOPER may be defined to FFFFFFFF to display debug information that can be helpful to the developer of SDA and SDA extensions. Different bits represented by the logical name cause different debug information to be displayed. Some of the information that may be displayed includes the creation of new symbols and when memory is read from the system or a process.
SET$AUDIT logical name
Debug information may be displayed by the SET AUDIT command by defining the SET$AUDIT logical name in executive mode. For security reasons, only privileged processes may create a logical name in executive mode. If defined, the SET AUDIT command displays debug information. If it is defined to the string NOWRITE, then it also will not send the packets to the Audit Server mailbox.
$ define set$audit /exec 1
$ set audit/audit/enable=logfail=batch
Command: SET AUDIT/AUDIT/ENABLE=LOGFAIL=BATCH
Message (1/14) contains 2 packets and is 78 bytes long (flags = 4, version = 3)
Packet (77) is 44 bytes:
004D002C ,.M. 00000000
00000000 .... 00000004
00010000 .... 00000008
00000000 .... 0000000C
00000000 .... 00000010
00000000 .... 00000014
00000000 .... 00000018
00000000 .... 0000001C
00000000 .... 00000020
00000000 .... 00000024
00000000 .... 00000028
Packet (81) is 14 bytes:
0051000E ..Q. 00000000
41424D5F _MBA 00000004
36333031 1036 00000008
00003A37 7:.. 0000000C
(request) QIO status = 00000001, IOSB = 0001
(reply) QIO status = 00000001, IOSB = 0001
SHOW ROOT command
The SHOW ROOT command displays the POSIX root path used by the system. This may be set with the SET ROOT command. The POSIX root path is used when RMS or the C run-time library parses file names starting with a slash (/). It may be interesting to note that the SHOW ROOT command is displayed in an example for the SET ROOT command; but it is not included in HELP for the SHOW command.
$ set root $22$dka300:[vms$common]
%SET-I-PSXROOSET, system POSIX root set to $22$DKA300:[VMS$COMMON]
$ show root