MDB Symbol Tables
A target can support multiple symbol tables. The following examples are some of the symbol tables that a target can support:
-
Primary executable symbol table
-
Primary dynamic symbol table
-
Runtime link-editor symbol table
-
Standard and dynamic symbol tables for each of a number of load objects (such as shared libraries in a user process, or kernel modules in the Oracle Solaris kernel)
The target typically searches the symbol tables of the primary executable first, then one or more of the other symbol tables. Note that ELF symbol tables contain only entries for external, global, and static symbols. Automatic symbols do not appear in the symbol tables processed by MDB.
Additionally, MDB provides a private user-defined symbol table that
is searched prior to any of the target symbol tables. The private symbol table
is initially empty. Use the ::nmadd
and ::nmdel
dcmds
to manipulate the private symbol table.
Use the ::nm
-P
dcmd to
display the contents of the private symbol table. The private symbol table
enables you to create symbol definitions for program functions or data that
were either missing from the original program or stripped out. These definitions
are then used whenever MDB converts a symbolic name to an address, or converts
an address to the nearest symbol.