Debug Symbol Reading GDB has two layers of symbol reader. These symbols will prove useful if debug info is missing, since they can be used in backtraces at least. Although the levels are somewhat uncoupled, a full MxN matrix is not really possible. The actual symbol tables are not too unusual in structure. Basically, they're a collection of interconnected nodes.
Symbols consist of types, functions, and variables.
The set of attributes is common to all supported languages, although some attributes will only appear with, for example, Java. GDB handles line numbers with a separate line table that matches line numbers with addresses. It builds an inverse lookup table to speed up the mapping of arbitrary addresses to source file and line number. Language Support Language support is straightforward in concept, though complicated to do completely. The centerpiece is an expression parser for the language.