noft Manual (G06.27+, H06.03+, J06.03+)

Native Object Code File Structure
noft Manual528273-003
C-2
MDEBUG Section
Shared run-time libraries (SRLs) and programs with callable procedures contain
additional sections and segments.
Each code and initialized data segment in a linkfile has a corresponding relocation
table section. This section identifies the places within the code or data segment that
contain linkable references. nld updates these references when it builds a new object
code file. When nld builds a loadfile:
All references within the object code file are resolved, their addresses are finalized,
and the relocation tables no longer exist.
Any unresolved reference information is placed in the TANDEM_GINFO section.
MDEBUG Section
The MDEBUG section is the object code file’s symbol table, which contains the tables
listed in Table C-2:
In TNS and accelerated object code files, distinct Binder and Inspect symbols regions
contain binding and symbolic debugging information. In TNS/R native object code files,
a single symbols region contains the linking and symbolic debugging information. You
can remove either the symbolic debugging information or both the linking and symbolic
debugging information from TNS/R native object code files. For more information, see
the nld Manual.
Table C-2. MDEBUG Section Tables
Table Purpose
External symbol table* Describes the code and data addresses that are meaningful
outside a single compilation. Each procedure name or data
name is either defined or undefined. If the name is defined, it
actually exists in the object code file. If the name is
undefined, it references an entity that is defined in another
object code file.
Procedure descriptor table* Provides additional information about all procedures within
the object code file.
File descriptor table** Monitors the source code files used in compilations.
Line number table** Monitors the line numbers in a source code file. Used with
the file descriptor table to map instructions to source code
line numbers.
Local symbol table** Stores information about local symbols, defined within
procedures and subprocedures, or fields within global data
blocks.
* Provides the information nld needs to link object code files together.
** Can be used to help debug a program.