分析ELF部分和符号大小的工具

我需要一种方法来分析我的GCC编译器的输出文件。 我正在编制裸机,我非常关心尺寸。 我可以使用交叉编译器提供的arm-none-eabi-objdump ,但如果存在用于此任务的工具,则解析输出不是我想要做的事情。 你知道这样的工具存在吗? 我的搜索没有结果。

还有一件事,我自己的代码中的每个函数都在它自己的部分。

您可以使用nmsize来获取函数和ELF节的大小。

要获取函数(以及具有静态存储持续时间的对象)的大小:

 $ nm --print-size --size-sort --radix=d tst.o 

第二列显示函数和对象的十进制大小。

要获得部分的大小:

 $ size -A -d tst.o 

第二列显示部分的十进制大小。

readelf实用程序可以方便地显示各种部分信息,包括部分大小,例如:

 arm-none-eabi-readelf -e foo.o 

如果您对运行时内存占用感兴趣,可以忽略没有设置“A”(分配)标志的部分。