linux中nm命令
-
nm命令是Linux系统中的一个工具,用于查看和分析目标文件(二进制文件)中的符号表信息。符号表记录了该目标文件中使用的全局变量、函数和外部引用的符号信息。通过使用nm命令,我们可以了解目标文件中的符号名称、地址、类型以及相关的调试信息。
使用nm命令的一般语法如下:
nm [options] <目标文件>其中,options是一些可选参数,可以用于控制输出的内容和格式。常用的选项包括:
– -a:显示全部符号,包括局部符号和外部符号;
– -o:按符号的地址递增的顺序进行排序;
– -p:显示符号的名称和地址,但不显示符号的类型等其他信息;
– -C:显示C++符号表中的符号;
– -D:显示动态符号表中的符号;
– -S:同时显示符号表和源码(如果有源码)。下面是一些常见的nm命令的使用示例:
1. 查看目标文件中的所有符号:
nm <目标文件>2. 查看目标文件中的符号名称和地址:
nm -p <目标文件>3. 查看目标文件中的所有符号,并按地址递增的顺序进行排序:
nm -o <目标文件>4. 查看目标文件中的C++符号表中的符号:
nm -C <目标文件>总之,nm命令是Linux系统中用于查看和分析目标文件中符号表信息的实用工具。通过使用nm命令,我们可以快速了解目标文件中的符号名称、地址、类型等信息,从而方便进行调试和分析工作。
2年前 -
nm命令用于显示二进制文件(如可执行文件、目标文件、动态链接库等)中的符号表。它可以列出文件中所有的符号以及它们的地址信息。本文将介绍nm命令的常用选项和用法。
1. 显示符号表:使用nm命令后面跟上文件名,即可显示该文件的符号表。例如,`nm filename`将显示filename文件中的所有符号。
2. 选择显示符号类型:通过nm命令的不同选项,可以选择显示不同类型的符号。常用的选项有:
– `-a`:显示所有符号,包括隐藏符号。
– `-g`:只显示全局符号。
– `-U`:只显示未定义符号。
– `-u`:只显示被未定义符号引用的符号。
– `-t`:按地址排序显示符号。3. 显示符号的地址和类型:nm命令默认显示符号的地址以及它们的类型。符号的类型包括函数(T)、对象(D)、未初始化的对象(B)、只读对象(R)等。地址用十六进制表示。
4. 查找特定符号:可以通过在nm命令后面加上特定的符号名,来查找指定的符号。例如,`nm filename symbolname`将显示指定符号的地址和类型。
5. 结合其他命令使用:可以将nm命令与其他命令结合使用,以实现更复杂的功能。例如,可以使用grep命令过滤出特定类型的符号,或者使用awk命令对符号进行进一步处理。
总结:nm命令是一个非常实用的工具,可以帮助开发人员分析二进制文件中的符号表信息。通过了解nm命令的常用选项和用法,可以更好地进行软件开发和调试工作。
2年前 -
NM命令是Linux系统中的一个常用命令,用于显示目标文件或者可执行文件中的符号表。符号表记录了函数、变量、常量等符号的名称及其对应的地址信息。通过使用NM命令,可以查看到目标文件或者可执行文件中的所有符号。
NM命令的基本语法如下:
“`
nm [options] [filename]
“`其中,options是一些选项参数,filename是要查看符号表的目标文件或者可执行文件的名称。
下面是NM命令的一些常用选项参数:
– `-n`:按照符号的地址大小排序,默认情况下是按照符号的名称排序。
– `-A`:显示所有符号,包括未导出的和重定位的符号。
– `-a`:列出目标文件中的所有符号,包括文件局部的符号。
– `-g`:只显示外部可见符号,即全局符号和弱符号。
– `-u`:只显示未定义的符号。
– `-C`:显示C++类的成员函数。
– `-l`:显示符号的库名称。下面是NM命令的一些实际操作示例:
1. 使用nm命令查看可执行文件的符号表
“`
$ nm my_program
“`2. 使用-n选项按照地址大小排序
“`
$ nm -n my_program
“`3. 使用-g选项只显示全局符号和弱符号
“`
$ nm -g my_program
“`4. 使用-u选项只显示未定义的符号
“`
$ nm -u my_program
“`总之,NM命令是Linux系统中一个非常有用的命令,通过它可以查看可执行文件或者目标文件中的符号表,对于软件开发和调试过程中的问题定位非常有帮助。
2年前