分析ELF部分和符号大小的工具
我需要一种方法来分析我的GCC编译器的输出文件。 我正在编制裸机,我非常关心尺寸。 我可以使用交叉编译器提供的arm-none-eabi-objdump
,但如果存在用于此任务的工具,则解析输出不是我想要做的事情。 你知道这样的工具存在吗? 我的搜索没有结果。
还有一件事,我自己的代码中的每个函数都在它自己的部分。
您可以使用nm
和size
来获取函数和ELF节的大小。
要获取函数(以及具有静态存储持续时间的对象)的大小:
$ nm --print-size --size-sort --radix=d tst.o
第二列显示函数和对象的十进制大小。
要获得部分的大小:
$ size -A -d tst.o
第二列显示部分的十进制大小。
readelf实用程序可以方便地显示各种部分信息,包括部分大小,例如:
arm-none-eabi-readelf -e foo.o
如果您对运行时内存占用感兴趣,可以忽略没有设置“A”(分配)标志的部分。