
valgrind output will go to log
VALGRIND_DO_LEAK_CHECK
8 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: 8 bytes in 1 blocks
   indirectly lost: 0 bytes in 0 blocks
     possibly lost: 0 bytes in 0 blocks
   still reachable: 239 bytes in 8 blocks
                      of which reachable via heuristic:
                        stdstring          : 80 bytes in 2 blocks
                        length64           : 31 bytes in 1 blocks
                        newarray           : 32 bytes in 1 blocks
                        multipleinheritance: 48 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: 8 (+0) bytes in 1 (+0) blocks
   indirectly lost: 0 (+0) bytes in 0 (+0) blocks
     possibly lost: 143 (+143) bytes in 4 (+4) blocks
   still reachable: 96 (-143) bytes in 4 (-4) blocks
                      of which reachable via heuristic:
                        stdstring          : 0 (-80) bytes in 0 (-2) blocks
                        length64           : 0 (-31) bytes in 0 (-1) blocks
                        newarray           : 0 (-32) bytes in 0 (-1) blocks
                        multipleinheritance: 48 (+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: 8 (+0) bytes in 1 (+0) blocks
   indirectly lost: 0 (+0) bytes in 0 (+0) blocks
     possibly lost: 128 (-15) bytes in 4 (+0) blocks
   still reachable: 111 (+15) bytes in 4 (+0) blocks
                      of which reachable via heuristic:
                        newarray           : 63 (+63) bytes in 2 (+2) blocks
                        multipleinheritance: 0 (-48) 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: 8 (+0) bytes in 1 (+0) blocks
   indirectly lost: 0 (+0) bytes in 0 (+0) blocks
     possibly lost: 160 (+32) bytes in 5 (+1) blocks
   still reachable: 79 (-32) bytes in 3 (-1) blocks
                      of which reachable via heuristic:
                        length64           : 31 (+31) bytes in 1 (+1) blocks
                        newarray           : 0 (-63) 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 stdstring
LEAK SUMMARY:
   definitely lost: 8 (+0) bytes in 1 (+0) blocks
   indirectly lost: 0 (+0) bytes in 0 (+0) blocks
     possibly lost: 111 (-49) bytes in 4 (-1) blocks
   still reachable: 128 (+49) bytes in 4 (+1) blocks
                      of which reachable via heuristic:
                        stdstring          : 80 (+80) 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: 8 (+0) bytes in 1 (+0) blocks
   indirectly lost: 0 (+0) bytes in 0 (+0) blocks
     possibly lost: 0 (-111) bytes in 0 (-4) blocks
   still reachable: 239 (+111) bytes in 8 (+4) blocks
                      of which reachable via heuristic:
                        stdstring          : 80 (+0) bytes in 2 (+0) blocks
                        length64           : 31 (+31) bytes in 1 (+1) blocks
                        newarray           : 32 (+32) bytes in 1 (+1) blocks
                        multipleinheritance: 48 (+48) 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: 8 (+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: 239 (+0) bytes in 8 (+0) blocks
                      of which reachable via heuristic:
                        stdstring          : 80 (+0) bytes in 2 (+0) blocks
                        length64           : 31 (+0) bytes in 1 (+0) blocks
                        newarray           : 32 (+0) bytes in 1 (+0) blocks
                        multipleinheritance: 48 (+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: 8 (+0) bytes in 1 (+0) blocks
   indirectly lost: 0 (+0) bytes in 0 (+0) blocks
     possibly lost: 191 (+191) bytes in 6 (+6) blocks
   still reachable: 48 (-191) bytes in 2 (-6) blocks
                      of which reachable via heuristic:
                        stdstring          : 0 (-80) bytes in 0 (-2) blocks
                        length64           : 0 (-31) bytes in 0 (-1) blocks
                        newarray           : 0 (-32) bytes in 0 (-1) blocks
                        multipleinheritance: 0 (-48) 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 8 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, 247 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)
