Linux nm命令

Linux的nm命令主要用于列出对象文件中的符号。以下是一些使用示例:

  1. 基本用法:只需运行’nm’命令,并将对象文件的名称作为输入传递给它。例如,我使用’nm’命令与’apl’elf 文件:nm apl

  2. 在输出中为每个符号前面添加文件名:可以使用-A命令行选项来实现这一点。例如:nm -A apl

  3. 使nm显示调试符号:要使nm在输出中也显示调试符号,使用-a命令行选项。例如:nm -a apl

  4. 使nm解码低级符号名称:如果你想,你甚至可以强制nm将低级符号名称解码为用户级名称。这可以通过使用-C命令行选项来实现。例如:nm -C apl

  5. 显示引用某个符号的对象文件:以下命令显示了在我当前目录中引用符号‘func’的所有对象文件:$ nm -A ./*.o | grep func

  6. 在可执行文件中显示所有未定义的符号:以下命令列出了可执行文件‘1’中的所有未定义符号:$ nm -u 1


nm命令默认的排序方式是按照符号在文件中出现的顺序。但是,你可以使用以下选项来改变排序方式:

  1. 按地址数字排序:使用-n或者-v或者--numeric-sort选项,可以按照符号的地址数字进行排序。例如:nm -n apl

  2. 不排序:如果你不想对符号进行任何排序,只需在命令中加入-p或者--no-sort选项。例如:nm -p apl

  3. 反向排序:如果你想从文件的末尾开始显示符号表,可以使用-r选项。例如:nm -r apl

至于查找符号,你可以使用管道和grep命令来查找特定的符号。例如,如果你想查找名为“func”的符号,你可以这样做: nm apl | grep func。这将会在输出中查找包含“func”的所有行。

以上就是一些基本的使用示例,更多详细信息和选项,你可以参考man nm来获取。

参考链接:https://www.explainshell.com/explain/1/nm

你可能感兴趣的:(我的博客,linux)