10.4 DUMP New Qualifier: /SHARED_MEMORY In the event of system crashes, it may be necessary to save the contents of some or all of shared memory in addition to the memory that is local to the system that has crashed. This will be done either by writing shared memory to the system dump file using enhanced system dump code, or as a separate step using the DUMP/SHARED_MEMORY command. This can be done either after the failed system reboots, or at any time from another instance of OpenVMS in the same com- munity. DUMP/SHARED_MEMORY writes to a separate file, not to the system dump file. Shared memory included in a system dump file will be analyzed with the existing ANALYZE/CRASH_DUMP com- mand. Shared memory dumped separately will be analyzed using the new command ANALYZE/SHARED_MEMORY (which is the topic of a separate note). Syntax Description: The format is: DUMP/SHARED_MEMORY [region_name_ list] [other_quals] where "region_name_list" is a comma-separated list of the regions of shared memory to be dumped, a logical name that translates to such a list, or*", indicating that all regions in shared memory are to be dumped. If no region name list is given, the default is GLX$DUMP_RANGE, which is ex- pected to be a logical name that translates to a list of regions (or could be the name of a region itself). A region name is given in the format: region_name [=start_offset {:end_offset | ; number_of_bytes} ] If just a region name is given, the entire region is dumped. If a start offset and either an end offset or a number of bytes is given, only that range of bytes within the region is dumped. If *" is given, it must stand alone. The default radix for start_offset, end_offset, number_of_bytes is hexadecimal. As in SDA, such numbers can include a period to separate the upper 32 bits from the lower 32 bits. other_quals include the following: /ALL_MEMORY All shared memory is to be dumped as a single unit, regardless of whether it is part of a named region. If /ALL_MEMORY is specified, the region name list must not be given. /COMPRESSED The dump is to be written in a compressed format (same algorithm as used in system dumps) /OUTPUT="file" The dump is to be written to the named file, instead of the default, which is GLX$SHARED_MEMORY.DMP in the current default directory. /SIZE="blocks" The size of dump file to be created initially. If not given, a size is calculated. Either way, the file is truncated to the number of blocks written when the dump is complete. /SIZE can only be specified if /OUTPUT is also specified. /PHYSICAL Placeholder at this time. Qualifier description: The /SHARED_MEMORY qualifier indicates that a shared memory dump is to be written. The new utility GLX$DUMP_SHARED_MEMORY.EXE is invoked to write the dump. Examples: 1. $ DUMP/SHARED_MEMORY/ALL_MEMORY All of shared memory is dumped to GLX$SHARED_MEMORY.DMP in the current default directory. 2. $ DEFINE/USER GLX$DUMP_RANGE REG1,REG2=120000;40000 $ DUMP/SHARED_MEMORY/COMPRESSED/OUTPUT=TEST The two regions REG1 and REG2 will be dumped, the former in its entirety, but only bytes 120000 to 15FFFF of the latter. The dump will be written in compressed format to the file TEST.DMP in the current default directory. 3. $ DUMP/SHARED_MEMORY * All regions in shared memory are dumped to GLX$SHARED_MEMORY.DMP in the current default directory.