Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > таблица GLOBAL_OFFSET_TABLE


Автор: MAKCim 7.9.2008, 23:00
необходимо в функции инициализации динамической библиотеки найти адрес сабжа
ассемблер и парсинг /proc/<pid>/maps не использовать
вариант
Код

extern unsigned long _GLOBAL_OFFSET_TABLE_[];

int init(void) {
    void * ptr = _GLOBAL_OFFSET_TABLE_;
}

не работает, потому как по-умолчанию для получения адреса любого extern-символа компилятор использует эту же таблицу
иными словами, нужен какой-то способ (возможно через атрибуты), который позволил бы указать, что символ _GLOBAL_OFFSET_TABLE_ имеет абсолютное значение

Автор: gcc 7.9.2008, 23:36
гуголь.ком? smile 

Автор: MAKCim 8.9.2008, 08:40
gcc, 
весьма полезно и информативно

по теме, проблему решил
помог атрибут visibility("hidden")

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)