Поиск адреса загрузки разделяемой библиотеки в Linux

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

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

(GDB недоступен в моей настройке). Спасибо.

8
задан Matt 28 June 2013 в 18:47
поделиться