The Diagnostics Report displays detailed information about a dictionary’s structure. It can also detect certain types of dictionary corruption. Specifically, it looks for gaps or overlaps in how resources are stored in the dictionary. Also, if an unexpected crash occurs while a dictionary is open, the Diagnostics Report can find discrepancies that can result between the actual size of the dictionary and the size reported by the operating system. We recommend that you run the Diagnostics Report when you’re having problems with a dictionary and before you distribute a dictionary to customers.
The only difference between the Diagnostics Report and Emergency Diagnostics Report is that for the Emergency Diagnostics Report, the Diagnostics window isn’t displayed and all report information is always included.
To use the Diagnostics Report, open a source dictionary and choose Diagnostics from the Reports menu. The Diagnostics window will appear.
If no items appear in the Dictionary Modules list, the section of the dictionary containing module information may be damaged. In this rare instance, nothing can be recovered from the dictionary.
Mark the appropriate options to indicate the information you want included in the report.
Block Table Mark this option to include a block table in the report. The block table lists information about each block in the dictionary, such as its size and location in the dictionary.
We recommend that you include the block table because if the Diagnostics Report finds any problems with the dictionary, they will be listed in the block table section.
Module Table Mark this option to include a module table at the beginning of the report. The module table includes information about all modules in the dictionary, such as the quantity of each type of resource in each module.
Use the Directory drop-down list to include module directory information. A module directory contains a list of all resources in the module, including the names of the resources, the resource types and IDs, the version number assigned to each resource, and the blocks in the dictionary in which the resources are stored. Select one of the following options:
Click Print to print the Diagnostics Report. The Report File Name dialog box will appear. Enter the name and location for the Diagnostics Report, then click Save.
If problems were found, they will be displayed in the block table section of the Diagnostics Report. To examine the block table for errors, use a text utility and search for ** Error. Also, at the end of the block table section, compare the calculated file size and the O/S file size numbers. They should be the same.
Keep in mind that the Diagnostics Report may not find all types of dictionary corruption.
If you found errors in the block table, or the physical and calculated dictionary sizes don’t match, the dictionary may be corrupt.
If you found errors in the block table, indicated by ** Error, the dictionary likely has corrupted resources. Note the block numbers where the errors were found. If you haven’t already included it in the Diagnostics Report, print a module directory for all modules. Search the Dblock (data block) and Nblock (name block) columns in the module directory for the block numbers of the damaged blocks. When you find the block numbers in the module directory, the resources in that block could be corrupted.
You have two options to deal with the corrupt resources: delete the corrupt resources or transfer the undamaged resources to a new dictionary.
If the physical and calculated sizes don’t match, run a disk diagnostic utility such as Norton Disk Doctor, CHKDSK.EXE or SCANDISK.EXE. In some cases these utilities can find and repair problems in dictionary files.
Unexpected crashes can cause the discrepancy between the physical and calculated file sizes. The sooner you run a disk diagnostic utility after the corruption occurs, the more likely it is that the problem can be fixed.