интерпретация файла карты gcc - PullRequest
9 голосов
/ 02 сентября 2010

Мне нужно найти размер кода для библиотеки, разработанной с использованием C на Linux.Я сгенерировал файл карты, используя параметры компоновщика gcc для примера приложения, использующего эту библиотеку.

Файл карты довольно исчерпывающий.Как узнать размер кода библиотеки из файла карты?любые указатели на любую документацию о том, как интерпретировать файл карты, также будут очень полезны.

1 Ответ

8 голосов
/ 02 сентября 2010

Вы хотите узнать размер машинных инструкций в данном общем объекте?Зачем вам файл карты?

Это дает размер раздела .text.В разделе .text хранится исполняемый код:

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

В этом примере имеется 2c218 байт исполняемого текста.В десятичном формате это около 180 КиБ:

$ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...