通过分析size 命令源码确认各个字段大小和来源

问题

可执行文件通过size默认选项berkeley查询可以得到text、data、bss各个段的大小,但是想要通过.map分析代码或者哪些常量的具体大小时需要进一步知道更详细的数据。而通过size xxx–format=SysV 查到.text 和.rodata 仅占用一部分大小,而其他的section到底是属于berkeley模式中的哪类就需要通过分析size源码。

源码下载

dawn@ubuntu:~$ which size
/usr/bin/size
dawn@ubuntu:~$ dpkg -S /usr/bin/size
binutils: /usr/bin/size
dawn@ubuntu:~$ 

通过which和dpkg -S 组合确认命令size是在binutils包中。
具体下载、编译、安装binutils包的方法如下,我们其实只要下载到源码包那一步(步骤3)就行了。
1、在获取源码包之前,确保在软件源配置文件/etc/apt/sources.list中添加了deb-src项
2、使用如下命令获取源码包的详细信息:
sudo apt-cache showsrc binutils 这用来查询当前镜像站点中是否有该源码包。
3、源码包中通常包含3个文件,分别以dsc,orig.tar.gz和diff.gz为后缀名。
sudo apt-get source binutils 命令来获取源码包,它会将源码包下载到用户当前目录
并在命令执行过程中,调用dpkg-source命令,根据dsc文件中的信息,将源码包解压到同名目录中,应用程序的源代码就在这里面。
sudo apt-get source binutils
要强调的是,在下载源码包前,必

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值