16.2.4 Output Formats

The symbol value is in the radix selected by the options, or hexadecimal by default.

If the symbol type is lowercase, the symbol is local; if uppercase, the symbol is global (external). The table below shows the symbol types.

Table 16-4. Symbol Types
SymbolDescription
AThe symbol’s value is absolute, and will not be changed by further linking.
BThe symbol is in the uninitialized data section (known as BSS).
CThe symbol is common. Common symbols are uninitialized data. When linking, multiple common symbols may appear with the same name. If the symbol is defined anywhere, the common symbols are treated as undefined references.
DThe symbol is in the initialized data section.
NThe symbol is a debugging symbol.
RThe symbol is in a read only data section.
TThe symbol is in the text (code) section.
UThe symbol is undefined.
VThe symbol is a weak object. When a weak defined symbol is linked with a normal defined symbol, the normal defined symbol is used with no error. When a weak undefined symbol is linked and the symbol is not defined, the value of the weak symbol becomes zero with no error.
WThe symbol is a weak symbol that has not been specifically tagged as a weak object symbol. When a weak defined symbol is linked with a normal defined symbol, the normal defined symbol is used with no error. When a weak undefined symbol is linked and the symbol is not defined, the value of the weak symbol becomes zero with no error.
?The symbol type is unknown, or object file format specific.

xc32-nm output

00000474 T _fclose
0000023e T _fputc
000001b2 T _fputs
0000051e T _free
00000700 T _main
000003bc T _malloc
00000334 T _memcpy
00000198 T _puts
0000061a W _remove
0000062c W _sbrk
00000326 T _strlen
00000310 T _strrchr
000005a0 W _write