linux下nm命令输出

不及物动词 其他 285

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    nm命令用于查看目标文件或可执行文件中的符号表(Symbol Table),即查看文件中已定义和已引用的符号(函数、变量等)。在Linux下,使用nm命令可以查看目标文件、静态库文件和可执行文件的符号表,从而帮助我们了解相关文件的符号信息。

    输入命令”nm”后可以加上以下参数:

    1. -A 或 –with-symbol-attributes:显示符号的附加属性信息,例如符号的可见状态(local、global、weak)、符号的类型(函数、变量等)等。

    2. -C 或 –demangle:对C++符号进行解码(demangle),将C++的编码符号转换为人类可读的形式。

    3. -D 或 –dynamic:显示动态符号(即动态库中的符号)。

    4. -n 或 –numeric-sort:以符号的数值地址进行排序。

    5. -r 或 –reverse-sort:以相反的顺序进行排序。

    6. -S 或 –print-size:显示符号的大小(仅适用于对象文件)。

    7. -t 或 –radix-sort:按照数字进制进行排序,例如16进制、10进制等。

    8. -u 或 –undefined-only:只显示未定义符号。

    9. -v 或 –version:显示nm命令的版本信息。

    使用示例:

    1. 查看目标文件中的符号表:
    “`
    nm <目标文件>
    “`

    2. 查看可执行文件中的符号表:
    “`
    nm <可执行文件>
    “`

    3. 查看静态库文件中的符号表:
    “`
    nm <静态库文件>
    “`

    4. 查看动态库文件中的符号表:
    “`
    nm -D <动态库文件>
    “`

    5. 查看符号表并显示符号的大小:
    “`
    nm -S <目标文件/可执行文件/静态库文件>
    “`

    以上是在Linux下使用nm命令查看符号表的基本操作和参数说明,通过nm命令,可以帮助我们分析目标文件和可执行文件中的符号信息,对于开发和调试非常有用。

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

    在Linux系统中,nm命令用于显示目标文件中的符号表。符号表是一个记录了函数名、变量名以及其他与程序运行相关的标识符的表格。以下是nm命令的输出内容及其含义:

    1. 符号的地址: 输出显示了符号在目标文件中的地址。地址可以以十六进制表示或者以十进制表示。

    2. 符号的类型: 输出列出了每个符号的类型,以帮助识别符号的性质。例如,常见的符号类型包括函数(F)、对象文件(O)和未定义符号(U)。

    3. 符号的大小: 对于可执行文件和共享库,nm命令还会显示符号的大小。大小以字节为单位。

    4. 符号的名称: 输出显示了每个符号的名称。它可以是函数名、变量名或其他标识符名称。

    5. 符号的绑定: 输出显示了符号的绑定类型。常见绑定类型包括全局(G)和局部(L)。全局符号可以被其他文件引用,而局部符号只在当前文件中可见。

    除了以上的基本内容外,nm命令还可以显示其他一些信息,具体取决于命令行选项的使用。常用选项有:

    – -A:显示所有符号,包括未绑定的本地符号。
    – -C:尝试从C++符号中截取出函数名。
    – -l:显示符号所属的源代码文件和行号。
    – -D:显示符号的代码地址和相关调试信息。
    – -p:显示符号的值,在C程序中通常是变量的地址。

    总之,nm命令是一个非常有用的工具,它可以帮助我们分析目标文件的符号信息,用于调试和优化程序。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux系统中,nm命令用于显示目标文件、可执行文件或者目标文件存档中的符号表。nm命令能够显示出目标文件中所有的符号、符号的大小和符号的类型。

    使用nm命令的一般语法如下:
    “`
    nm [选项] 文件名
    “`

    在这里,选项可以是以下之一:
    – `-A`:按地址排序,而不是按符号名称排序。
    – `-a`:显示所有符号,包括未参与动态重定位的符号。
    – `-C`:显示C++符号,而不是只显示C符号。
    – `-D`:仅显示动态符号。
    – `-d`:仅显示数据段中的符号。
    – `-r`:显示仅链接到其他符号的符号。
    – `-u`:显示未定义的符号。
    – `-t`:显示每个符号的剩余标志。

    除了这些选项,您还可以指定要使用的目标文件的路径,以及希望输出的目标符号表的位置。

    下面是nm命令的常见用法示例:

    ### 示例一:查看已编译的可执行文件的符号表
    “`
    nm /path/to/executable
    “`

    这个命令将会显示可执行文件中的所有符号,包括函数和全局变量。

    ### 示例二:查看目标文件的符号表
    “`
    nm /path/to/object/file.o
    “`

    这个命令将会显示目标文件中的所有符号,包括函数和全局变量。

    ### 示例三:按照地址排序显示符号表
    “`
    nm -A /path/to/executable
    “`

    这个命令将会按照符号的地址排序显示可执行文件中的符号表。

    ### 示例四:只显示未定义的符号
    “`
    nm -u /path/to/executable
    “`

    这个命令将会只显示可执行文件中的未定义符号,即没有在当前文件中定义的符号。

    ### 示例五:只显示数据段中的符号
    “`
    nm -d /path/to/executable
    “`

    这个命令将会只显示可执行文件中数据段中的符号,其中包括全局数据变量。

    ### 示例六:只显示动态符号
    “`
    nm -D /path/to/executable
    “`

    这个命令将会只显示可执行文件中的动态符号,即可重定位的符号。

    以上是nm命令的基本用法和常见示例。通过使用不同的选项,您可以根据自己的需求来显示和过滤符号表的信息。

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

400-800-1024

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

分享本页
返回顶部