5

$ 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 :)?ELFヘッダーファイルのNothinにはこのフラグがあります。e_flagには0が含まれています。

誰かが彼の意味について考えを持っていますか?

ありがとう

4

2 に答える 2

9

これらは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が使用するメモリ内の表現にすぎません。

于 2012-03-03T00:20:32.623 に答える
-1

それらはLibBFDフラグです。objdumpを再コーディングしようとしていますか?... =)

于 2011-03-12T20:57:05.063 に答える