System Debug Reference Manual
> Chapter 7 Symbolic Formatting Symbolic AccessCreating and Accessing Symbol Definitions |
||||||||||||||||||||||||
|
Generate Symbolic Type InformationThe generation of symbolic data type definitions begins at compile time through the use of the $SYMDEBUG 'xdb'$ option in the Pascal compiler. This option causes symbolic debug records to be emitted into the relocatable object modules contained in the relocatable library produced by the compiler. These symbolic debug records fall into two basic categories: those that define the code being generated and those that define the data type shapes and sizes. System Debug at present uses only the data type definitions. System Debug does not require that the complete program be compiled with the $SYMDEBUG$ option; instead, only the types and constants need be compiled. However, even though only types and constants are compiled, the outer block MUST have at least one statement (for example, x := 1) in order to generate any debug information, and the types and constants must be declared at the level of the outer block. Also, note that symbolic information is currently not emitted when code optimization is performed. The following example shows a compilation of just a program's types for the purpose of obtaining, in object file form, the symbolic information required to use the symbolic formatter. $SYMDEBUG 'xdb'$ PROGRAM gradtyp; $include 'tgrades.demo.telesup'; { Include all types/constants } VAR x : integer; BEGIN { Outer block must have a stmt } x := 1; END. :COMMENT *** The above program is in the file OGRADTYP.DEMO.TELESUP : :PASXL OGRADTYP,YGRADTYP,$NULL : :COMMENT *** The above command generates the file "YGRADTYP" Convert The Relocatable Library into a Program FileThe relocatable object module(s) generated by the compiler must now be converted into an executable object module (a program file). This step is performed by using the LINKEDIT program. :LINKEDIT.PUB.SYS HPLinkEditor/XL (HP32650-xx.yy.zz) (c) Hewlett-Packard Co 1986 LinkEd> link from=ygradtyp.demo.telesup;to=gradtyp.demo.telesup LinkEd> exit : Preprocess the Program File with PXDBThe program file produced by LINKEDIT must be run through a utility called PXDB. This program preprocesses the symbolic debug information for more efficient access during symbolic debugging. :PXDB.PUB.SYS gradtyp.demo.telesup Copying gradetyp.demo.telesup ... Done Procedures: 1 Files: 1 : Prepare the Program File with SYMPREPSystem Debug needs to perform additional preprocessing of the object module file after PXDB. Quick data type lookup tables are built and symbols are sorted for fast access. The results of this phase are saved in the program file so it need only be performed once. Once this step is completed, the file is in a form usable by System Debug. Such a file is called a symbolic data type file. This final task is performed from within DAT or DEBUG by using the SYMPREP command: :DAT DAT XL A.00.00 Copyright Hewlett-Packard Co. 1987. All rights reserved. $1 ($0) $nmdebug > SYMPREP gradtyp Preprocessing GRADTYP.DEMO.TELESUP Copying file ... Building Constant lookup table ... Sorting ... Building Type lookup table ... Sorting ... Building lookup table header ... Fixing up SOM directory structure ... GRADTYP.DEMO.TELESUP preprocessed $2 ($0) $nmdebug > Open the Symbolic Data Type File with SYMOPENThe System Debug SYMOPEN command is used to access the symbols in a preprocessed program file (symbolic data type file). The user may optionally assign each symbolic file a symbolic name when it is opened. If no symbolic name is specified, the file name (minus the .GROUP.ACCOUNT) is used as the symbolic name. In the following example, the file gradtyp is opened and assigned the default symbolic name gradtyp. $nmdat > SYMOPEN GRADTYPE $nmdat > SYMFILES GRADTYP GRADTYP.DEMO.TELESUP $nmdat >In summary the following steps must be performed before a symbolic data type file is ready for use by System Debug:
|