2014-10-14 4 views
0

У меня есть несколько тестов, которые запускаются, и в конце я запускаю Valgrind для проверки использования памяти в библиотеках. Valgrind постоянно жалуется:Должен ли я подавлять? Если да, то как подавить из Makefile

==27022== HEAP SUMMARY: 
==27022==  in use at exit: 6,139 bytes in 3 blocks 
==27022== total heap usage: 609 allocs, 606 frees, 19,877,073 bytes allocated 
==27022== 
==27022== 32 bytes in 1 blocks are still reachable in loss record 1 of 3 
==27022== at 0x4A08121: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) 
==27022== by 0x3A1A60168F: _dlerror_run (in /usr/lib64/libdl-2.17.so) 
==27022== by 0x3A1A601197: dlsym (in /usr/lib64/libdl-2.17.so) 
==27022== by 0x3A9D8A796D: ??? (in /usr/lib64/nvidia/libGL.so.331.67) 
==27022== by 0x3A9DAE965F: ??? (in /usr/lib64/nvidia/libGL.so.331.67) 
==27022== by 0x3A9DB1CB1F: ??? 
==27022== by 0x3A9D8CD36A: ??? (in /usr/lib64/nvidia/libGL.so.331.67) 
==27022== 
==27022== 83 bytes in 1 blocks are still reachable in loss record 2 of 3 
==27022== at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) 
==27022== by 0x3A1A2863F9: strdup (in /usr/lib64/libc-2.17.so) 
==27022== by 0x3A9D8A964E: ??? (in /usr/lib64/nvidia/libGL.so.331.67) 
==27022== by 0x6578652F32322F: ??? 
==27022== 
==27022== 6,024 bytes in 1 blocks are definitely lost in loss record 3 of 3 
==27022== at 0x4A08121: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) 
==27022== by 0x3A9D8C032E: ??? (in /usr/lib64/nvidia/libGL.so.331.67) 
==27022== 
==27022== LEAK SUMMARY: 
==27022== definitely lost: 6,024 bytes in 1 blocks 
==27022== indirectly lost: 0 bytes in 0 blocks 
==27022==  possibly lost: 0 bytes in 0 blocks 
==27022== still reachable: 115 bytes in 2 blocks 
==27022==   suppressed: 0 bytes in 0 blocks 

Это не похоже на мою библиотеку. Должен ли я беспокоиться о предупреждениях тезисов? Или я должен попытаться устранить эти утечки? Если я должен подавить то, что было бы самым чистым способом сделать это из Makefile?

ответ

1

Трудно сказать, следует ли их подавлять или нет, но если вы уверены, что ваша библиотека чистая, вы можете создать suppression file.

Затем вы можете вызвать Valgrind с помощью флага «--suppressions». Если имя файла подавления является suppfile:

> valgrind --suppressions=suppfile ./program 

Если вы выполняете Valgrind из Makefile, добавьте флаг подавленных в команду VALGRIND. Вы также можете создать default options file «.valgrindrc», который вы помещаете в тот же каталог, что и ваш Makefile. В этом файле введите любые аргументы.

 Смежные вопросы

  • Нет связанных вопросов^_^