解释gcc地图文件

时间:2010-09-02 17:31:41

标签: gcc

我需要找到在Linux上使用C开发的库的代码大小。我已经使用gcc链接器选项针对使用此库的示例应用程序生成了映射文件。

地图文件非常详尽。如何从映射文件中找出库的代码大小?任何关于如何解释地图文件的文档的指针也将非常有用。

1 个答案:

答案 0 :(得分:8)

您想了解给定共享对象中机器指令的大小吗?你为什么需要地图文件?

这给出了.text部分的大小。 .text部分是存储可执行代码的地方:

$ objdump  -x /usr/bin/objdump | grep .text
 13 .text         0002c218  0000000000403320  0000000000403320  00003320  2**4

在此示例中,有2c218个字节的可执行文本。在十进制中,这大约是180 KiB:

$ printf %d\\n 0x2c218
180760

编辑:这就是库的样子:

$ objdump -x /usr/lib/libcairo.so | grep .text
 11 .text         00054c18  000000000000cc80  000000000000cc80  0000cc80  2**4
$ printf %d\\n 0x54c18
347160