linux的nm命令用法
-
nm命令是Linux系统中的一个工具,用于查看二进制文件中的符号表信息。符号表保存了二进制文件中的函数、变量以及其他符号的地址和名称。
nm命令的基本用法如下:
1. nm [选项] 文件名:执行该命令可以查看指定二进制文件的符号表信息。
2. nm -A 文件名:以十六进制地址的形式显示符号表中的地址。
3. nm -C 文件名:将符号表中的C++函数名还原为可读的形式。
4. nm -D 文件名:显示动态符号表中的符号。
5. nm -f 文件名:显示符号表中的文件名。
6. nm -u 文件名:显示未定义的符号。以下是一些常用的选项:
1. -B:以不同的格式显示地址,可选的格式有十六进制、十进制和八进制。
2. -g:只显示全局符号。
3. -l:显示符号表中的调试信息。
4. -s:只显示静态符号。
5. -r:按照地址的逆序显示符号表。
6. -t:以符号表的顺序显示符号。在使用nm命令时,可以根据自己的需求选择适当的选项来查看符号表信息。可以通过nm命令查看库文件、可执行文件以及目标文件中的符号表,从而了解它们的结构和内容,帮助进行调试和分析工作。
2年前 -
nm是Linux系统中的一个命令,用于查看可执行文件和目标文件中的符号表。它可以显示文件中的函数和变量符号以及它们的地址信息。
以下是nm命令的常用用法和功能:
1. 查看符号表:最简单的用法是在终端中输入“nm 文件名”,这将显示文件中的所有符号表。符号表中列出了代码中定义的函数和变量的名称以及它们的地址和类型。
例如:`nm a.out`2. 查找特定符号:可以使用参数“-s”或“–print-size”来查找特定的符号。通过指定符号的名称,可以只查看符号表中与该名称相关的信息。
例如:`nm -s functionName a.out`3. 查看只包含特定类型符号:可以使用参数“-A”或“–print-file-name”来查看只包含特定类型符号的文件。可以指定多个类型,如“b”(未初始化的数据)、“d”(已初始化的数据)、“t”(代码)等。
例如:`nm -A -t a.out`4. 查看符号类型:默认情况下,nm命令会为每个符号显示一个字母以表示其类型。常见的符号类型包括“U”(未定义的符号)、“T”(代码符号)、“A”(弱符号)、“B”(未初始化的全局变量)等。
例如:`nm -t d a.out`5. 查看符号的值:通过添加参数“-n”或“–numeric-sort”可以按照符号的值进行排序。这可以帮助识别具有最高或最低地址的符号。
例如:`nm -n a.out`通过使用上述用法,可以很方便地使用nm命令来查看可执行文件和目标文件中的符号表信息,帮助分析程序的结构和调试代码。
2年前 -
Linux的nm命令是用于查看和分析二进制目标文件中的符号表的。符号表中记录了目标文件中定义和引用的函数、变量以及其他符号的相关信息。
nm命令的基本用法如下:nm [选项] [目标文件]
1. 查看所有符号:
nm <目标文件>使用nm命令默认情况下会显示目标文件中的所有符号,包括函数、变量等。
例如,要查看名为a.out的目标文件中的所有符号,可以输入命令:nm a.out2. 查看函数符号:
nm -A <目标文件>使用-A选项可以仅显示函数符号,不显示其他类型的符号(如变量)。
例如,要仅查看名为a.out的目标文件中的函数符号,可以输入命令:nm -A a.out3. 查看符号类型及地址:
nm -p <目标文件>使用-p选项可以显示符号的类型、地址以及符号的名称。
例如,要查看名为a.out的目标文件中的所有符号及其类型和地址,可以输入命令:nm -p a.out4. 查看未定义的符号:
nm -u <目标文件>使用-u选项可以显示目标文件中未定义的符号。
例如,要查看名为a.out的目标文件中的所有未定义的符号,可以输入命令:nm -u a.out5. 查看动态符号表:
nm -D <目标文件>使用-D选项可以查看目标文件中的动态符号表,即共享库中的符号。
例如,要查看名为a.so的共享库中的动态符号表,可以输入命令:nm -D a.so6. 查看符号依赖关系:
nm -C <目标文件>使用-C选项可以显示符号之间的依赖关系。
例如,要查看名为a.out的目标文件中的符号依赖关系,可以输入命令:nm -C a.out除了上述常用的选项外,nm命令还有一些其他的选项可以根据需要使用。可以使用nm –help命令或man nm命令来查看更详细的帮助信息。
2年前