什么是** ELF **中的@object

问题描述

_thread int errno;

int get_errno(){return errno; }

当我拆卸它时,我得到了 对于x86

  .globl     errno
  .section  .tbss,"awT",@nobits
  .align    4
  .type     errno,@object
  .size     errno,4
  errno:
  .zero     4
   movl     %fs:errno@tpoff,%eax

.errno类型,@ object在此处表示什么>

请发送任何有效文件链接(如果有)

解决方法

.type errno,@object设置符号类型。它在ELF中表示为st_infoElf32_Sym结构中Elf64_Sym字段的一部分。 <elf.h>对这些符号使用STT_*常量,而@object对应于STT_OBJECT。可以使用st_infoELF32_ST_TYPE宏从ELF64_ST_TYPE字段中提取常量值。

在ELF规范中,这在Symbol Table一章中进行了描述。