LINUX.ORG.RU

В динамической библиотеке нет имён — в чём магия?

 , , ,


0

1

Начинаю на обывательском уровне копаться в устройстве библиотек. Решил для одной (динамической, python runtime) глянуть список имён (через nm) – выпал в осадок: их там нет.

Ведь компилятор берёт имена функций из заголовочного файла и ищет их в библиотеке. А если как-то иначе, если библиотека действительно не содержит именных меток, то как возможны такие чудеса оптимизации? В тексте библиотеки на самом деле сокрыта таблица соответствий имён функций и их адресов в файле?

Ответьте, кто знаком с устройством. Dynamic ELF



Последнее исправление: dyonya (всего исправлений: 1)

nm -D libname.so

man nm

--dynamic
           Display   the  dynamic  symbols  rather  than  the  normal
           symbols.  This is only  meaningful  for  dynamic  objects,
           such as certain types of shared libraries.

По умолчанию оно пытается читать .symtab, но это не то что ты хочешь увидеть в случае библиотек. ELF не SOшка.

Хотя вот SOшка может притворятся обычным исполняемым файлом и исполняться как оный. Но это уже другая история.

anonymous
()