Memory Debugging Output

Quick links:

Output from Dr. Memory

32-bit MinGW: (All of the false positive 28-byte memory leaks have been removed.)

  1. test1 - simple memory leak
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #2: LEAK 123 direct bytes 0x02d60310-0x02d6038b + 0 indirect bytes
    ~~Dr.M~~ # 0 replace_operator_new_array               [d:\drmemory_package\common\alloc_replace.c:2928]
    ~~Dr.M~~ # 1 test1                                    [c:\Users\mmead\drmem/mem.bugs.cpp:7]
    ~~Dr.M~~ # 2 main                                     [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    
  2. test2 - allocate with new[], deallocate with delete
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new[], freed with operator delete
    ~~Dr.M~~ # 0 replace_operator_delete_nothrow               [d:\drmemory_package\common\alloc_replace.c:2974]
    ~~Dr.M~~ # 1 test2                                         [c:\Users\mmead\drmem/mem.bugs.cpp:13]
    ~~Dr.M~~ # 2 main                                          [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.292 in thread 5188
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new_array               [d:\drmemory_package\common\alloc_replace.c:2928]
    ~~Dr.M~~ Note: # 1 test2                                    [c:\Users\mmead\drmem/mem.bugs.cpp:12]
    ~~Dr.M~~ Note: # 2 main                                     [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    
  3. test3 - allocate with new, deallocate with delete[]
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new, freed with operator delete[]
    ~~Dr.M~~ # 0 replace_operator_delete_array               [d:\drmemory_package\common\alloc_replace.c:2998]
    ~~Dr.M~~ # 1 test3                                       [c:\Users\mmead\drmem/mem.bugs.cpp:19]
    ~~Dr.M~~ # 2 main                                        [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.307 in thread 112
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new               [d:\drmemory_package\common\alloc_replace.c:2899]
    ~~Dr.M~~ Note: # 1 test3                              [c:\Users\mmead\drmem/mem.bugs.cpp:18]
    ~~Dr.M~~ Note: # 2 main                               [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    
  4. test4 - allocate with malloc, deallocate with delete
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with malloc, freed with operator delete
    ~~Dr.M~~ # 0 replace_operator_delete_nothrow               [d:\drmemory_package\common\alloc_replace.c:2974]
    ~~Dr.M~~ # 1 test4                                         [c:\Users\mmead\drmem/mem.bugs.cpp:25]
    ~~Dr.M~~ # 2 main                                          [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.309 in thread 5688
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_malloc               [d:\drmemory_package\common\alloc_replace.c:2576]
    ~~Dr.M~~ Note: # 1 test4                        [c:\Users\mmead\drmem/mem.bugs.cpp:24]
    ~~Dr.M~~ Note: # 2 main                         [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    
  5. test5 - allocate with new, deallocate with free
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new, freed with free
    ~~Dr.M~~ # 0 replace_free               [d:\drmemory_package\common\alloc_replace.c:2706]
    ~~Dr.M~~ # 1 test5                      [c:\Users\mmead\drmem/mem.bugs.cpp:31]
    ~~Dr.M~~ # 2 main                       [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.308 in thread 4612
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new               [d:\drmemory_package\common\alloc_replace.c:2899]
    ~~Dr.M~~ Note: # 1 test5                              [c:\Users\mmead\drmem/mem.bugs.cpp:30]
    ~~Dr.M~~ Note: # 2 main                               [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    
  6. test6 - buffer overflow
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: UNADDRESSABLE ACCESS beyond heap bounds: writing 0x02ed0315-0x02ed0316 1 byte(s) within 0x02ed0314-0x02ed0316
    ~~Dr.M~~ # 0 test6               [c:\Users\mmead\drmem/mem.bugs.cpp:37]
    ~~Dr.M~~ # 1 main                [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.273 in thread 5480
    ~~Dr.M~~ Note: refers to 0 byte(s) beyond last valid byte in prior malloc
    ~~Dr.M~~ Note: prev lower malloc:  0x02ed0310-0x02ed0315
    ~~Dr.M~~ Note: instruction: data16 mov    $0x0064 -> 0x04(%eax)
    
  7. test7 - uninitialized read
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: UNINITIALIZED READ: reading register edx
    ~~Dr.M~~ # 0 replace_strlen               [d:\drmemory_package\drmemory\replace.c:412]
    ~~Dr.M~~ # 1 libstdc++-6.dll!?           +0x0      (0x6fef4999 )
    ~~Dr.M~~ # 2 main                         [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.291 in thread 848
    ~~Dr.M~~ Note: instruction: test   %edx %edx
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #2: UNINITIALIZED READ: reading register eax
    ~~Dr.M~~ # 0 msvcrt.dll!ftell    +0x19d    (0x762f962d <msvcrt.dll+0x7962d>)
    ~~Dr.M~~ # 1 msvcrt.dll!fwrite   +0x5a     (0x762f96db <msvcrt.dll+0x796db>)
    ~~Dr.M~~ # 2 libstdc++-6.dll!?   +0x0      (0x6fe5eb96 )
    ~~Dr.M~~ # 3 libstdc++-6.dll!?   +0x0      (0x6fef49a9 )
    ~~Dr.M~~ # 4 main                 [c:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.323 in thread 848
    ~~Dr.M~~ Note: instruction: cmp    %eax $0xffffffff
    


