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

时间:2012-07-30 11:13:52

标签: c parsing gcc cross-compiling objdump

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

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

3 个答案:

答案 0 :(得分:47)

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

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

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

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

获取部分的大小:

$ size -A -d tst.o

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

答案 1 :(得分:7)

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

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

如果您对运行时内存占用感兴趣,可以忽略那些没有' A' (分配)标志集。

答案 2 :(得分:0)

puncover使用objdump和其他一些gcc工具生成html页面,您可以轻松浏览这些页面以确定代码和数据空间的去向。

它比gcc工具的文本输出要好得多。