linuxnm命令w
-
Linux中的nm命令用于显示目标文件或共享目标文件中的符号表。它可以显示函数、变量和其他符号的名称以及其在目标文件中的地址。
使用nm命令的基本语法是:
“`shell
nm [options]
“`
其中,`options`是可选的参数,``是要查看符号表的目标文件或共享目标文件。 nm命令的常用选项包括:
– `-g` 显示全局符号表中的符号。
– `-A` 显示所有符号。
– `-l` 显示符号的源码行号。
– `-C` 显示符号的C++源码名称。例如,查看一个名为`example.o`的目标文件的符号表,可以使用以下命令:
“`shell
nm example.o
“`
该命令将显示该目标文件中的所有符号及其地址。除了查看符号表外,nm命令还可以用于其他用途,如检查二进制文件是否包含未定义的符号、查看共享目标文件是否正确链接等。
总之,通过使用Linux中的nm命令,我们可以方便地查看目标文件或共享目标文件中的符号表信息。
2年前 -
Linux的nm命令用于查看目标文件或共享库的符号表信息。它是一个非常有用的调试工具,可以帮助开发人员确定程序中所使用的符号以及它们在内存中的位置。
下面是Linux nm命令的一些常用选项和用法:
1. nm命令的基本语法为:nm [options] filename。
– [options]是可选的,可以使用多个选项来定制输出。
– filename是要查看符号表的目标文件或共享库。2. 默认情况下,nm命令以十六进制形式打印符号表中的地址和符号名。例如:nm myprogram
– 输出结果中,每行的第一列是符号的值(地址),第二列是符号的类型,第三列是符号的名称。3. 使用选项-f或–format可以选择不同的输出格式。例如:nm -f sysv myprogram
– 可用的输出格式包括“sysv”(System V风格,默认格式)、“posix”(POSIX风格)和“bsd”(BSD风格)。4. 使用选项-g或–extern-only只显示外部(全局/公共)符号。例如:nm -g myprogram
– 这在一个大型代码库中非常有用,可以快速查看程序所使用的外部符号。5. 使用选项-D或–dynamic只显示动态符号。例如:nm -D myprogram
– 这对于查看动态链接的库中的符号非常有用,可以确定程序在运行时所使用的动态符号。总结:
Linux的nm命令是一个非常有用的调试工具,可以帮助开发人员查看目标文件或共享库中的符号表信息。借助于不同的选项,我们可以定制输出的格式,查看特定类型的符号,以及只显示动态符号等。使用nm命令可以更好地理解和调试程序,并找出可能存在的问题。2年前 -
小标题1:Linux nm命令是什么?
Nm(name list)命令是一种Unix/Linux命令,用于查看可执行文件、目标文件和共享库中的符号信息。它显示了二进制文件中定义和引用的符号列表,包括全局和静态变量、常数、函数等。
小标题2:nm命令的语法格式是什么?
nm命令的基本语法格式如下:
“`
nm [选项]… [文件]…
“`
选项包括:
– `-A`:显示所有符号,包括动态符号。
– `-g`:只显示外部(全局)符号。
– `-D`:只显示动态符号。
– `-C`、`–demangle`:将C++符号还原成原始形式。
– `-f`、`–format`:指定输出格式(例如,`–format=bsd`、`–format=sysv`)。
– `-S`、`–print-size`:显示符号的大小。
– `-r`、`–reverse-sort`:按字母表逆序排列符号。
– `-u`、`–undefined-only`:只显示未定义的符号。小标题3:如何使用nm命令查看符号信息?
1.基本用法:`nm 文件名`
这将显示文件中的所有符号,包括函数、全局变量等。符号的类型和地址会被列出。
2.只显示外部(全局)符号:`nm -g 文件名`
使用这个命令,nm将只显示全局符号,也就是外部符号。
3.只显示动态符号:`nm -D 文件名`
使用这个命令,nm将只显示动态符号,也就是在运行时解析的符号。
4.显示符号的大小:`nm -S 文件名`
使用这个命令,nm将显示每个符号的大小。
5.C++符号还原:`nm -C 文件名`
使用这个命令,nm将把C++符号还原成原始形式。
小标题4:nm命令示例
1.查看可执行文件中的符号信息:`nm /usr/bin/ls`
这个命令将显示ls可执行文件中的所有符号,包括函数、全局变量等。2.查看目标文件中的符号信息:`nm object_file.o`
这个命令将显示目标文件object_file.o中的所有符号。3.查看共享库中的符号信息:`nm libexample.so`
这个命令将显示共享库libexample.so中的所有符号。4.只显示未定义的符号:`nm -u object_file.o`
这个命令将只显示目标文件object_file.o中的未定义符号。2年前