Specifications
Debugging a Device Driver
11.4 Troubleshooting Network Failures
Current Image
||
\/
+===============+ +===============+ +===============+
||||||
| Symbol Table | | Symbol Table | | Symbol Table |
| for Image 1 | .... | for Image N-1 | | for Image N |
||||||
+===============+ +===============+ +===============+
|| || ||
/\ /\ /\
---------+ +-------------+ .... ....
|| |
+--------+ +--------+ +--------+
| Module | | Module | | Module |
|1 ||2 |..|M |
+--------+ +--------+ +--------+
So, when the debugger needs to translate a value into a symbol or a symbol into a
value, it first looks at the current image to find the information. If it does not find
it there, then it looks into the appropriate module. It determines which module is
appropriate by looking at the module range symbols which are part of the image
symbol table.
To see what symbols are currently loaded, use the DEBUG SHOW SYMBOL
command. This command has a few options to get more than just the symbol
name and value. See the OpenVMS Debugger Manual for more details.
11.4.1.2 Overview of OpenVMS Executive Image Symbols
Depending on whether the debugger has access to the .DSF or .EXE file, different
kinds of symbols could be loaded. Most users will have the .EXE file for the
OpenVMS executive images and a .DSF file for their private images—that is, the
images they are debugging.
The OpenVMS executive consists of two base images, SYS$BASE_IMAGE.EXE
and SYS$PUBLIC_VECTORS.EXE, and a number of separately loadable
executive images.
The two base images contain symbol vectors. For SYS$BASE_IMAGE.EXE the
symbol vector is used to define symbols accessible by all the separately loadable
images. This allows these images to communicate with each other through cross-
image routine calls and memory references. For SYS$PUBLIC_VECTORS.EXE,
the symbol vector is used to define the OpenVMS system services. Because these
symbol vectors are in the .EXE and the .DSF files, the debugger can load these
symbols no matter which one the user has.
All images in the OpenVMS executive also contain global and local symbols.
However, none of these symbols ever get into the .EXE file for the image. These
symbols are put in the specific modules section of the .DSF file if that module was
compiled /DEBUG and the image was linked /DSF.
11.4.1.3 Possible Problems You May Encounter
• Access to All Executive Image Symbols
When the current image is not SYS$BASE_IMAGE, but one of the separately
loaded images, the debugger does not have access to any of the symbols in
the SYS$BASE_IMAGE symbol vector. This means the user cannot access
(set break points, etc.) any of the cross-image routines or data cells. The only
symbols the user has access to are the ones defined by the current image.
11–13










