Mac 上"size"命令中的数据部分大小



给定 Mac OS X 10.5 上小型可执行文件上的"size"命令的以下输出,__DATA下的值是多少?是未初始化的数据细分受众群大小还是已初始化的数据细分受众群大小?我发现令人困惑的是,无论我是否初始化程序中的(唯一的)全局数组,这个值(以及其余值)似乎都不会改变。

我想这个命令在 Linux 和 Mac 上的工作方式不同?

__TEXT  __DATA  __OBJC  others  dec hex
4096    4096    0   4294971392  4294979584  100003000

在 Linux 上,格式为

   text    data     bss     dec     hex filename
   1281     520      32    1833     729 a.out

BSS是零初始化全局变量和局部静态变量的大小(以字节为单位)。我验证了它们(数据、bss 等)随着变量数量及其初始化值的变化而适当变化。

需要注意的一点是,没有任何参数size会自动选择CWD中的a.out

我完全不知道Mac中的事情。我的猜测是 __OBJC = BSS .另请检查如何调用 size 命令

所有静态和全局变量都被初始化,只是它们是否初始化为零或其他值的问题。 初始化为零的变量进入__DATA的__bss部分。 其他变量将进入__DATA段的其他部分。

相关内容

最新更新