We use many free and open-source tools at vast limits. We are well aware of our debt to the community and we give back whenever we can. Today is such a happy day: we proudly announce LeakDetect, a new Windows memory instrumentation tool that helps detect memory leaks in long-running applications.
Why Another Memory Leak Detection Tool?
There are many great memory leak detection tools for Windows. However, even VLD or DebugDiag did not meet our requirements, at least not for one special issue we were analyzing: while developing a new major version of uberAgent we noticed a memory leak that increased memory usage by approx. 1 MB every 24 hours.
We spent a lot of time trying to find this leak using the tools mentioned above and some others, such as ETW tracing, but without success. While DebugDiag is a great tool that intercepts all allocations, it crashed the process we were analyzing after a couple of hours.
So we developed LeakDetect out of necessity. It provides visibility into:
- allocations (including stack trace, pointer, size, and timestamp)
- hot code paths (paths that produce the most allocations/deallocations)
The results are saved to a binary file format that can be converted to CSV and SQLite databases for further analysis.
Usage & Download
LeakDetect is available in source code and as binaries that are ready for immediate use. Head over to LeakDetect’s GitHub repo and start hunting for leaks!