64-bit MinGW:

  1. test1 - simple memory leak
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: LEAK 123 direct bytes 0x00000000027c0ac0-0x00000000027c0b3b + 0 indirect bytes
    ~~Dr.M~~ # 0 replace_operator_new_array               [d:\drmemory_package\common\alloc_replace.c:2928]
    ~~Dr.M~~ # 1 libwinpthread-1.dll!?                   +0x0      (0x0000000064944d85 <libwinpthread-1.dll+0x4d85>)
    ~~Dr.M~~ # 2 msvcrt.dll!getptd_noexit
    ~~Dr.M~~ # 3 msvcrt.dll!errno     
    ~~Dr.M~~ # 4 libstdc++-6.dll!?                       +0x0      (0x000000006fcdcff8 <libstdc++-6.dll+0x9cff8>)
    ~~Dr.M~~ # 5 test1                                    [C:\Users\mmead\drmem/mem.bugs.cpp:7]
    ~~Dr.M~~ # 6 main                                     [C:\Users\mmead\drmem/mem.bugs.cpp:72]
    
  2. test2 - allocate with new[], deallocate with delete
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new[], freed with operator delete
    ~~Dr.M~~ # 0 replace_operator_delete_nothrow               [d:\drmemory_package\common\alloc_replace.c:2974]
    ~~Dr.M~~ # 1 libwinpthread-1.dll!?                        +0x0      (0x0000000064944d85 <libwinpthread-1.dll+0x4d85>)
    ~~Dr.M~~ # 2 msvcrt.dll!getptd_noexit
    ~~Dr.M~~ # 3 msvcrt.dll!errno     
    ~~Dr.M~~ # 4 libstdc++-6.dll!?                            +0x0      (0x000000006fcdcff8 <libstdc++-6.dll+0x9cff8>)
    ~~Dr.M~~ # 5 test2                                         [C:\Users\mmead\drmem/mem.bugs.cpp:13]
    ~~Dr.M~~ # 6 main                                          [C:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.156 in thread 1652
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new_array               [d:\drmemory_package\common\alloc_replace.c:2928]
    ~~Dr.M~~ Note: # 1 libwinpthread-1.dll!?                   +0x0      (0x0000000064944d85 <libwinpthread-1.dll+0x4d85>)
    ~~Dr.M~~ Note: # 2 msvcrt.dll!getptd_noexit
    ~~Dr.M~~ Note: # 3 msvcrt.dll!errno     
    ~~Dr.M~~ Note: # 4 libstdc++-6.dll!?                       +0x0      (0x000000006fcdcff8 <libstdc++-6.dll+0x9cff8>)
    ~~Dr.M~~ Note: # 5 test2                                    [C:\Users\mmead\drmem/mem.bugs.cpp:12]
    ~~Dr.M~~ Note: # 6 main                                     [C:\Users\mmead\drmem/mem.bugs.cpp:72]
    
  3. test3 - allocate with new, deallocate with delete[]
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new, freed with operator delete[]
    ~~Dr.M~~ # 0 replace_operator_delete_array_nothrow               [d:\drmemory_package\common\alloc_replace.c:2998]
    ~~Dr.M~~ # 1 libwinpthread-1.dll!?                              +0x0      (0x0000000064944d85 <libwinpthread-1.dll+0x4d85>)
    ~~Dr.M~~ # 2 msvcrt.dll!getptd_noexit
    ~~Dr.M~~ # 3 msvcrt.dll!errno     
    ~~Dr.M~~ # 4 libstdc++-6.dll!?                                  +0x0      (0x000000006fcdcff8 <libstdc++-6.dll+0x9cff8>)
    ~~Dr.M~~ # 5 test3                                               [C:\Users\mmead\drmem/mem.bugs.cpp:19]
    ~~Dr.M~~ # 6 main                                                [C:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.140 in thread 5964
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new               [d:\drmemory_package\common\alloc_replace.c:2899]
    ~~Dr.M~~ Note: # 1 libwinpthread-1.dll!?             +0x0      (0x0000000064944d85 <libwinpthread-1.dll+0x4d85>)
    ~~Dr.M~~ Note: # 2 msvcrt.dll!getptd_noexit
    ~~Dr.M~~ Note: # 3 msvcrt.dll!errno     
    ~~Dr.M~~ Note: # 4 libstdc++-6.dll!?                 +0x0      (0x000000006fcdcff8 <libstdc++-6.dll+0x9cff8>)
    ~~Dr.M~~ Note: # 5 test3                              [C:\Users\mmead\drmem/mem.bugs.cpp:18]
    ~~Dr.M~~ Note: # 6 main                               [C:\Users\mmead\drmem/mem.bugs.cpp:72]
    
  4. test4 - allocate with malloc, deallocate with delete
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with malloc, freed with operator delete
    ~~Dr.M~~ # 0 replace_operator_delete_nothrow               [d:\drmemory_package\common\alloc_replace.c:2974]
    ~~Dr.M~~ # 1 libwinpthread-1.dll!?                        +0x0      (0x0000000064944d85 <libwinpthread-1.dll+0x4d85>)
    ~~Dr.M~~ # 2 msvcrt.dll!getptd_noexit
    ~~Dr.M~~ # 3 msvcrt.dll!errno     
    ~~Dr.M~~ # 4 libstdc++-6.dll!?                            +0x0      (0x000000006fcdcff8 <libstdc++-6.dll+0x9cff8>)
    ~~Dr.M~~ # 5 test4                                         [C:\Users\mmead\drmem/mem.bugs.cpp:25]
    ~~Dr.M~~ # 6 main                                          [C:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.296 in thread 5492
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_malloc               [d:\drmemory_package\common\alloc_replace.c:2576]
    ~~Dr.M~~ Note: # 1 libwinpthread-1.dll!?       +0x0      (0x0000000064944d85 <libwinpthread-1.dll+0x4d85>)
    ~~Dr.M~~ Note: # 2 msvcrt.dll!getptd_noexit
    ~~Dr.M~~ Note: # 3 msvcrt.dll!errno     
    ~~Dr.M~~ Note: # 4 libstdc++-6.dll!?           +0x0      (0x000000006fcdcff8 <libstdc++-6.dll+0x9cff8>)
    ~~Dr.M~~ Note: # 5 test4                        [C:\Users\mmead\drmem/mem.bugs.cpp:24]
    ~~Dr.M~~ Note: # 6 main                         [C:\Users\mmead\drmem/mem.bugs.cpp:72]
    
  5. test5 - allocate with new, deallocate with free
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new, freed with free
    ~~Dr.M~~ # 0 replace_free                [d:\drmemory_package\common\alloc_replace.c:2706]
    ~~Dr.M~~ # 1 libwinpthread-1.dll!?      +0x0      (0x0000000064944d85 <libwinpthread-1.dll+0x4d85>)
    ~~Dr.M~~ # 2 msvcrt.dll!getptd_noexit
    ~~Dr.M~~ # 3 msvcrt.dll!errno     
    ~~Dr.M~~ # 4 libstdc++-6.dll!?          +0x0      (0x000000006fcdcff8 <libstdc++-6.dll+0x9cff8>)
    ~~Dr.M~~ # 5 test5                       [C:\Users\mmead\drmem/mem.bugs.cpp:31]
    ~~Dr.M~~ # 6 main                        [C:\Users\mmead\drmem/mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.203 in thread 4372
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new               [d:\drmemory_package\common\alloc_replace.c:2899]
    ~~Dr.M~~ Note: # 1 libwinpthread-1.dll!?             +0x0      (0x0000000064944d85 <libwinpthread-1.dll+0x4d85>)
    ~~Dr.M~~ Note: # 2 msvcrt.dll!getptd_noexit
    ~~Dr.M~~ Note: # 3 msvcrt.dll!errno     
    ~~Dr.M~~ Note: # 4 libstdc++-6.dll!?                 +0x0      (0x000000006fcdcff8 <libstdc++-6.dll+0x9cff8>)
    ~~Dr.M~~ Note: # 5 test5                              [C:\Users\mmead\drmem/mem.bugs.cpp:30]
    ~~Dr.M~~ Note: # 6 main                               [C:\Users\mmead\drmem/mem.bugs.cpp:72]
    
  6. test6 - buffer overflow
  7. test7 - uninitialized read


