Valgrind Reports Possible Memory Leak using OpenCV C++ Libraries
I have created a very simple program, which essentially does nothing in particular other than include the opencv2/core/core.hpp
header.
However, when I run the program using Valgrind it always reports "possibly lost: 4,676 bytes in 83 blocks" seeming to suggest that there may be a memory leak in my program or the OpenCV C++ bindings.
#include <opencv2/core/core.hpp>
int main() {
return 0;
}
The output from Valgrind is:
==30842== Memcheck, a memory error detector
==30842== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==30842== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info
==30842== Command: ./opencv-testing
==30842==
==30842==
==30842== HEAP SUMMARY:
==30842== in use at exit: 307,778 bytes in 1,401 blocks
==30842== total heap usage: 2,628 allocs, 1,227 frees, 400,413 bytes allocated
==30842==
==30842== LEAK SUMMARY:
==30842== definitely lost: 0 bytes in 0 blocks
==30842== indirectly lost: 0 bytes in 0 blocks
==30842== possibly lost: 4,676 bytes in 83 blocks
==30842== still reachable: 303,102 bytes in 1,318 blocks
==30842== suppressed: 0 bytes in 0 blocks
==30842== Rerun with --leak-check=full to see details of leaked memory
==30842==
==30842== For counts of detected and suppressed errors, rerun with: -v
==30842== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Is OpenCV really leaking memory, or is Valgrind just misinterpreting the memory management system that OpenCV uses? Is there a way to prevent these "possibly lost" memory errors from occurring when using OpenCV?
Rerun with --leak-check=full to see details of leaked memory
can you do that and see where exactly openCV is leaking memory? And actually, the possible losses are probably no losses at all. Your program isn't even addressing OpenCV processing/code!I assumed that the possible losses are probably not actually losses at all, but it seems a bit strange that there are even "possible" leaks being reported by Valgrind. The output from running Valgrind with the --leak-check=full flag can be viewed here: http://pastebin.com/GGD7d0NP.
It is not particularly apparent to me where the possible leaks are occurring based on the output of Valgrind.
The report shows that the leaks occur from native linux libraries and NOT from openCV.
OK, thank you for clarifying! I apologize for the confusion. This may be beyond the scope of this question, but is there any obvious reason that I am missing as to why the native Linux libraries would be leaking memory?