When Gnosis Breaks
The PAGES or CMSFILE macro did not reserve enough space to hold all of it.
Entries in this map are generated for each execution of the macro PAGES in the assemble of primordial item space. The form of these entries is DC CL13'code name',AL3(cda). These entries are in cda order making a search easy.
If swapping is occurring, a primordial node can be identified by considering the CDA of the node {3 bytes at 9 in the node}. Suppose that the CDA is 00009C. Type "09C 1-098*ANODES+_". DDT should then print the assembler name of the node.
To find a slot or node given an item index such as C390 let
DDT compute ITEMBASE]
(0FFFFC390*8) or 0FFFFC390*8 0164840.
ITEMBASE] was recently 0164840. ITEMBASE]
is ITEM+X'40000'
and is usually in 9r.
To display a DIB, get the item index from domain root(012,2)
and display 0FFFFnnnn (0230]
)/ .
To find a page, if the key is of the form "01xxnnnn nn000001" add 01f to nnnnnn. The result is the relative page number of the page. Thus if nnnnnn is 09c, the specified page begins as 0bb000.
If x is the address of the DIB of a program ("208] " for
the running program) type "x 088+]
]
=" to see the
segment table descriptor. If the segment table is 64 bytes
long (the shortest) then the first byte of the descriptor
will be 00 and you can see the table by typing ";q;x040;".
To see the first page table type ".] ;x020;". If you see
something such as 0B200690 that means that there are two
pages at addresses B2000 and 69000. If the should happen
to be primordial pages (even if they have been swapped)
they may be identified as follows:
If you are running a kernel without kernel DDT then dumps will be taken automatically whenever:
An unanticipated program interrupt occurs in kernel code.
2 Error writing dump file
3 Not enough pages in the range
4 Permanent error writting file
5 No online path to dump range device
If you are running a kernel with kernel DDT then issue the following commands to take a dump.
04 xxxxxxxx >15r]
{carriage return}
0rp/ xxxxxxxxxxxx >0{carriage return}
>CALLDUMP;G
# xxxxxxxx above is hex data to be replaced by the DDT commands #
GETLASTDUMP installs the last crash from the crash directory under the DDT already created by command CREATEDUMPDDT.
For further insight see the commands in SYSTOOL.
Create a 3330 tempdisk in which to receive the dump file, allocating five cylinders per megabyte of memory on the crashed host. Access the tempdisk as "A" since the programs of interest only want to operate there. Typing "VMFSADMP DUMPFILE<CR>" to CMS will get the dump loaded as DUMPFILE DUMP A. VMFSADMP will ask you if the version of CP on the tape is the same as the version you are running under. The tape contains an image of Gnosis, not CP, so answer "N<CR>" to this question. The file load begins, and may take several minutes under heavy load.
Enter DDT by typing "DUMPDDT<CR>" to CMS. Access the dump by typing "DUMPFILE%#" to DDT. DDT inputs DUMPFILE DUMP A and responds with "SAD000..." to let you know that loading is complete. You can now examine the dump image using normal DDT commands. There are no symbols here, so you will need to navigate using a copy of REALKERN MAP. You can also use the "MODMAP" command at CMS to type a symbol value list. The argument to MODMAP is the module filename. In either case, remember you will have to add 1000 hex to the listed symbol value to get the actual value, since page zero has not been accounted for.