源代码linux命令nm

不及物动词 其他 73

回复

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

    nm命令是一个在Linux操作系统中用于查看目标文件或可执行文件中符号表的命令。下面是nm命令的用法和一些常见选项:

    1. 基本用法:
    nm [options] file

    其中,file 是要查看的目标文件或可执行文件。

    2. 常见选项:
    -A, –debug-syms 显示所有调试符号
    -a, –debug-sympaths 显示调试符号路径
    -C, –demangle[=style] 解码C++符号名
    -D, –dynamic 显示动态符号
    -g, –extern-only 只显示外部符号
    -h, –help 显示帮助信息
    -p, –no-sort 不排序符号表
    -P, –portability 输出可移植格式
    -s, –size-sort 按符号大小排序
    -t, –print-size 打印符号大小
    -T, –defined-only 只显示已定义符号
    -u, –undefined-only 只显示未定义符号
    -v, –version 显示版本信息

    3. 示例:
    3.1 查看目标文件中的符号表:
    nm test.o

    3.2 查看可执行文件中的符号表:
    nm a.out

    3.3 只显示已定义符号:
    nm -t test.o

    3.4 只显示未定义符号:
    nm -u test.o

    3.5 解码C++符号名:
    nm -C test.o

    3.6 显示动态符号:
    nm -D a.out

    3.7 显示所有调试符号:
    nm -A test.o

    以上就是nm命令的一些基本用法和常见选项。使用这些选项可以更方便地查看目标文件或可执行文件中的符号表,帮助我们进行调试和分析。

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

    nm命令用于显示目标文件或者二进制文件中的符号表信息。它是一个很强大的工具,可用于查看目标文件中的函数、变量、共享库以及其他符号的详细信息。该命令在Linux系统中广泛使用,对于开发和调试程序非常有用。

    以下是关于nm命令的一些重要信息:

    1. 基本语法:
    nm [options] file…

    你可以指定一个或多个文件作为命令的输入,可以是目标文件、二进制文件或者库文件。

    2. 输出格式:
    nm命令的默认输出格式为十六进制地址和符号类型,符号类型包括函数、数据、弱符号等等。你也可以使用不同的选项自定义输出格式。

    3. 符号类型:
    nm命令将符号分为不同的类型,可以用来判断符号的作用和属性。
    – T 表示符号为一个函数
    – D 表示符号为一个初始化数据段
    – B 表示符号为一个非初始化数据段
    – U 表示符号为一个未定义的符号(需要在其他文件中找到定义)
    – V 表示符号为一个弱符号
    – W 表示符号为一个弱符号,但是它有一个定义
    – A 表示符号为一个绝对符号

    4. 查找特定符号:
    你可以使用nm命令来查找特定的符号或者函数。例如,你可以通过nm命令来检查一个目标文件中的特定函数是否存在,并获取其地址信息。这对于调试和代码分析非常有用。

    5. 结合其他工具使用:
    nm命令通常与其他工具一起使用,比如objdump和readelf,以便对目标文件进行更详细的分析和调试。这些工具可以帮助你深入了解一个程序的内部结构,并帮助你调试和修复错误。

    总之,nm命令是Linux系统中一个非常有用的工具,用于查看目标文件或二进制文件的符号表信息。通过理解和使用该命令,开发者可以更好地了解程序的内部结构,并进行调试和分析。

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

    nm命令是一个非常有用的工具, 它用于展示二进制文件(可执行文件、共享库、目标文件)中的符号表。nm命令可以用来查看函数、变量、符号等的信息,对于调试和分析二进制文件非常有用。

    以下是有关nm命令的详细介绍:

    ## 基本语法

    nm命令的基本语法如下:

    “`
    nm [选项] 文件名
    “`

    ## 主要选项

    ### 显示符号信息

    – `-A`:显示所有符号信息。
    – `-C`:显示C++符号信息。
    – `-D`:显示动态符号信息。
    – `-d`:显示动态符号信息,包括外部符号。
    – `-g`:显示全局符号信息。
    – `-l`:显示符号库信息。
    – `-u`:显示未定义符号信息。

    ### 显示文件中的符号

    – `-t`:按地址排序。
    – `-p`:按符号名称排序,显示文件名和行号。

    ### 显示符号的值和类型

    – `-v`:显示符号的值和类型。

    ### 其他选项

    – `-a`:不显示位置信息。
    – `-B`:只显示本地符号。
    – `-C`:显示demangled的函数名。
    – `-S`:显示符号类型。
    – `-s`:不排序输出结果。
    – `-r`:反向排序结果。

    ## 操作流程

    使用nm命令可以很容易地查看二进制文件中的符号信息。下面是一个简单的操作流程:

    1. 打开终端,并导航到包含二进制文件的目录。

    2. 运行`nm [选项] 文件名`命令,将其替换为您要查看符号信息的文件名。例如,如果要查看可执行文件`myprogram`的符号信息,运行`nm myprogram`命令。

    3. 根据您的需求选择适当的选项来显示所需的符号信息。您可以使用`-A`选项显示所有符号信息,或使用其他选项来过滤显示的信息。

    4. 根据命令的输出,您可以查看文件中的函数、变量和符号信息。

    ## 示例

    以下是使用nm命令查看二进制文件中的符号信息的示例:

    “`bash
    nm -A myprogram
    “`

    这将显示myprogram文件中的所有符号信息。

    “`bash
    nm -g -t myprogram
    “`

    这将显示myprogram文件中的全局符号信息,并按地址排序。

    “`bash
    nm -C -u myprogram
    “`

    这将显示myprogram文件中的未定义的C++符号信息。

    ## 结论

    通过使用nm命令,您可以很容易地查看二进制文件中的符号信息,以便于调试和分析。通过选择适当的选项,您可以过滤并显示所需的信息,以满足您的需求。

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

400-800-1024

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

分享本页
返回顶部