“size”vs“readelf -t”命令给出不同的段长度

时间:2013-11-20 15:38:30

标签: linux-kernel size objdump readelf

size my_obj.o,以字节为单位列出text, .data segments的大小。

但是readelf -t my_obj.o给出了不同大小(更小)的文字&数据段。

 **text    .data   .bss**
 200890   4797     88   
 146172   1960     88 

对象转储也会产生类似的结果。

1 个答案:

答案 0 :(得分:3)

默认情况下,

size以“Berkeley兼容模式”运行。 在此模式下,它将包含某些设置了ALLOC位的非可执行只读部分(如.rodata)作为文本,并将某些非可执行的非NOBITS部分分类为数据而不是bss 。 如果您在“系统V兼容模式”size中运行size -A my_obj.o,则应该为您提供接近readelf -t报告的值的大小。