valgrind output will go to log VALGRIND_DO_LEAK_CHECK 4 bytes in 1 blocks are definitely lost in loss record ... of ... by 0x........: doit() (leak_cpp_interior.cpp:115) by 0x........: main (leak_cpp_interior.cpp:130) LEAK SUMMARY: definitely lost: 4 bytes in 1 blocks indirectly lost: 0 bytes in 0 blocks possibly lost: 0 bytes in 0 blocks still reachable: 163 bytes in 8 blocks of which reachable via heuristic: stdstring : 56 bytes in 2 blocks length64 : 31 bytes in 1 blocks newarray : 28 bytes in 1 blocks multipleinheritance: 24 bytes in 2 blocks suppressed: 0 bytes in 0 blocks Reachable blocks (those to which a pointer was found) are not shown. To see them, rerun with: --leak-check=full --show-leak-kinds=all leak_check summary heuristics multipleinheritance LEAK SUMMARY: definitely lost: 4 (+0) bytes in 1 (+0) blocks indirectly lost: 0 (+0) bytes in 0 (+0) blocks possibly lost: 115 (+115) bytes in 4 (+4) blocks still reachable: 48 (-115) bytes in 4 (-4) blocks of which reachable via heuristic: stdstring : 0 (-56) bytes in 0 (-2) blocks length64 : 0 (-31) bytes in 0 (-1) blocks newarray : 0 (-28) bytes in 0 (-1) blocks multipleinheritance: 24 (+0) bytes in 2 (+0) blocks suppressed: 0 (+0) bytes in 0 (+0) blocks To see details of leaked memory, give 'full' arg to leak_check leak_check summary any heuristics newarray LEAK SUMMARY: definitely lost: 4 (+0) bytes in 1 (+0) blocks indirectly lost: 0 (+0) bytes in 0 (+0) blocks possibly lost: 111 (-4) bytes in 5 (+1) blocks still reachable: 52 (+4) bytes in 3 (-1) blocks of which reachable via heuristic: newarray : 28 (+28) bytes in 1 (+1) blocks multipleinheritance: 0 (-24) bytes in 0 (-2) blocks suppressed: 0 (+0) bytes in 0 (+0) blocks To see details of leaked memory, give 'full' arg to leak_check leak_check summary heuristics length64 LEAK SUMMARY: definitely lost: 4 (+0) bytes in 1 (+0) blocks indirectly lost: 0 (+0) bytes in 0 (+0) blocks possibly lost: 108 (-3) bytes in 5 (+0) blocks still reachable: 55 (+3) bytes in 3 (+0) blocks of which reachable via heuristic: length64 : 31 (+31) bytes in 1 (+1) blocks newarray : 0 (-28) bytes in 0 (-1) blocks suppressed: 0 (+0) bytes in 0 (+0) blocks To see details of leaked memory, give 'full' arg to leak_check leak_check summary heuristics stdstring LEAK SUMMARY: definitely lost: 4 (+0) bytes in 1 (+0) blocks indirectly lost: 0 (+0) bytes in 0 (+0) blocks possibly lost: 83 (-25) bytes in 4 (-1) blocks still reachable: 80 (+25) bytes in 4 (+1) blocks of which reachable via heuristic: stdstring : 56 (+56) bytes in 2 (+2) blocks length64 : 0 (-31) bytes in 0 (-1) blocks suppressed: 0 (+0) bytes in 0 (+0) blocks To see details of leaked memory, give 'full' arg to leak_check leak_check summary heuristics multipleinheritance,newarray,stdstring,length64 LEAK SUMMARY: definitely lost: 4 (+0) bytes in 1 (+0) blocks indirectly lost: 0 (+0) bytes in 0 (+0) blocks possibly lost: 0 (-83) bytes in 0 (-4) blocks still reachable: 163 (+83) bytes in 8 (+4) blocks of which reachable via heuristic: stdstring : 56 (+0) bytes in 2 (+0) blocks length64 : 31 (+31) bytes in 1 (+1) blocks newarray : 28 (+28) bytes in 1 (+1) blocks multipleinheritance: 24 (+24) bytes in 2 (+2) blocks suppressed: 0 (+0) bytes in 0 (+0) blocks To see details of leaked memory, give 'full' arg to leak_check leak_check summary heuristics all LEAK SUMMARY: definitely lost: 4 (+0) bytes in 1 (+0) blocks indirectly lost: 0 (+0) bytes in 0 (+0) blocks possibly lost: 0 (+0) bytes in 0 (+0) blocks still reachable: 163 (+0) bytes in 8 (+0) blocks of which reachable via heuristic: stdstring : 56 (+0) bytes in 2 (+0) blocks length64 : 31 (+0) bytes in 1 (+0) blocks newarray : 28 (+0) bytes in 1 (+0) blocks multipleinheritance: 24 (+0) bytes in 2 (+0) blocks suppressed: 0 (+0) bytes in 0 (+0) blocks To see details of leaked memory, give 'full' arg to leak_check leak_check summary heuristics none LEAK SUMMARY: definitely lost: 4 (+0) bytes in 1 (+0) blocks indirectly lost: 0 (+0) bytes in 0 (+0) blocks possibly lost: 139 (+139) bytes in 6 (+6) blocks still reachable: 24 (-139) bytes in 2 (-6) blocks of which reachable via heuristic: stdstring : 0 (-56) bytes in 0 (-2) blocks length64 : 0 (-31) bytes in 0 (-1) blocks newarray : 0 (-28) bytes in 0 (-1) blocks multipleinheritance: 0 (-24) bytes in 0 (-2) blocks suppressed: 0 (+0) bytes in 0 (+0) blocks To see details of leaked memory, give 'full' arg to leak_check Searching for pointers pointing in 20 bytes from 0x........ *0x........ interior points at 4 bytes inside 0x........ Address 0x........ is 0 bytes inside data symbol "ptr" block at 0x........ considered reachable by ptr 0x........ using newarray heuristic destruct MyClass destruct MyClass destruct MyClass destruct Ce destruct Be destruct Ae destruct Ce destruct Be destruct Ae destruct C destruct B destruct A destruct C destruct B destruct A Finished! HEAP SUMMARY: in use at exit: 0 bytes in 0 blocks total heap usage: 9 allocs, 9 frees, 167 bytes allocated All heap blocks were freed -- no leaks are possible For counts of detected and suppressed errors, rerun with: -v ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)