Symbol table
Because of symbolic debugging requirements, the order of
symbols in the symbol table is very important.
Symbols appear in the sequence shown in
Table 7-11, ``COFF symbol table''.
Table 7-11 COFF symbol table
------------------------------ | filename 1 | |-----------------------------| | function 1 | |-----------------------------| | C_WEAKEXT aliases | | for function 1 | |-----------------------------| | function 1b (alias) | |-----------------------------| | . . . | |-----------------------------| | local symbols for function 1| |-----------------------------| | function 2 | |-----------------------------| | C_WEAKEXT aliases | | for function 2 | |-----------------------------| | . . . | |-----------------------------| | local symbols for function 2| |-----------------------------| | . . . | |-----------------------------| | statics | |-----------------------------| | . . . | |-----------------------------| | filename 2 | |-----------------------------| | function 1 | |-----------------------------| | C_WEAKEXT aliases | | for function 1 | |-----------------------------| | . . . | |-----------------------------| | local symbols for function 1| |-----------------------------| | . . . | |-----------------------------| | statics | |-----------------------------| | . . . | |-----------------------------| | defined global symbols | |-----------------------------| | undefined global symbols | |-----------------------------|
The word ``statics'' in
Table 7-11, ``COFF symbol table''
means symbols defined
with the C language storage class static
outside any function.
The symbol table consists of at least one fixed-length entry per symbol
with some symbols followed by
auxiliary entries of the same size.
The entry for each symbol is a
structure that holds
the value, the type,
and other information.