Currently I'm working on my M.Sc Research and I'm implementing my research tools using C++ ( together with Qt, OpenCV, Boost and Intel TBB libraries). One of the biggest challenges is to overcome the run time exceptions coming due to memory leaks and access violation issues due to threads and poor memory management. Hence I though of posting my personal experience as this would be very helpful to the c/c++ programmers.
- ValGrind - http://www.cprogramming.com/debugging/valgrind.html
- Visual Leak Detector - http://www.codeproject.com/Articles/9815/Visual-Leak-Detector-Enhanced-Memory-Leak-Detectio
- Intel Inspector - http://software.intel.com/en-us/intel-inspector-xe
- Lint (there are variations of lint) - PC -Lint ( http://www.viva64.com/en/a/0033/ )
- AppVerifier - http://www.microsoft.com/en-us/download/details.aspx?id=20028
- cppCheck - http://sourceforge.net/apps/mediawiki/cppcheck/index.php?title=Main_Page
and may more you can find via this link
If you are using windows and using Visual Studio then my recommendation is go for VLD ( Visual Leak Detector )
http://vld.codeplex.com/wikipage?title=Using%20Visual%20Leak%20Detector&referringTitle=Documentation