What is the best free memory leak detector for a C/C++ program and its plug-in DLLs?

I personally use Visual Leak Detector, though it can cause large delays when large blocks are leaked (it displays the contents of the entire leaked block).


If you don't want to recompile (as Visual Leak Detector requires) I would recommend WinDbg, which is both powerful and fast (though it's not as easy to use as one could desire).

On the other hand, if you don't want to mess with WinDbg, you can take a look at UMDH, which is also developed by Microsoft and it's easier to learn.

Take a look at these links in order to learn more about WinDbg, memory leaks and memory management in general:

  • Memory Leak Detection Using Windbg
  • Memory Leak Detection in MFC
  • Common WinDbg Commands (Thematically Grouped)
  • C/C++ Memory Corruption And Memory Leaks
  • The Memory Management Reference
  • Using LeakDiag to Debug Unmanaged Memory Leaks
  • Heap: Pleasures and Pains

I have had good experiences with Rational Purify. I have also heard nice things about Valgrind