Traditional compiler listing tables
Depending on which .START and/or compiler options you’ve set, the compiler might generate one or more tables in the compiler listing at the end of each routine. The two listing tables that are currently available are as follows:
- Symbol table offsets table
- Memory usage summary table
Sample listing tables
TABLES Mon Feb 9 13:01:15 2009 DBL Version 9.1.5a Compiler Page: 1
/usr2/tables.dbl
1 ;
2 ; tables.dbl
3 ;
4 ; Shows examples of compiler listing tables
5 ;
6
7 record
8 avar ,a50
9 group grp ,[20]a
10 fld1 ,d3
11 fld2 ,a3
12 endgroup
13 dvar ,d8
14 idvar ,d8.4
15
16 proc
17 avar = idvar + dvar
18 idvar = grp[4].fld1
19 xcall sub1(4, dvar)
20 end
Symbol Table Offsets
----------------------
AVAR 0
DVAR 1
FLD1 3 (GRP.)
GRP 4
IDVAR 2
21
22 subroutine sub1
23 arg_1 ,d
24 arg_2 ,d
25 record rec
26 avar ,a8
27 proc
28 avar = arg_1
29 xcall sub2
30 return
31 end
Symbol Table Offsets
----------------------
ARG_1 -1
ARG_2 -2
AVAR 0 (REC.)
32
33 subroutine sub2
34 record
35 dvar ,d8
36 avar ,a4
37 proc
38 dvar = avar
39 end
Symbol Table Offsets
----------------------
AVAR 1
DVAR 0
TABLES Mon Feb 9 13:01:15 2009 DBL Version 9.1.5a Compiler Page: 2
/usr2/tables.dbl
Errors: 0, in file /usr2/tables.dbl
dbl -il tables_i tables
TABLES Mon Feb 9 13:01:20 2009 DBL Version 9.1.5a Compiler Page: 1
/usr2/tables.dbl
1 ;
2 ; tables.dbl
3 ;
4 ; Shows examples of compiler listing tables
5 ;
6
7 record
8 avar ,a50
9 group grp ,[20]a
10 fld1 ,d3
11 fld2 ,a3
12 endgroup
13 dvar ,d8
14 idvar ,d8.4
15
16 proc
17 avar = idvar + dvar
18 idvar = grp[4].fld1
19 xcall sub1(4, dvar)
20 end
Memory Usage Summary
--------------------
FXDCTL = A0
DATA = BC
CODE = 20
LITERAL = 4
DESCR = 40
LINCTL = 30
ADDR = 4
FXD4CTL = 4
STKREC = 0
DYNCTL = 0
Total size: 1F8
21
22 subroutine sub1
23 arg_1 ,d
24 arg_2 ,d
25 record rec
26 avar ,a8
27 proc
28 avar = arg_1
29 xcall sub2
30 return
31 end
Memory Usage Summary
--------------------
FXDCTL = A4
DATA = 8
CODE = C
LITERAL = 0
DESCR = 8
LINCTL = 30
ADDR = 4
FXD4CTL = 4
STKREC = 0
DYNCTL = 0
Total size: F8
TABLES Mon Feb 9 13:01:20 2009 DBL Version 9.1.5a Compiler Page: 2
/usr2/tables.dbl
32
33 subroutine sub2
34 record
35 dvar ,d8
36 avar ,a4
37 proc
38 dvar = avar
39 end
Memory Usage Summary
--------------------
FXDCTL = A0
DATA = C
CODE = 8
LITERAL = 0
DESCR = 10
LINCTL = 2C
ADDR = 4
FXD4CTL = 4
STKREC = 0
DYNCTL = 0
Total size: F8
Errors: 0, in file /usr2/tables.dbl
dbl -ml tables_m tables
An explanation of the compiler listing table
Symbol table offsets table
If you set the symbol table offsets option (for example, -i on Windows and UNIX) when you invoke the compiler, the compiler generates a list of every symbol referenced in the preceding routine with its offsets into the symbol table. You can use these offsets to reference symbols while debugging a program that was not compiled and linked with the debug option. (If you compile and link with the debug option, you can reference the symbols by their names as opposed to their offsets.)
You can turn the listing of this table on and off with the [NO]OFFSETS option of the .START compiler directive. See .START for more information about the .START options.
If a symbol is a member of a group or a named data structure (as “AVAR” is in the second table in Sample listing tables), the path to that symbol is also listed in the table. Also notice the “(GRP.)” next to the entry for “FLD1” in the first table.
Memory usage summary table
The compiler generates a memory usage summary table at the end of each routine when you set the memory compiler option (for example, -m on Windows and UNIX). The memory usage summary table lists the size (in bytes) of each program component. The size is represented as a hexadecimal number.
You can turn the listing of this table on and off with the [NO]summary option of the .START compiler directive. See .START for more information about the .START options.