32-bit Microsoft:

  1. test1 - simple memory leak
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: LEAK 123 direct bytes 0x01aec028-0x01aec0a3 + 0 indirect bytes
    ~~Dr.M~~ # 0 replace_operator_new_array               [d:\drmemory_package\common\alloc_replace.c:2928]
    ~~Dr.M~~ # 1 test1                                    [c:\users\mmead\drmem\mem.bugs.cpp:7]
    ~~Dr.M~~ # 2 main                                     [c:\users\mmead\drmem\mem.bugs.cpp:72]
    
  2. test2 - allocate with new[], deallocate with delete
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new[], freed with operator delete
    ~~Dr.M~~ # 0 replace_operator_delete_nothrow               [d:\drmemory_package\common\alloc_replace.c:2974]
    ~~Dr.M~~ # 1 operator delete                               [f:\dd\vctools\crt\vcstartup\src\heap\delete_scalar_size.cpp:31]
    ~~Dr.M~~ # 2 test2                                         [c:\users\mmead\drmem\mem.bugs.cpp:13]
    ~~Dr.M~~ # 3 main                                          [c:\users\mmead\drmem\mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.382 in thread 6548
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new_array               [d:\drmemory_package\common\alloc_replace.c:2928]
    ~~Dr.M~~ Note: # 1 test2                                    [c:\users\mmead\drmem\mem.bugs.cpp:12]
    ~~Dr.M~~ Note: # 2 main                                     [c:\users\mmead\drmem\mem.bugs.cpp:72]
    
  3. test3 - allocate with new, deallocate with delete[]
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new, freed with operator delete[]
    ~~Dr.M~~ # 0 replace_operator_delete_array               [d:\drmemory_package\common\alloc_replace.c:2998]
    ~~Dr.M~~ # 1 test3                                       [c:\users\mmead\drmem\mem.bugs.cpp:19]
    ~~Dr.M~~ # 2 main                                        [c:\users\mmead\drmem\mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.407 in thread 2876
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new               [d:\drmemory_package\common\alloc_replace.c:2899]
    ~~Dr.M~~ Note: # 1 test3                              [c:\users\mmead\drmem\mem.bugs.cpp:18]
    ~~Dr.M~~ Note: # 2 main                               [c:\users\mmead\drmem\mem.bugs.cpp:72]
    
  4. test4 - allocate with malloc, deallocate with delete
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with malloc, freed with operator delete
    ~~Dr.M~~ # 0 replace_operator_delete_nothrow               [d:\drmemory_package\common\alloc_replace.c:2974]
    ~~Dr.M~~ # 1 operator delete                               [f:\dd\vctools\crt\vcstartup\src\heap\delete_scalar_size.cpp:31]
    ~~Dr.M~~ # 2 test4                                         [c:\users\mmead\drmem\mem.bugs.cpp:25]
    ~~Dr.M~~ # 3 main                                          [c:\users\mmead\drmem\mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:00.388 in thread 1652
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_malloc               [d:\drmemory_package\common\alloc_replace.c:2576]
    ~~Dr.M~~ Note: # 1 test4                        [c:\users\mmead\drmem\mem.bugs.cpp:24]
    ~~Dr.M~~ Note: # 2 main                         [c:\users\mmead\drmem\mem.bugs.cpp:72]
    
  5. test5 - allocate with new, deallocate with free
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new, freed with free
    ~~Dr.M~~ # 0 replace_free               [d:\drmemory_package\common\alloc_replace.c:2706]
    ~~Dr.M~~ # 1 test5                      [c:\users\mmead\drmem\mem.bugs.cpp:31]
    ~~Dr.M~~ # 2 main                       [c:\users\mmead\drmem\mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:01.006 in thread 2932
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new               [d:\drmemory_package\common\alloc_replace.c:2899]
    ~~Dr.M~~ Note: # 1 test5                              [c:\users\mmead\drmem\mem.bugs.cpp:30]
    ~~Dr.M~~ Note: # 2 main                               [c:\users\mmead\drmem\mem.bugs.cpp:72]
    
  6. test6 - buffer overflow
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: UNADDRESSABLE ACCESS beyond heap bounds: writing 0x016dc02d-0x016dc02e 1 byte(s)
    ~~Dr.M~~ # 0 replace_strcpy               [d:\drmemory_package\drmemory\replace.c:598]
    ~~Dr.M~~ # 1 test6                        [c:\users\mmead\drmem\mem.bugs.cpp:37]
    ~~Dr.M~~ # 2 main                         [c:\users\mmead\drmem\mem.bugs.cpp:72]
    ~~Dr.M~~ Note: @0:00:01.022 in thread 988
    ~~Dr.M~~ Note: refers to 0 byte(s) beyond last valid byte in prior malloc
    ~~Dr.M~~ Note: prev lower malloc:  0x016dc028-0x016dc02d
    ~~Dr.M~~ Note: instruction: mov    $0x00 -> (%eax)
    
  7. test7 - uninitialized read
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: LEAK 123 direct bytes 0x000001814935e680-0x000001814935e6fb + 0 indirect bytes
    ~~Dr.M~~ # 0 replace_operator_new_array                           [d:\drmemory_package\common\alloc_replace.c:2928]
    ~~Dr.M~~ # 1 std::use_facet<>                                     [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:546]
    ~~Dr.M~~ # 2 std::locale::~locale                                 [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:410]
    ~~Dr.M~~ # 3 std::ctype<>::widen                                  [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:2578]
    ~~Dr.M~~ # 4 std::basic_ios<>::widen                              [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\ios:125]
    ~~Dr.M~~ # 5 std::ios_base::_Init                                 [f:\dd\vctools\crt\crtw32\stdhpp\xiosbase:558]
    ~~Dr.M~~ # 6 __crt_strtox::parse_integer<>                        [minkernel\crts\ucrt\inc\corecrt_internal_strtox.h:202]
    ~~Dr.M~~ # 7 __crt_seh_guarded_call<>::operator()<>               [minkernel\crts\ucrt\devdiv\vcruntime\inc\internal_shared.h:208]
    ~~Dr.M~~ # 8 test1                                                [c:\users\mmead\drmem\mem.bugs.cpp:7]
    ~~Dr.M~~ # 9 std::basic_ostream<>::basic_ostream<>                [f:\dd\vctools\crt\crtw32\stdhpp\ostream:54]
    ~~Dr.M~~ #10 atexit                                               [f:\dd\vctools\crt\vcstartup\src\utility\utility.cpp:275]
    ~~Dr.M~~ #11 __scrt_common_main_seh                               [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    


