When I check my programs with valgrind for memory leaks I usually get a "still reachable" result, even if there is no memory leak. An example valgrind output:
HEAP SUMMARY:
in use at exit: 72,704 bytes in 1 blocks
total heap usage: 3 allocs, 2 frees, 74,752 bytes allocated
72,704 bytes in 1 blocks are still reachable in loss record 1 of 1
…
LEAK SUMMARY:
definitely lost: 0 bytes in 0 blocks
indirectly lost: 0 bytes in 0 blocks
possibly lost: 0 bytes in 0 blocks
still reachable: 72,704 bytes in 1 blocks
On valgrind's doc it says: "still reachable" means your program is probably ok -- it didn't free some memory it could have. This is quite common and often reasonable.
I wrote a simple program:
#include <iostream>
int main() {
return 0;
}
After I compile and check it with valgrind I get "still reachable". If I comment out the #include line, I don't get "still reachable". I have to research a little bit more.
No comments:
Post a Comment