Dolopen с RTLD_NODELETE вызывает утечку памяти для многократной загрузки библиотеки

У меня есть TCP-сервер, который принимает имя общей библиотеки и выполняет его с помощью dl библиотека.
По какой-то причине (обработчик сигнала не вызывается для dlopen или dlclose) Я использую dlopen() с RTLD_NODELETE которые избегают dlclose() звонить . Мой вопрос
1. Что происходит в следующем случае:
— Первый раз я позвонил dlopen('myLib.so', RTLD_LAZY | RTLD_NODELETE)
— Моя библиотека загрузилась и вызвала некоторую функцию foo() который присутствует в myLib.so
— В следующий раз я обновлю свой foo() определение. Тогда еще раз, если я позвоню dlopen('myLib.so', RTLD_LAZY | RTLD_NODELETE) тогда будет мой dlopen загрузить новую библиотеку или повторно использовать старую
2. Предположим, что если все идет хорошо, то делай dlopen('xxxx.so', RTLD_LAZY | RTLD_NODELETE) вызвать утечку памяти, если я позвоню с n номер библиотеки т.е. xxxx.so может быть a.so,b.so,c.so,..., n.so
Уже проверил dlopen / dlsym / dlclose (dlfcn.h) вызывает утечку памяти но мой вопрос для множественной загрузки общего объекта

Пожалуйста, игнорируйте отступ. Я новичок в стеке над потоком. Пожалуйста, не ставьте отрицательные оценки

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]