linuxnm命令详解
-
Linux中的nm命令用于检查目标文件或者二进制文件中所包含的符号表。 nm命令主要用于两个方面:
1. 查看符号表信息
nm命令可以用于查看可执行文件、目标文件和动态共享库等二进制文件中包含的符号表信息,包括函数、变量和符号地址等。使用`nm [options]`的命令格式,可以输出文件中的某些特定信息,如函数的地址和符号的类型。 其中常用的选项包括:
– -a或者–debug-syms:显示所有调试符号。
– -C或者–demangle:显示C++符号表中的函数参数和返回类型。
– -D或者–dynamic:显示动态符号表。
– -g或者–extern-only:只显示全局符号表中的外部符号。
– -t或者–defined-only:只显示已定义的符号。例如,使用命令`nm -A
`可以查看文件中的所有符号表信息。 2. 检查符号依赖关系
nm命令还可以用于检查二进制文件之间的符号依赖关系。通过查看符号表信息,可以确定一个二进制文件所依赖的其他文件和库。这对于解决编译链接错误或者查找缺失的依赖库非常有用。例如,可以使用命令`nm -D
`查看某个动态共享库所依赖的其他库。 总之,nm命令可以帮助开发者查看二进制文件的符号表信息,方便调试和解决依赖问题。它是Linux开发中非常有用的一个工具。
2年前 -
1. 命令简介:
linuxnm命令是用于显示一个或多个目标文件中的符号表的命令,它可以列出目标文件中定义和引用的符号,包括函数、全局变量和局部变量等。2. 命令格式:
nm [选项] [目标文件]3. 命令参数:
-a 或 –debug-syms:显示调试符号。
-A 或 –plugin 后跟插件名:加载指定的插件。
-S:显示符号的大小。
-v 或 –version:显示版本信息。
-h 或 –help:显示帮助信息。4. 命令输出:
nm命令输出的每一行代表一个符号,一般包含以下几列信息:
– 符号的地址:以16进制格式显示。
– 符号的类型:可以是函数、全局变量、局部变量等。
– 符号的名称:符号的标识符。
– 符号的大小:当使用-S选项时显示。5. 使用示例:
– 显示目标文件的符号表:
nm filename– 只显示函数符号:
nm -t filename– 显示调试符号:
nm -a filename– 显示符号的大小:
nm -S filename– 列出所有目标文件的符号表:
nm *.o– 使用插件加载特定的符号表:
nm –plugin=xxx filename以上是对linuxnm命令进行详解的内容,通过该命令可以方便地查看目标文件中的符号表信息,对于开发人员在调试和分析代码时非常有用。
2年前 -
Linux nm命令是一种用于查看和分析程序中的符号表的工具。符号表(Symbol Table)是编译器在链接阶段生成的一种数据结构,用于存储程序中所有可见符号的信息。符号包括全局变量、局部变量、函数名称等。
使用nm命令可以查看程序中的符号表信息,包括符号名称、地址、类型等。这些信息对于调试程序、分析程序的依赖关系、查找函数的定义等非常有帮助。
下面将详细介绍Linux nm命令的使用方法、操作流程和常用选项。
## 1. 命令格式
“`
nm [options] [filename]
“`## 2. 常用选项
– -A:显示所有符号,包括隐藏符号和未定义符号。
– -a:按地址顺序显示符号。
– -l:显示文件的依赖关系。
– -o:显示符号与源文件的对应关系。
– -g:只显示全局(外部)符号。
– -C:显示符号的C++名称。
– -S:显示符号的大小。
– -d:只显示动态符号。## 3. 使用示例
### 示例1:查看可执行文件中的符号表
“`
nm a.out
“`该命令将显示a.out可执行文件中的符号表,默认按照名称的字母顺序排列。
### 示例2:只显示全局符号
“`
nm -g a.out
“`该命令将只显示a.out可执行文件中的全局符号,即外部可见的符号。
### 示例3:显示符号与源文件的对应关系
“`
nm -o a.out
“`该命令将显示a.out可执行文件中的符号表,并列出每个符号对应的源文件名称和行号。
### 示例4:按地址顺序显示符号
“`
nm -a a.out
“`该命令将按照地址的顺序显示a.out可执行文件中的符号表。
### 示例5:只显示动态符号
“`
nm -d a.out
“`该命令将只显示a.out可执行文件中的动态符号,即在程序运行时动态加载的符号。
### 示例6:显示文件的依赖关系
“`
nm -l a.out
“`该命令将显示a.out可执行文件的依赖关系,包括依赖的共享库。
## 4. 操作流程
通过上述示例,可以看出nm命令的操作流程如下:
1. 执行`nm`命令,并指定要查看的文件(可以是可执行文件、目标文件或共享库)。
2. 运行`nm`命令,并根据需求选择适当的选项。
3. 根据选项的不同,`nm`命令将显示相应的符号信息。
4. 根据需要,可以使用其他选项组合或使用管道符(`|`)将`nm`命令的输出传递给其他命令进行进一步处理。## 5. 总结
Linux nm命令是一个用于查看和分析程序中符号表的实用工具。通过使用nm命令,我们可以查看程序中的符号信息,如符号名称、地址、类型等,从而帮助我们进行程序调试、分析程序的依赖关系等工作。可以根据需求选择适当的选项,以获取所需的符号信息。
2年前