nm
命令的符号类型代码用于表示符号在目标文件(如可执行文件或共享库)中的位置和性质。
以下是 nm
输出中常见的符号类型的完整解释:
-
T - Text section (Global)
- 符号在代码段中,是一个全局符号,通常表示一个函数。
-
t - Text section (Local)
- 符号在代码段中,是一个局部符号,通常表示一个函数。
-
B - BSS section (Global)
- 符号在 BSS 段(未初始化数据段)中,是一个全局符号,通常表示一个未初始化的全局变量。
-
b - BSS section (Local)
- 符号在 BSS 段(未初始化数据段)中,是一个局部符号,通常表示一个未初始化的局部变量。
-
D - Data section (Global)
- 符号在数据段中,是一个全局符号,通常表示一个已初始化的全局变量。
-
d - Data section (Local)
- 符号在数据段中,是一个局部符号,通常表示一个已初始化的局部变量。
-
R - Read-only data section (Global)
- 符号在只读数据段中,是一个全局符号,通常表示一个全局常量或不可修改的数据。
-
r - Read-only data section (Local)
- 符号在只读数据段中,是一个局部符号,通常表示一个局部常量或不可修改的数据。
-
U - Undefined
- 符号在本文件中未定义,但在其他地方定义(例如,在某个库中)。
-
W - Weak (Global)
- 符号是一个全局弱符号,可能在其他地方定义,也可以被覆盖。
-
w - Weak (Local)
- 符号是一个局部弱符号,优先级低于其他符号,通常是局部的。
-
V - Weak (Global) Data
- 符号在共享数据段中,是一个全局弱符号,通常表示一个全局变量。
-
v - Weak (Local) Data
- 符号在共享数据段中,是一个局部弱符号,通常表示一个局部变量。
-
N - Debugging
- 符号在调试符号表中(非代码段、数据段或其他特定段),用于调试目的。
-
C - Common (Global)
- 符号是一个全局的常见符号,通常表示一个未初始化的全局变量。
-
c - Common (Local)
- 符号是一个局部的常见符号,通常表示一个未初始化的局部变量。
这些符号类型代码帮助了解符号的定义位置和范围,在进行调试、链接和分析时非常有用。