Monday, March 7, 2011

What is the best way to check for memory leaks in c++?

I'm implementing a sparse matrix with linked lists and it's not fun to manually check for leaks, any thoughts?

From stackoverflow
  • The valgrind profiler for Unix offers a decent leak detection.

    However, this is only one part of a successful approach. The other part is to prevent (i.e. minimize) explicit memory handling. Smart pointers and allocators can help a great deal in preventing memory leaks. Also, do use the STL classes: a leak-free linked list implementation is already provided by std::list.

    Bernard : <3 valgrind. But yes, a tool, not a complete solution.
  • If you use Anjuta,you can use valgrind module.

  • On Windows:

    Compuware BoundChecker (bit costly but very nice)

    Visual LeakDetector (free, google it)

    On Linux/Unix:

    Purify

    Ferruccio : Purify is available for Windows too.
  • The original version of Purify on Unix was brilliant. But the Windows version produced after Rational bought it is terrible. Flakey as hell. Avoid at all costs.

  • You can read good article about memory leaks on Wikipedia: http://en.wikipedia.org/wiki/Memory_leak

    This page also has the good links to other articles and even programms that will help you a lot.

0 comments:

Post a Comment