Выявите утечки памяти в общей библиотеке между dlopen и dlclose - PullRequest
0 голосов
/ 29 октября 2018

Мы пишем разделяемую библиотеку (скажем, slib.so), которая dlopen'ed, используется и dlclose'd в бесконечном исполняемом файле. Я хочу проверить утечки памяти в библиотеке slib.so, не подключая исполняемый файл.

Существует ли в Linux какой-либо инструмент для обнаружения утечек памяти в общей библиотеке? Поэтому мне нужен инструмент, который контролирует кучу между dlopen и dlclose и сообщает о проблемах после dlclose.

1 Ответ

0 голосов
/ 29 октября 2018

Мне нужен инструмент, который контролирует кучу между dlopen и dlclose и сообщает о проблемах после dlclose.

Будет работать любой из стандартных инструментов обнаружения утечек: Valgrind, Leak Sanitizer, TCMalloc heap checker и т. Д.

Все, что вам нужно сделать, это написать тривиальную исполняемую оболочку, что-то вроде:

#include <dlfcn.h>

int main()
{
  for (int j = 0; j < 10; j++) {
    void *h = dlopen("libslib.so", RTLD_NOW);
    // optionally exercise the library here.
    dlclose(h);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...