В моей C-программе я использую некоторые основные функции libcurl.Сегодня я запустил valgrind, чтобы проверить, есть ли у меня утечки памяти, и valgrind сошел с ума, сообщив о множественных ошибках.
Я отследил его в основном до:
CURL *curl;
CURLcode res;
curl = curl_easy_init();
// ...
curl_easy_cleanup(curl);
Если я удалю код, который используетlibcurl полностью, valgrind не сообщает об ошибках.
Я уже читал, что есть некоторые проблемы с использованием valgrind с libcurl и ssl, но я не получаю никакие https URL-адреса или тому подобное.
Что я могу сделать?Могу ли я сделать так, чтобы valgrind заткнулся об ошибках libcurl (возможно, о ложных срабатываниях?) И сообщал только об ошибках из моего кода?Из-за огромного количества ошибок, несмотря на самое простое использование libcurl, вывод valgrind довольно запутанный.
К сожалению, у меня не установлена отладочная версия libcurl, поэтому valgrind даже не сообщает номера строк / файлов, в которых он находитсяобнаружил утечки.Сообщения об ошибках выглядят так:
==27330==
==27330== HEAP SUMMARY:
==27330== in use at exit: 34,960 bytes in 2,406 blocks
==27330== total heap usage: 20,130 allocs, 17,724 frees, 2,511,576 bytes allocated
==27330==
==27330== 40 (20 direct, 20 indirect) bytes in 1 blocks are definitely lost in loss record 383 of 445
==27330== at 0x4025BD3: malloc (vg_replace_malloc.c:236)
==27330== by 0x4B173FD: ???
==27330== by 0x4B17A8B: ???
==27330== by 0x4B84957: ???
==27330== by 0x4B849FD: ???
==27330== by 0x4B72814: ???
==27330== by 0x4B734C1: ???
==27330== by 0x4B78DE2: ???
==27330== by 0x4B7524B: ???
==27330== by 0x49B2F76: ???
==27330== by 0x49C9ECB: ???
==27330== by 0x49BC96A: ???
...