MAP File Support

The Trace Customizer can also use the symbolic information in the MAP file produced by the linker. All public symbols will be listed with their offsets in the module being traced. This is not as complete a support as offered by the debug compile option for C language source files, but it does allow entry points, public labels and global data to be referenced symbolically within the TSF. Note that the use of a MAP file is NOT language dependent.

Notes:

When using a MAP file, if the symbolic name is a C language entry point, it will be case sensitive (unless the /I command line switch has been specified).

Some compilers will modify external or public symbolic names used in the program when they appear in the MAP file. If this is done then the modified form must be used when referenced in the TSF. The modification rules are compiler dependent however three common cases follow:

With IBM C/2 and Microsoft C 6.0, external routine names have an underscore prefix to their names when declared using the cdecl convention and are capitalised when declared using the Pascal convention. Symbols for routine names treated this way refer to the first instruction of the routine.

With IBM CSET/2 and IBM VisualAge C symbolic names defined by the user are not prefixed with an underscore. MAP file symbols for routine names defined by the user refer to the initial instruction of the routine, regardless of the presence of debugging information, unless the /PREINV command line switch is specified. When /PREINV is used TRCUST will search for the first instruction following the prologue code, that is, after the entry stack frame has been created.

With IBM VisualAge C++ routine names are subject to name mangling where class-hierarchical information is encoded into the externalised name. The mangled form of the name must be used in TSF references.

In all cases symbolic name lengths are restricted to a maximum length of 255 characters.

C runtime library routine names are usually prefixed with an underscore.