When debugging or linking, what does the word "symbol" refer to?

I am doing some work with gdb and found links in the documentation for "characters". Is this another word for external (exported) visible variables?

Thank,

Scott

+5
source share
4 answers

A "symbol" is a symbolic identifier that includes the names of functions and variables.

The compiler / linker creates a symbol table during assembly, and this is used by the debugger to provide symbolic names of the initial level to these objects, as opposed to simple addresses (hence the name "symbolic debugger" that you may encounter).

+4
source

, . , ..

+3

- , , ... , , .
:
:

call printf

call dword ptr 0x804480 
+3

(, - "STABS", , ) , , , , "" ( , , , ).

Of course, PE images are not needed (or usually have) "symbol tables" as such in any case - just import / export tables. Thus, in the context of Windows, the characters “symbols” and “debugging symbols” tend to be used interchangeably to refer to any characters left after the link; with MS toolchain, these (almost?) always go to the "pdb" files. (See .)

0
source

All Articles