linux的nm命令下的t与t

worktile 其他 1003

回复

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

    在Linux的nm命令中,t和T是两种不同的标记,用于表示符号的类型。

    1. t:t代表text section,表示该符号是定义在程序的代码段中的。这些符号通常是函数或全局变量,可以在程序的其他部分进行调用或引用。t标记表示该符号在代码段中定义,但在其他地方未使用。

    2. T:T也代表text section,但与t不同的是,T标记表示该符号被多个目标文件引用并链接在一起。这些符号通常是函数或全局变量,可以在不同的目标文件之间进行调用或引用。

    需要注意的是,t和T标记只在nm命令的输出结果中表示符号的类型,通过这两个标记可以更好地理解符号在可执行文件或库文件中的作用和使用情况。

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

    在Linux的nm命令下,t和T表示的是符号的类型,其中t表示的是局部非初始化数据段(Local Uninitialized Data Section),T表示的是全局非初始化数据段(Global Uninitialized Data Section)。

    1. t和T是nm命令输出结果中的一个字段,表示符号在可执行文件或共享库中的位置和类型。
    2. t表示的是局部非初始化数据段,这些符号是函数或变量,它们在编译时已经被分配了空间,但是其初始值为0或NULL。
    3. T表示的是全局非初始化数据段,这些符号是全局变量或静态变量,它们在编译时被分配了空间,但是其初始值也是0或NULL。
    4. t和T表示的符号在内存中的位置是相同的,都位于BSS段,也被称为Zero-initialized Data Segment(零初始化数据段)。
    5. 典型的例子是全局静态变量,当程序开始运行时,系统会自动将这些变量的内存空间清零,以保证它们的初始值为0。

    总的来说,t和T区别在于符号的作用域。t表示的是局部变量,其作用范围仅限于所在函数或文件;而T表示的是全局变量,可以在整个程序中访问。但是它们都属于同一个数据段,即BSS段,且都被初始化为0或NULL。

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

    在Linux环境中,`nm`命令用于显示给定的目标文件或者二进制文件中的符号表(symbol table)。符号表中包含了各种符号(函数、变量等)的信息,如名称、地址等。`nm`命令可以提供有关目标文件中的符号的详细信息。其中,`nm`命令下的`t`与`t`是两个不同的选项,下面将逐个进行解释。

    1. nm命令的-t选项
    `nm -t`命令用来打印符号表中各个符号的类型信息。类型信息包括符号的存储类别(storage class)以及符号的类型(type)。存储类别指定了符号的存储位置和作用域等属性,而类型则表示了符号所代表的含义。常见的存储类别包括:

    – `U`:未定义符号(undefined symbol),表示在目标文件中引用了一个需要在其他地方定义的符号。
    – `A`:绝对符号(absolute symbol),表示该符号的地址是绝对的,不依赖于任何其他符号。
    – `B`:未初始化的数据段(bss segment)中的符号。
    – `C`:已初始化的数据段(data segment)中的符号。
    – `D`:已初始化的数据段中的全局符号。
    – `T`:文本段(text segment)中的符号,表示函数或者全局常量。
    – `R`:只读数据段(read-only segment)中的符号。
    – `W`:初始化的数据段中的只读符号。
    – `V`:普通的全局变量。

    通过使用`nm -t`命令可以查看符号表中的每个符号对应的存储类别和类型信息,帮助我们更好地理解目标文件中的符号定义和引用关系。

    2. nm命令的-T选项
    `nm -T`命令用来显示目标文件中的符号对应的动态链接信息。在Linux环境中,使用动态链接的程序通常不会将所有的代码和数据都包含在可执行文件中,而是使用共享库(shared library)来存放一部分代码和数据。共享库中的符号通过动态链接器(dynamic linker)在程序运行时进行符号解析和链接。`nm -T`命令可以显示出目标文件中使用到的共享库中的函数和变量。

    通过使用`nm -T`命令可以查看目标文件中引用的共享库及其中的符号。这对于调试程序,分析链接关系以及解决符号冲突等问题非常有用。

    综上所述,`nm`命令下的`-t`选项用于打印符号表中各个符号的类型信息,`-T`选项用于显示目标文件中的符号对应的动态链接信息。这两个选项可以帮助开发者更好地理解和分析目标文件中的符号定义和链接关系。

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

400-800-1024

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

分享本页
返回顶部