【问题标题】:How to interpret @abc(01) in dynamic symbol name of an .so ELF formatted file?如何在 .so ELF 格式文件的动态符号名称中解释 @abc(01)?
【发布时间】:2019-01-18 08:24:46
【问题描述】:

我有两个非常相似的 .so 文件。对它们使用 readelf --syms --wide 我收到...

... 第一个:

631: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __cxa_guard_acquire@CXXABI_1.3 (18)
666: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __cxa_pure_virtual@CXXABI_1.3 (18)

...第二次:

671: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __cxa_guard_acquire@CXXABI_1.3 (21)    
706: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __cxa_pure_virtual@CXXABI_1.3 (21)

(18) 和 (21) 分别是什么意思?

【问题讨论】:

    标签: elf abi demangler


    【解决方案1】:

    (18) 和 (21) 分别是什么意思?

    它是对应版本定义中.vd_version 的值(elf.h 中的ElfXX_Verdef)。例如:

    readelf -Ws /bin/date | egrep ' (setenv|clock_gettime)'
        14: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND clock_gettime@GLIBC_2.17 (5)
        15: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND setenv@GLIBC_2.2.5 (3)
    
    readelf -V /bin/date
    ...
    Version needs section '.gnu.version_r' contains 1 entry:
     Addr: 0x0000000000000fd8  Offset: 0x000fd8  Link: 6 (.dynstr)
      000000: Version: 1  File: libc.so.6  Cnt: 6
      0x0010:   Name: GLIBC_2.14  Flags: none  Version: 7
      0x0020:   Name: GLIBC_2.4  Flags: none  Version: 6
      0x0030:   Name: GLIBC_2.17  Flags: none  Version: 5
      0x0040:   Name: GLIBC_2.3.4  Flags: none  Version: 4
      0x0050:   Name: GLIBC_2.2.5  Flags: none  Version: 3
      0x0060:   Name: GLIBC_2.3  Flags: none  Version: 2
    

    请注意,GLIBC_2.2.5 具有 Version: 3,GLIBC_2.17 具有 Version: 5。

    【讨论】:

    • 你能再解释一下吗?就我而言,这两个文件都输出“GLIBC_2.2.5”等内容,但一次使用版本 16,一次使用版本 18。以类似的方式,它们都显示“CXXABI_1.3”一次使用版本 18,一次使用版本 21 . 所以这个Version并没有真正指定库的版本,是吗?那它代表什么?
    • @gebbissimo 请使用您感到困惑的 actual 输出编辑您的问题(或提出新问题)。 “那它代表什么?”——它代表.vd_version字段的值。您的问题似乎是:“该值是如何设置的”,这是一个完全不同的问题。
    猜你喜欢
    • 2013-12-27
    • 2011-10-29
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 2015-12-20
    相关资源
    最近更新 更多