linux常用命令nm
-
nm命令是Linux系统中常用的命令之一,主要用于查看可执行文件或者目标文件中的符号表信息。下面是nm命令的详细介绍:
1. 命令格式:
nm [选项]… 文件…2. 常用选项:
-a:显示全部符号信息,包括符号的值、类型和定义所在的文件名;
-g:只显示全局符号信息;
-u:只显示未定义的符号信息;
-p:不要对符号进行排序,保持输入的顺序;
-D:显示动态符号信息;
-C:显示C++符号信息;
-f:以目标文件的形式输出符号信息;
-S:显示符号在源文件中的位置;
-r:将所有符号以类似于readelf的格式输出;
-l:显示符号表的调试信息。3. 使用示例:
3.1 查看可执行文件中的符号表信息:
nm a.out
3.2 查看目标文件中的符号表信息:
nm -o myobject.o
3.3 只显示全局符号信息:
nm -g a.out
3.4 只显示未定义的符号信息:
nm -u a.out
3.5 以目标文件的形式输出符号信息:
nm -f a.out > symbols.txt4. 符号类型解释:
4.1 T:该符号是一个函数或者数据对象,其地址由nm库中的一个外部符号提供;
4.2 t:该符号是一个函数或者数据对象,其地址由局部链接器符号提供;
4.3 U:该符号是一个未定义的外部符号;
4.4 V:该符号是一个常量或者一个已初始化的数据对象;
4.5 W:该符号是一个未初始化的数据对象;
4.6 C:该符号是一个未初始化的常量;
4.7 Z:该符号是一个在弱符号消除之前定义过的未引用符号。通过使用nm命令,我们可以方便地查看可执行文件或者目标文件中的符号表信息,从而帮助我们了解程序的结构和依赖关系,对于软件开发和调试来说非常有用。在日常使用中,也可以通过-nm命令来查找某个函数或者变量在哪个文件中定义。
2年前 -
nm是Linux系统下的一个常用命令,用于查看可执行文件、目标文件和共享库中的符号表信息。这个命令可以列出这些文件中定义的所有符号,包括函数、变量和类型等。
以下是关于nm命令的常用用法和功能解析:
1. 列出符号表信息:nm命令的最基本用法就是列出一个文件的符号表信息。使用命令`nm filename`,其中filename是要查看符号表的文件名。命令将输出文件中定义的所有符号。
2. 列出函数地址:默认情况下,nm命令会列出函数的地址。使用命令`nm -a filename`,可以显示函数的地址以及其对应的函数名。
3. 过滤符号类型:nm命令可以根据符号的类型进行过滤显示。例如,使用命令`nm -D filename`,只会显示动态符号表中的符号,而不显示静态符号表中的符号。
4. 列出未定义符号:使用命令`nm -u filename`,可以列出文件中未定义的符号。这对于检查链接错误以及解决共享库依赖问题非常有用。
5. 列出相应符号所属的目标文件:对于共享库文件来说,使用命令`nm -a filename`会显示每个符号所在的目标文件(即库文件)。这对于调试和解决库依赖问题也非常有帮助。
总结:nm命令是Linux系统下一个用于查看符号表信息的常用命令。它可以列出文件中定义的所有符号,显示函数的地址和名称,并可以根据符号类型进行过滤显示。此外,nm命令还可以列出未定义符号以及符号所属的目标文件。使用nm命令可以方便地进行调试和解决库依赖问题。
2年前 -
nm命令是Linux系统中的一个常用命令,用于显示目标文件或者可执行文件中的符号表。nm命令可以帮助我们查看可执行文件或者目标文件中的符号信息,包括函数、全局变量、局部变量等。
下面我们将从命令的基本用法、标志选项、示例等方面介绍nm命令的使用。
## 一、基本用法
nm命令的基本语法如下:
“`shell
nm [选项] [文件名]
“`
选项包括以下常用的选项:
– -A:以十进制显示符号值
– -a:以四列的形式显示全部符号
– -C:显示C++风格的符号
– -D:仅显示动态符号表中的符号
– -d:仅显示动态符号表中的动态符号
– -p:显示精确的符号位置
– -u:显示未定义的符号
– -r:按照符号的地址排序
– -s:按照符号的字母序排序
– -l:按照符号的大小排序
– -t:按照符号类型排序## 二、操作流程
nm命令的操作流程一般包括以下几个步骤:
1. 打开目标文件或可执行文件。
2. 解析文件中的符号表。
3. 根据选项对符号进行过滤和排序。
4. 输出符号信息。## 三、示例
### 示例1:显示目标文件中的符号表
“`shell
nm test.o
“`
以上命令将显示test.o文件中的符号表信息。### 示例2:显示可执行文件中的符号表
“`shell
nm a.out
“`
以上命令将显示a.out可执行文件中的符号表信息。### 示例3:显示符号表中的所有符号
“`shell
nm -A -a test.o
“`
以上命令将以十进制显示test.o文件中的所有符号信息。### 示例4:显示符号表中的未定义符号
“`shell
nm -u test.o
“`
以上命令将显示test.o文件中的未定义符号信息。### 示例5:按照符号地址排序
“`shell
nm -r test.o
“`
以上命令将按照符号的地址对test.o文件中的符号进行排序,并显示排序结果。### 示例6:按照符号类型排序
“`shell
nm -t test.o
“`
以上命令将按照符号的类型对test.o文件中的符号进行排序,并显示排序结果。## 四、小结
nm命令是Linux系统中的一个常用命令,用于显示目标文件或者可执行文件中的符号表。通过该命令,我们可以查看文件中的符号信息,包括函数、全局变量、局部变量等。我们可以根据选项对符号进行过滤和排序,以便更方便地查看符号信息。2年前