linux的nm命令用法

不及物动词 其他 97

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    nm命令是Linux系统中的一个工具,用于查看二进制可执行文件、目标文件和共享库中的符号表信息。它可以显示函数、变量、对象以及这些符号的地址和类型等信息。

    使用nm命令的基本语法如下:
    nm [选项] 文件

    其中,选项包括:
    – -A或者–with-all:显示所有符号,包括未导出的符号;
    – -a或者–debug-syms:显示调试符号;
    – -D或者–dynamic:显示动态符号表;
    – -f或者–format=<格式>:指定输出格式,默认为sysv格式;
    – -p或者–portability:提供更大的兼容性,使用POSIX标准选项;
    – -t或者–defined-only:只显示已定义的符号;
    – –demangle:以可读的方式显示C++符号名;
    – –defined-only:仅显示已定义的符号;
    – –extern-only:只显示外部符号;
    – –format=<格式>:指定输出格式;
    – –no-sort:不对符号进行排序;
    – –print-armap:打印ar格式库文件;
    – –size-sort:按照符号大小进行排序;
    – –special-syms:显示特殊符号;
    – –synthetic:显示合成/虚拟符号。

    通过nm命令,我们可以获得二进制可执行文件、目标文件和共享库中的符号表信息,以便于我们分析和调试程序。在进行系统调试、性能优化以及代码分析时,nm命令是一个非常有用的工具。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    nm命令是Linux中的一个工具,用于查看目标文件(如可执行文件、静态库、共享库)的符号表。它可以显示出目标文件中的函数和变量符号的地址和类型信息,对于调试和分析程序非常有用。下面是一些常用的nm命令用法:

    1. 基本用法
    nm命令的基本用法是在终端中输入`nm`后跟上要查看的目标文件的路径,例如`nm /usr/lib/libc.so`。如果不指定目标文件路径,则默认查看当前目录下的a.out文件的符号表。

    2. 显示所有的符号
    使用`-A`选项可以显示目标文件中的所有符号,包括函数、变量、外部函数等。例如`nm -A /usr/lib/libc.so`会显示出libc库中所有的符号。

    3. 过滤显示符号
    nm命令还可以根据特定的符号类型进行过滤显示。常用的选项包括:
    – `-u`:只显示未定义符号,即引用了但没有定义的符号。
    – `-D`:只显示已定义符号,即被其他文件引用的符号。
    – `-t`:只显示全局符号,不包括局部符号。
    – `-C`:以C++的方式解析符号名。

    4. 显示符号地址
    使用`-a`选项可以显示目标文件中的符号地址。地址可以是相对地址,也可以是绝对地址。相对地址是相对于文件起始地址的偏移量,绝对地址是指具体的内存地址。例如`nm -a /usr/lib/libc.so`会显示libc库中所有符号及其地址。

    5. 列出动态符号表
    使用`-D`选项可以列出目标文件中的动态符号表。动态符号表包含由动态链接器解析的函数和变量符号。例如`nm -D /usr/lib/libc.so`会列出libc库中的动态符号。

    总结:
    nm命令是Linux中用于查看目标文件符号表的工具,它可以显示函数和变量符号的地址和类型信息。常用的用法包括基本用法、显示所有符号、过滤显示符号、显示符号地址和列出动态符号表。通过使用不同的选项,我们可以根据需要获取所需的符号信息。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    “nm”命令是一个用于分析目标文件中的符号表的工具,可用于显示目标文件中定义的函数、变量以及其他符号的信息。它可用于静态库和可执行文件。

    下面是”nm”命令的常见用法和操作流程:

    1. 基本用法:

    在命令行中输入以下命令格式:

    “`
    nm [选项] <目标文件>
    “`

    其中,`[选项]`是可选的,`<目标文件>`是要分析的目标文件的路径或文件名。

    2. 常用选项:

    – `-A`:显示目标文件中所有符号的信息,包括函数、变量以及其他符号的地址、大小、类型等。
    – `-C`:显示符号的名称(函数名、变量名)。
    – `-D`:显示动态链接符号。
    – `-u`:显示未定义(未引用)的符号。
    – `-t`:按字母顺序对符号进行排序。
    – `-r`:反向排序,按字母顺序对符号进行反向排序。
    – `-l`:显示符号所在的文件名和行号。
    – `-S`:显示每个符号的大小。
    – `-g`:显示所有调试符号。

    3. 示例:

    – 显示目标文件中的所有符号:

    “`
    nm <目标文件>
    “`

    – 显示目标文件中的符号及其地址:

    “`
    nm -A <目标文件>
    “`

    – 显示目标文件中的未定义符号:

    “`
    nm -u <目标文件>
    “`

    – 显示目标文件中的符号及其名称:

    “`
    nm -C <目标文件>
    “`

    4. 其他操作:

    – 分析静态库文件:

    “`
    nm -A -l <静态库文件>
    “`

    – 分析可执行文件:

    “`
    nm -D <可执行文件>
    “`

    – 结合其他命令:

    `nm`命令可以与其他命令结合使用,如`grep`命令进行过滤符号信息,`awk`命令进行格式化输出等。

    以上是关于”nm”命令的用法和操作流程的介绍。希望能对您有所帮助!

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部