linux基础命令之nm命令

叶sir学编程 2024-05-16 02:58:08

nm命令是linux系统下用于列出指定文件(二进制文件)中的符合,比如常用的将.c文件编译成可执行程序,里面的函数名,变量名等,以及里面变量对应存储的区域。

语法格式:nm 参数 文件名

图1

如图1,将可执行程序,使用nm命令打开,显示许多符号和参数,这些符号和参数的的说明如下:

第一列是符号值,为一长串数字,默认是十六进制的

第二列是符号类型,有多种符号类型,通常为字母,为小写字母时,表示符合是本地的,为大写字母时,符号是全局的

符合类型有以下类型:

A:符号值且是一个绝对值,不会通过链接而改变

B/b:符号在BSS数据段中

C(大写):表示未初始化的数据

D/d:表示符号在初始化数据段中

G/g:符合也在初始化数据段中,不过是用于small object提高访问small data object的一种方式

i:对标准ELF符号类型集的GNU扩展。它表示一个符号如果被重定位引用,不会计算该符号的地址,而是必须在运行时计算

I(大小i):该符合是对另一个符号的间接引用

N:为调试符号

P:符号在堆栈中

R/r:位于只读数据段中

S/s:符号位于非初始化数据区,用于small object。

在Linux系统中,可以使用nm命令查看运行程序的函数,全局变量等相关信息,可以更好的帮助开发人员了解链接库.so文件的运行结构,提供编程能力。

0 阅读:0