0
Исполняемый файл, a.out
, загружает общие библиотеки 1.so
, 2.so
и 3.so
. В каждой из трех библиотек реализована функция func()
. Когда вызывается func()
, я хочу определить, какая реализация func()
выполнена.Как определить общую библиотеку, функции которой в настоящее время исполняются исполняемым файлом
Я пробовал ltrace
в PID исполняемого файла. Он отображает только вызов func()
, но не общую библиотеку.
Любые предложения?
Две подобные вопросы (но не точные дубликаты, имхо): HTTP://stackoverflow.com/questions/6538501/linking-two-shared-libraries-with-some-of-the-same-symbols http://stackoverflow.com/questions/29079742/same-symbols- in-different-libraries-and-linking-order – DyZ
Если вам известен адрес функции, вы можете найти его на карте памяти процесса ('/ proc//maps'). –
Я согласен «не дублировать», но если вы знаете порядок передачи библиотек компоновщику, вопросы очень сильно подразумевают, что он будет «func» с первого. –