O tamanho dado por readelf
é o tamanho do objeto binário; para main
, essa é a sequência de instruções de máquina que implementam sua função. No meu sistema, vejo
57: 00000000004004d7 21 FUNC GLOBAL DEFAULT 13 main
de readelf
, que combina muito bem com o código compilado, conforme mostrado por gcc -S
ou objdump -d
:
0000000000000000 <main>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: bf 00 00 00 00 mov $0x0,%edi
9: e8 00 00 00 00 callq e <main+0xe>
e: b8 00 00 00 00 mov $0x0,%eax
13: 5d pop %rbp
14: c3 retq
Os 21 bytes são os bytes 55
, 48
, 89
, e5
etc.