Symbolic Debug Support

Source Level Symbolic Support

If the module has been compiled and linked with the following debug options, then the Trace Customizer can look into the module to extract symbolic information. In this case addresses may be specified symbolically.

Note that not all source files must be C language, although only public labels from assembler routines will be found in the symbolic information. You may specify filename and line number, a local variable name or a global variable name when using C routines. All symbolic names are case sensitive when the source was compiled with debug options, but if linking in a C language program that was not compiled with debug options, all symbolic names are case sensitive and begin with an underscore (_) character unless the name is declared with the Pascal calling conventions, in which case the underscore is omitted but the symbolic name is capitalized.

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.

Note: When using a MAP file, if the symbolic name is a C language entry point, it will be case sensitive and begin with an underscore (_) character unless it is declared with the Pascal naming convention, in which case the underscore is omitted and the name is capitalized. If the name is not from C language source file, the name is case sensitive.

Building a Module

To trace only public procedures, you only need your MAP file that was generated by linking your module.

To trace local variables in C language routines, compile the C programs with the debug option and assemble the ASM routines with public symbols. Link all the OBJs together with the debug option (/CO) and run TRCUST on the executable module. You can now strip the debug information from the executable file by either relinking the OBJs without the debug option or by using a tool to delete the debug information from the executable module file.


[Back: Invoking the Trace Customizer]
[Next: TDF and TFF File Usage]