DUMP CP Privilege Class: G Use the DUMP command to print the contents of various components of the virtual machine on the virtual spooled printer. The following items are printed: o Virtual program status word (PSW) o General registers o Floating-point registers o Control registers (if you have the ECMODE option specified in your VM/370 directory entry) o Storage keys o Virtual storage locations (second-level virtual storage only; see Usage notes. The format of the DUMP command is: +----------+------------------------------------------------------------------+ | DUmp | [0|[L|T]hexloc1 [[-|:][END hexloc2]] [*dumpid] | | | [[0|[L|T]hexloc1 [[.][END bytecount]] [*dumpid] | +----------+------------------------------------------------------------------+ where: 0 | Lhexloc1 | Thexloc1 | hexloc1 is the first or only hexadecimal storage location to be dumped. If you enter L or T without operands, the contents of all virtual storage locations are dumped. If L or no letter prefix is specified, the storage contents are displayed in hexadecimal. If T is specified, the storage contents are displayed in hexadecimal, with EBCDIC translation. The address, hexloc1, may be one to six hexadecimal digits; leading zeros are optional. If hexloc1 is not on a boundary divisible by 32, it is rounded down to the next lower such boundary. [- | :] END hexloc2 is the last hexadecimal storage location whose contents are to be dumped to the printer. If - or : is the first character of the operand, then hexloc1 defaults to zero. The operand, hexloc2, must be equal to or greater than hexloc1 and within the virtual storage size. To dump to the end of storage, you can specify END instead of hexloc2 or you can leave the field blank, since the default is END. If you specify :END or -END, the contents of storage from hexloc1 to END are dumped. The contents of storage locations hexloc1 through hexloc2 are printed with EBCDIC translation at the printer. The operand, hexloc2, may be from one to six hexadecimal digits; leading zeros are optional. [.] END bytecount is a hexadecimal integer designating the number of bytes of storage (starting with the byte at hexloc1) to be dumped to the printer. The period (.) must be specified to dump the contents of more than one storage location by bytecount. The sum of hexloc1 and bytecount must be an address that does not exceed the virtual machine size. If this address is not on a fullword boundary, it is rounded up to the next highest fullword. The value, bytecount, must be 1 or greater and can be no longer than 6 hexadecimal digits. Leading zeros are optional. *dumpid can be entered for descriptive purposes. If specified, it becomes the first line printed preceding the dump data. Up to 100 characters, with or without blanks, may be specified after the asterisk prefix. No error messages are issued if more than 100 characters are used including asterisks and embedded blanks. Usage notes: 1. First level storage (storage that is real to the virtual machine) can be displayed. Operating systems running in a virtual machine such as DOS/VS and OS/VS have virtual storage of their own. This second-level virtual storage cannot be displayed directly. The user or the virtual operating system is responsible for converting any third-level storage locations to second-level storage locations before issuing the command. 2. The CP DUMP command executes in an area of storage separate from your virtual machine storage and does not destroy any portion of your storage. 3. If the DUMP command is used in CMS mode, use the #CP DUMP command or depress the PA1 key before entering the command. This procedure maintains the virtual machine's registers for the dump. Otherwise, the registers are those of the CMS command processor. 4. The DUMP command prints the virtual PSW and the virtual registers (general, floating-point, and control). If only this information is desired, at least one virtual address must be specified, such as DUMP 0 5. The output format for the virtual storage locations is eight words per line with the EBCDIC translation on the right. Each fullword consists of eight hexadecimal characters. All the rest of the information (PSW, general and floating-point registers, and storage keys) is printed in hexadecimal. If you have the ECMODE option in your VM/SP directory entry, the control registers are also printed. To print the dump on the real printer, a CLOSE command must be issued for the spooled virtual printer. 6. Normally, you should define beginning and ending dump locations in the following manner: dump Lhexloc1-hexloc2 dump Lhexloc1.bytecount dump Lhexloc1-hexloc2 hexloc1.bytecount * dumpid If, however, a blank follows the type character (L or T) or the character and the hexloc, the default dump starting and ending locations are assumed to be the beginning and/or end of virtual storage. Blanks are used to separate operands or sets of operands if more than one operand is entered on the same command line. If a dash or a colon is omitted between the hexloc1 and hexloc2 operands, and the two operands are separated by one or more blanks, CP only dumps the storage contents at those two specific addresses. Blanks must not be used to the right or left of range or length delimiters ( : or - or .), unless it is intended to take the default value of the missing operand defined by the blank. Thus, all of the following produce full storage dumps: dump l dump t: dump 0-end dump t dump l. dump l:end dump - dump t. dump t:end dump : dump 0- dump 0:end dump . dump 0: dump l.end dump l- dump 0. dump t.end dump t- dump l-end dump 0.end dump l: dump t-end The following produces three full dumps: dump l . t dump - . : 7. When running with a discontiguous saved segment (DCSS), you can dump storage locations outside the range of your virtual machine size if they are within the DCSS. If there exist locations between the upper limit of your virtual machine and the address at which the DCSS was saved, an attempt to dump those locations (or associated keys) results in a "nonaddressable storage" message appearing in the printer output. Responses As the dump progresses, the following message is displayed at the terminal, indicating that the dump is continuing from the next 64k boundary: DUMPING LOC hexloc where hexloc is the segment (64K) boundary address for the dump continuation, such as 020000, 030000, or 040000. If you press the attention key, or its equivalent, on the terminal while the message is being displayed, the dump function is terminated. COMMAND COMPLETE is the response indicating normal completion of the dump function.