objdump - голова ELF - значение флагов? - PullRequest
5 голосов
/ 08 марта 2011

$ objdump -f ./a.out

./a.out:     file format elf32-i386
architecture: i386, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x080484e0

$ objdump -f function.o

function.o:     file format elf32-i386
architecture: i386, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x00000000

Что такое флаги (флаги 0x00000011: ИЛИ флаги 0x00000112 :)? Nothin в заголовочном файле ELF имеет этот флаг. e_flag содержит 0.

Кто-нибудь имеет представление о его значении?

Спасибо

Ответы [ 2 ]

7 голосов
/ 03 марта 2012

Это специфичные для BFD битовые маски.В дереве исходного кода binutils см. Bfd / bfd-in2.h:

  /* BFD contains relocation entries.  */
#define HAS_RELOC      0x01

  /* BFD is directly executable.  */
#define EXEC_P         0x02
...
  /* BFD has symbols.  */
#define HAS_SYMS       0x10
...
  /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
     linker sets this by default, but clears it for -r or -n or -N).  */
#define D_PAGED        0x100

Эти значения флага не будут отображаться в вашем объектном файле;это просто представление в памяти, которое использует libbfd.

0 голосов
/ 12 марта 2011

Это флаги LibBFD.Вы пытаетесь перекодировать objdump?... =)

...