39

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

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

4

3 回答 3

75

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

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

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

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

要获取部分的大小:

$ size -A -d tst.o

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

于 2012-07-30T11:39:41.237 回答
10

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

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

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

于 2012-07-30T14:18:53.773 回答
0

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

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

于 2019-10-07T19:22:09.280 回答