Developer's Topics
Chapter 7, Common Object File Format (COFF)

Symbol table

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.