Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / programming / debugging

Fast and easy memory leak detection

4.44/5 (8 votes)
27 Jul 2011CPOL 38.3K  
An easy way to trap all the memory leaks of your application.
Here is how we do at work, it's easy, fast and does not imply either code instrumentation nor external library nor complex manipulations. Simply get LiveHeap, a free tool that displays heap's allocations in live.

Put a breakpoint at the very start of your program, and another at the very end of it. Run under a debugger to break at first breakpoint, then launch LiveHeap to monitor your process. Do whatever you want to test your application, then quit. On second breakpoint, just see what resides in LiveHeap to get every heap allocation that is still here. Here are your leaks, with their allocation stack traces.

That's all! Easy, isn't it?

You might have false positive for allocations that are freed by a static var, like singleton (but anyway, having dynamic memory that is uninitialized by the CRT and not you is crappy and you really should avoid doing this).

You can also use this technique on a specific method, or simply monitor memory activity of your application with LiveHeap (or any application) to get an accurate understanding of what's happening.

Give it a try, you won't regret!

Enjoy!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)