64-bit Microsoft:

  1. test1 - simple memory leak
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: LEAK 123 direct bytes 0x01aec028-0x01aec0a3 + 0 indirect bytes
    ~~Dr.M~~ # 0 replace_operator_new_array               [d:\drmemory_package\common\alloc_replace.c:2928]
    ~~Dr.M~~ # 1 test1                                    [c:\users\mmead\drmem\mem.bugs.cpp:7]
    ~~Dr.M~~ # 2 main                                     [c:\users\mmead\drmem\mem.bugs.cpp:72]
    
  2. test2 - allocate with new[], deallocate with delete
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new[], freed with operator delete
    ~~Dr.M~~ # 0 replace_operator_delete_nothrow               [d:\drmemory_package\common\alloc_replace.c:2974]
    ~~Dr.M~~ # 1 std::_Facet_Register                          [f:\dd\vctools\crt\crtw32\stdcpp\locale0.cpp:73]
    ~~Dr.M~~ # 2 std::use_facet<>                              [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:546]
    ~~Dr.M~~ # 3 std::locale::~locale                          [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:410]
    ~~Dr.M~~ # 4 std::ctype<>::widen                           [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:2578]
    ~~Dr.M~~ # 5 std::basic_ios<>::widen                       [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\ios:125]
    ~~Dr.M~~ # 6 std::ios_base::_Init                          [f:\dd\vctools\crt\crtw32\stdhpp\xiosbase:558]
    ~~Dr.M~~ # 7 test2                                         [c:\users\mmead\drmem\mem.bugs.cpp:13]
    ~~Dr.M~~ # 8 atexit                                        [f:\dd\vctools\crt\vcstartup\src\utility\utility.cpp:275]
    ~~Dr.M~~ # 9 __scrt_common_main_seh                        [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    ~~Dr.M~~ #10 KERNEL32.dll!BaseThreadInitThunk             +0x13     (0x00007fff1db73034 <KERNEL32.dll+0x13034>)
    ~~Dr.M~~ Note: @0:00:00.530 in thread 4848
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new_array                           [d:\drmemory_package\common\alloc_replace.c:2928]
    ~~Dr.M~~ Note: # 1 std::_Facet_Register                                 [f:\dd\vctools\crt\crtw32\stdcpp\locale0.cpp:73]
    ~~Dr.M~~ Note: # 2 std::use_facet<>                                     [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:546]
    ~~Dr.M~~ Note: # 3 std::locale::~locale                                 [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:410]
    ~~Dr.M~~ Note: # 4 std::ctype<>::widen                                  [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:2578]
    ~~Dr.M~~ Note: # 5 std::basic_ios<>::widen                              [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\ios:125]
    ~~Dr.M~~ Note: # 6 std::ios_base::_Init                                 [f:\dd\vctools\crt\crtw32\stdhpp\xiosbase:558]
    ~~Dr.M~~ Note: # 7 __crt_strtox::parse_integer<>                        [minkernel\crts\ucrt\inc\corecrt_internal_strtox.h:202]
    ~~Dr.M~~ Note: # 8 __crt_seh_guarded_call<>::operator()<>               [minkernel\crts\ucrt\devdiv\vcruntime\inc\internal_shared.h:208]
    ~~Dr.M~~ Note: # 9 test2                                                [c:\users\mmead\drmem\mem.bugs.cpp:12]
    ~~Dr.M~~ Note: #10 atoi                                                 [minkernel\crts\ucrt\src\appcrt\convert\atox.cpp:22]
    ~~Dr.M~~ Note: #11 std::basic_ostream<>::basic_ostream<>                [f:\dd\vctools\crt\crtw32\stdhpp\ostream:54]
    
  3. test3 - allocate with new, deallocate with delete[]
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new, freed with operator delete[]
    ~~Dr.M~~ # 0 replace_operator_delete_array_nothrow               [d:\drmemory_package\common\alloc_replace.c:2998]
    ~~Dr.M~~ # 1 std::_Facet_Register                                [f:\dd\vctools\crt\crtw32\stdcpp\locale0.cpp:73]
    ~~Dr.M~~ # 2 std::use_facet<>                                    [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:546]
    ~~Dr.M~~ # 3 std::locale::~locale                                [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:410]
    ~~Dr.M~~ # 4 std::ctype<>::widen                                 [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:2578]
    ~~Dr.M~~ # 5 std::basic_ios<>::widen                             [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\ios:125]
    ~~Dr.M~~ # 6 std::ios_base::_Init                                [f:\dd\vctools\crt\crtw32\stdhpp\xiosbase:558]
    ~~Dr.M~~ # 7 test3                                               [c:\users\mmead\drmem\mem.bugs.cpp:19]
    ~~Dr.M~~ # 8 atexit                                              [f:\dd\vctools\crt\vcstartup\src\utility\utility.cpp:275]
    ~~Dr.M~~ # 9 __scrt_common_main_seh                              [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    ~~Dr.M~~ #10 KERNEL32.dll!BaseThreadInitThunk                   +0x13     (0x00007fff1db73034 <KERNEL32.dll+0x13034>)
    ~~Dr.M~~ Note: @0:00:00.546 in thread 224
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new                                 [d:\drmemory_package\common\alloc_replace.c:2899]
    ~~Dr.M~~ Note: # 1 std::_Facet_Register                                 [f:\dd\vctools\crt\crtw32\stdcpp\locale0.cpp:73]
    ~~Dr.M~~ Note: # 2 std::use_facet<>                                     [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:546]
    ~~Dr.M~~ Note: # 3 std::locale::~locale                                 [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:410]
    ~~Dr.M~~ Note: # 4 std::ctype<>::widen                                  [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:2578]
    ~~Dr.M~~ Note: # 5 std::basic_ios<>::widen                              [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\ios:125]
    ~~Dr.M~~ Note: # 6 std::ios_base::_Init                                 [f:\dd\vctools\crt\crtw32\stdhpp\xiosbase:558]
    ~~Dr.M~~ Note: # 7 __crt_strtox::parse_integer<>                        [minkernel\crts\ucrt\inc\corecrt_internal_strtox.h:202]
    ~~Dr.M~~ Note: # 8 __crt_seh_guarded_call<>::operator()<>               [minkernel\crts\ucrt\devdiv\vcruntime\inc\internal_shared.h:208]
    ~~Dr.M~~ Note: # 9 test3                                                [c:\users\mmead\drmem\mem.bugs.cpp:18]
    ~~Dr.M~~ Note: #10 atoi                                                 [minkernel\crts\ucrt\src\appcrt\convert\atox.cpp:22]
    ~~Dr.M~~ Note: #11 std::basic_ostream<>::basic_ostream<>                [f:\dd\vctools\crt\crtw32\stdhpp\ostream:54]
    
  4. test4 - allocate with malloc, deallocate with delete
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with malloc, freed with operator delete
    ~~Dr.M~~ # 0 replace_operator_delete_nothrow                      [d:\drmemory_package\common\alloc_replace.c:2974]
    ~~Dr.M~~ # 1 std::use_facet<>                                     [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:546]
    ~~Dr.M~~ # 2 std::locale::~locale                                 [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:410]
    ~~Dr.M~~ # 3 std::ctype<>::widen                                  [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:2578]
    ~~Dr.M~~ # 4 std::basic_ios<>::widen                              [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\ios:125]
    ~~Dr.M~~ # 5 std::ios_base::_Init                                 [f:\dd\vctools\crt\crtw32\stdhpp\xiosbase:558]
    ~~Dr.M~~ # 6 __crt_strtox::parse_integer<>                        [minkernel\crts\ucrt\inc\corecrt_internal_strtox.h:202]
    ~~Dr.M~~ # 7 __crt_seh_guarded_call<>::operator()<>               [minkernel\crts\ucrt\devdiv\vcruntime\inc\internal_shared.h:208]
    ~~Dr.M~~ # 8 test4                                                [c:\users\mmead\drmem\mem.bugs.cpp:25]
    ~~Dr.M~~ # 9 std::basic_ostream<>::basic_ostream<>                [f:\dd\vctools\crt\crtw32\stdhpp\ostream:54]
    ~~Dr.M~~ #10 atexit                                               [f:\dd\vctools\crt\vcstartup\src\utility\utility.cpp:275]
    ~~Dr.M~~ #11 __scrt_common_main_seh                               [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    ~~Dr.M~~ #12 KERNEL32.dll!BaseThreadInitThunk                    +0x13     (0x00007fff1db73034 <KERNEL32.dll+0x13034>)
    ~~Dr.M~~ Note: @0:00:00.569 in thread 6440
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_malloc                                       [d:\drmemory_package\common\alloc_replace.c:2576]
    ~~Dr.M~~ Note: # 1 std::use_facet<>                                     [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:546]
    ~~Dr.M~~ Note: # 2 std::locale::~locale                                 [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:410]
    ~~Dr.M~~ Note: # 3 std::ctype<>::widen                                  [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:2578]
    ~~Dr.M~~ Note: # 4 std::basic_ios<>::widen                              [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\ios:125]
    ~~Dr.M~~ Note: # 5 std::ios_base::_Init                                 [f:\dd\vctools\crt\crtw32\stdhpp\xiosbase:558]
    ~~Dr.M~~ Note: # 6 __crt_strtox::parse_integer<>                        [minkernel\crts\ucrt\inc\corecrt_internal_strtox.h:202]
    ~~Dr.M~~ Note: # 7 __crt_seh_guarded_call<>::operator()<>               [minkernel\crts\ucrt\devdiv\vcruntime\inc\internal_shared.h:208]
    ~~Dr.M~~ Note: # 8 test4                                                [c:\users\mmead\drmem\mem.bugs.cpp:24]
    ~~Dr.M~~ Note: # 9 std::basic_ostream<>::basic_ostream<>                [f:\dd\vctools\crt\crtw32\stdhpp\ostream:54]
    ~~Dr.M~~ Note: #10 atexit                                               [f:\dd\vctools\crt\vcstartup\src\utility\utility.cpp:275]
    ~~Dr.M~~ Note: #11 __scrt_common_main_seh                               [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    
  5. test5 - allocate with new, deallocate with free
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: INVALID HEAP ARGUMENT: allocated with operator new, freed with free
    ~~Dr.M~~ # 0 replace_free                                         [d:\drmemory_package\common\alloc_replace.c:2706]
    ~~Dr.M~~ # 1 std::use_facet<>                                     [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:546]
    ~~Dr.M~~ # 2 std::locale::~locale                                 [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:410]
    ~~Dr.M~~ # 3 std::ctype<>::widen                                  [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:2578]
    ~~Dr.M~~ # 4 std::basic_ios<>::widen                              [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\ios:125]
    ~~Dr.M~~ # 5 std::ios_base::_Init                                 [f:\dd\vctools\crt\crtw32\stdhpp\xiosbase:558]
    ~~Dr.M~~ # 6 __crt_strtox::parse_integer<>                        [minkernel\crts\ucrt\inc\corecrt_internal_strtox.h:202]
    ~~Dr.M~~ # 7 __crt_seh_guarded_call<>::operator()<>               [minkernel\crts\ucrt\devdiv\vcruntime\inc\internal_shared.h:208]
    ~~Dr.M~~ # 8 test5                                                [c:\users\mmead\drmem\mem.bugs.cpp:31]
    ~~Dr.M~~ # 9 std::basic_ostream<>::basic_ostream<>                [f:\dd\vctools\crt\crtw32\stdhpp\ostream:54]
    ~~Dr.M~~ #10 atexit                                               [f:\dd\vctools\crt\vcstartup\src\utility\utility.cpp:275]
    ~~Dr.M~~ #11 __scrt_common_main_seh                               [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    ~~Dr.M~~ #12 KERNEL32.dll!BaseThreadInitThunk                    +0x13     (0x00007fff1db73034 <KERNEL32.dll+0x13034>)
    ~~Dr.M~~ Note: @0:00:00.534 in thread 732
    ~~Dr.M~~ Note: memory was allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new                                 [d:\drmemory_package\common\alloc_replace.c:2899]
    ~~Dr.M~~ Note: # 1 std::use_facet<>                                     [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:546]
    ~~Dr.M~~ Note: # 2 std::locale::~locale                                 [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:410]
    ~~Dr.M~~ Note: # 3 std::ctype<>::widen                                  [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:2578]
    ~~Dr.M~~ Note: # 4 std::basic_ios<>::widen                              [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\ios:125]
    ~~Dr.M~~ Note: # 5 std::ios_base::_Init                                 [f:\dd\vctools\crt\crtw32\stdhpp\xiosbase:558]
    ~~Dr.M~~ Note: # 6 __crt_strtox::parse_integer<>                        [minkernel\crts\ucrt\inc\corecrt_internal_strtox.h:202]
    ~~Dr.M~~ Note: # 7 __crt_seh_guarded_call<>::operator()<>               [minkernel\crts\ucrt\devdiv\vcruntime\inc\internal_shared.h:208]
    ~~Dr.M~~ Note: # 8 test5                                                [c:\users\mmead\drmem\mem.bugs.cpp:30]
    ~~Dr.M~~ Note: # 9 std::basic_ostream<>::basic_ostream<>                [f:\dd\vctools\crt\crtw32\stdhpp\ostream:54]
    ~~Dr.M~~ Note: #10 atexit                                               [f:\dd\vctools\crt\vcstartup\src\utility\utility.cpp:275]
    ~~Dr.M~~ Note: #11 __scrt_common_main_seh                               [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    
  6. test6 - buffer overflow
    ~~Dr.M~~ 
    ~~Dr.M~~ Error #1: UNADDRESSABLE ACCESS beyond heap bounds: writing 0x00000234c8d9e685-0x00000234c8d9e686 1 byte(s)
    ~~Dr.M~~ # 0 replace_strcpy                       [d:\drmemory_package\drmemory\replace.c:598]
    ~~Dr.M~~ # 1 test6                                [c:\users\mmead\drmem\mem.bugs.cpp:37]
    ~~Dr.M~~ # 2 atexit                               [f:\dd\vctools\crt\vcstartup\src\utility\utility.cpp:275]
    ~~Dr.M~~ # 3 __scrt_common_main_seh               [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    ~~Dr.M~~ # 4 KERNEL32.dll!BaseThreadInitThunk    +0x13     (0x00007fff1db73034 <KERNEL32.dll+0x13034>)
    ~~Dr.M~~ Note: @0:00:00.547 in thread 2872
    ~~Dr.M~~ Note: refers to 0 byte(s) beyond last valid byte in prior malloc
    ~~Dr.M~~ Note: prev lower malloc:  0x00000234c8d9e680-0x00000234c8d9e685
    ~~Dr.M~~ Note: allocated here:
    ~~Dr.M~~ Note: # 0 replace_operator_new_array                           [d:\drmemory_package\common\alloc_replace.c:2928]
    ~~Dr.M~~ Note: # 1 std::_Facet_Register                                 [f:\dd\vctools\crt\crtw32\stdcpp\locale0.cpp:73]
    ~~Dr.M~~ Note: # 2 std::use_facet<>                                     [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:546]
    ~~Dr.M~~ Note: # 3 std::locale::~locale                                 [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:410]
    ~~Dr.M~~ Note: # 4 std::ctype<>::widen                                  [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xlocale:2578]
    ~~Dr.M~~ Note: # 5 std::basic_ios<>::widen                              [c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\ios:125]
    ~~Dr.M~~ Note: # 6 std::ios_base::_Init                                 [f:\dd\vctools\crt\crtw32\stdhpp\xiosbase:558]
    ~~Dr.M~~ Note: # 7 __crt_strtox::parse_integer<>                        [minkernel\crts\ucrt\inc\corecrt_internal_strtox.h:202]
    ~~Dr.M~~ Note: # 8 __crt_seh_guarded_call<>::operator()<>               [minkernel\crts\ucrt\devdiv\vcruntime\inc\internal_shared.h:208]
    ~~Dr.M~~ Note: # 9 test6                                                [c:\users\mmead\drmem\mem.bugs.cpp:36]
    ~~Dr.M~~ Note: #10 atoi                                                 [minkernel\crts\ucrt\src\appcrt\convert\atox.cpp:22]
    ~~Dr.M~~ Note: #11 std::basic_ostream<>::basic_ostream<>                [f:\dd\vctools\crt\crtw32\stdhpp\ostream:54]
    ~~Dr.M~~ Note: instruction: mov    $0x00 -> (%rax)
    
  7. test7 - uninitialized read (Not supported on Windows with 64-bit apps)
    ~~Dr.M~~ (Uninitialized read checking is not yet supported for 64-bit)
    

