objdump动态符号表中的Base是什么意思?

objdump动态符号表中的Base是什么意思?

考虑以下objdump -T在 GNUls实用程序上运行(打印动态符号表条目)的截断输出。

/usr/bin/ls:     file format elf64-x86-64

DYNAMIC SYMBOL TABLE:
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.3)  __ctype_toupper_loc
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) getenv
0000000000000000      DO *UND*  0000000000000000 (GLIBC_2.2.5) __progname
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) sigprocmask
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.3.4) __snprintf_chk
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) raise
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.34) __libc_start_main
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) abort
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) __errno_location
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) strncmp
0000000000000000  w   D  *UND*  0000000000000000  Base        _ITM_deregisterTMCloneTable

Base最后一行第6列是什么意思?例如,很明显这(GLIBC_2.2.5)是功能glibc的版本strncmp。但是,这些函数是在哪些外部库中Base定义的呢?任何理解这一点的指示都会有所帮助。

答案1

Base意味着没有与该符号关联的版本,IE提供符号的库不提供多个版本(或者在符号本身的情况下lsls包含单个版本)。ls可以使用 来查看 所使用的库ldd /bin/ls

ldd 输出中的多个 GLIBC 版本意味着什么?了解详情。

相关内容