Как можно найти мою общую библиотеку?
Я создал общую библиотеку "mylib.so" в папке /tmp. Я хотел бы в профиле mylib.so. Для этого я предпринял следующие шаги
- экспорт LD_PROFILE_OUTPUT=${PWD}
- экспорт LD_PROFILE= mylib.so
- экспорт LD_LIBRARY_PATH=/tmp
- выполнить my_app, который связан с mylib.so
После этих 4 шагов я "должен" иметь mylib.so.profile в папке /tmp. но такого файла нет. Я подозреваю, что sprof не может найти mylib.so. Как я могу сказать sprof искать mylib.so в папке /tmp? Я использую Redhat Enterprise Linux 5.0.
1 ответ
Все шаги выше действительны. Моя ошибка заключалась в том, что разделяемая библиотека называлась mylib.so.1, а не mylib.so. Я запустил ldd на my_app, и он показал, что my_app требует mylib.so.1. Затем я изменил экспорт LD_PROFILE=mylib.so.1 и все работало нормально.