Output from Valgrind

64-bit GNU g++: (64-bit Linux, kernel version 3.13.0)

  1. test1 - simple memory leak
    ==8340== 123 bytes in 1 blocks are definitely lost in loss record 1 of 2
    ==8340==    at 0x4C2B800: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8340==    by 0x400AA4: test1() (mem.bugs.cpp:7)
    ==8340==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8340== 
    
  2. test2 - allocate with new[], deallocate with delete
    ==8344== Mismatched free() / delete / delete []
    ==8344==    at 0x4C2C2BC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8344==    by 0x400ACE: test2() (mem.bugs.cpp:13)
    ==8344==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8344==  Address 0x5a45c80 is 0 bytes inside a block of size 123 alloc'd
    ==8344==    at 0x4C2B800: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8344==    by 0x400AB9: test2() (mem.bugs.cpp:12)
    ==8344==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8344== 
    
  3. test3 - allocate with new, deallocate with delete[]
    ==8349== Mismatched free() / delete / delete []
    ==8349==    at 0x4C2C83C: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8349==    by 0x400AFA: test3() (mem.bugs.cpp:19)
    ==8349==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8349==  Address 0x5a45c80 is 0 bytes inside a block of size 1 alloc'd
    ==8349==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8349==    by 0x400AE3: test3() (mem.bugs.cpp:18)
    ==8349==    by 0x400C88: main (mem.bugs.cpp:72)
    
  4. test4 - allocate with malloc, deallocate with delete
    ==8350== Mismatched free() / delete / delete []
    ==8350==    at 0x4C2C2BC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8350==    by 0x400B24: test4() (mem.bugs.cpp:25)
    ==8350==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8350==  Address 0x5a45c80 is 0 bytes inside a block of size 123 alloc'd
    ==8350==    at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8350==    by 0x400B0F: test4() (mem.bugs.cpp:24)
    ==8350==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8350== 
    
  5. test5 - allocate with new, deallocate with free
    ==8354== Mismatched free() / delete / delete []
    ==8354==    at 0x4C2BDEC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8354==    by 0x400B49: test5() (mem.bugs.cpp:31)
    ==8354==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8354==  Address 0x5a45c80 is 0 bytes inside a block of size 1 alloc'd
    ==8354==    at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8354==    by 0x400B39: test5() (mem.bugs.cpp:30)
    ==8354==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8354== 
    
  6. test6 - buffer overflow
    ==8358== Invalid write of size 2
    ==8358==    at 0x400B6D: test6() (mem.bugs.cpp:37)
    ==8358==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8358==  Address 0x5a45c84 is 4 bytes inside a block of size 5 alloc'd
    ==8358==    at 0x4C2B800: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8358==    by 0x400B5E: test6() (mem.bugs.cpp:36)
    ==8358==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8358== 
    
  7. test7 - uninitialized read
    ==8359== Conditional jump or move depends on uninitialised value(s)
    ==8359==    at 0x4C2E0E9: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==8359==    by 0x4EEEDB8: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
    ==8359==    by 0x400BB0: test7() (mem.bugs.cpp:44)
    ==8359==    by 0x400C88: main (mem.bugs.cpp:72)
    ==8359==