A
debug symbol is information that expresses which programming-language constructs generated a specific piece of
machine code in a given executable module. Sometimes the symbolic information is compiled together with the module's
binary file, or distributed in a separate file, or simply discarded during the
compilation and/or
linking. This information enables a person using a symbolic
debugger to gain additional information about the binary, such as the names of
variables and routines from the original
source code. This information can be extremely helpful while trying to investigate and fix a
crashing application or any other fault.