2010-09-02 3 views
9

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

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

+1

Ну, я обнаружил еще один способ найти размер кода, который я подумал, что я должен поделиться со всеми вами. Команда «размер». Вы можете узнать больше об использовании здесь - http://www.cyberciti.biz/faq/linux-find-size-of-text-data-segment-bss-uninitialized-data/ – sthustfo

ответ

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 

Edit: Вот как это выглядит с библиотекой:

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

Спасибо. Продавцу нужен размер кода библиотеки, чтобы он мог сообщить об этом клиенту. Если я запустил objdump, как вы предложили против образца исполняемого файла, тогда он дает размер текста библиотеки, а также пример приложения. Есть ли способ получить размер текста только библиотеки? – sthustfo

+0

Ах, извините. Вместо того, чтобы работать с исполняемым файлом, вы должны запустить его против рассматриваемой библиотеки. Я просто использовал/usr/bin/objdump в качестве (плохого) примера для вывода. –

+2

Если вопрос исходил от ** sales ** person, вы также должны добавить разделы '.data' и' .bss' (инициализированные и унифицированные данные), что означает, что размер - это просто размер файла .a if раздел. Играйте немой, клиенты обычно не заботятся о разделе .text, данные имеют значение. – rurban

Смежные вопросы